Autoregressive LM---ELMO
分类:
NLP
1.ELMo(Embeddings from Language Models )
RNN-based language models(trained from lots of sentences)
ELMo 词向量是由双向神经网络语言模型的内部多层向量的线性加权组成。
LSTM 高层状态向量捕获了上下文相关的语义信息,可以用于语义消岐等任务。 结果表明:越高层的状态向量,越能够捕获语义信息。
LSTM 底层状态向量捕获了语法信息,可以用于词性标注等任务。结果表明:越低层的状态向量,越能够捕获语法信息。
ELMo 词向量与传统的词向量(如:word2vec )不同。在ELMo 中每个单词的词向量不再是固定的,而是单词所在的句子的函数,由单词所在的上下文决定。因此ELMo 词向量可以解决多义词问题。
2.原理
给定一个句子:,其中属于,N为句子的长度,用表示该句子,则生成该句子的概率为:
可以用一个L层的前向 LSTM 模型来实现该概率。其中:
ELMo 模型采用双向神经网络语言模型,它由一个前向LSTM 网络和一个逆向 LSTM 网络组成。ELMo 最大化句子的对数前向生成概率和对数逆向生成概率。
3.应用
首先训练无监督的 ELMo 模型,获取每个单词的2L+1个中间表示。然后在监督学习任务中,训练这2L+1个向量的线性组合,方法为:
实验表明:在 ELMo 中添加 dropout 是有增益的。另外在损失函数中添加正则化能使得训练到的ELMo权重倾向于接近所有ELMo权重的均值。
4.Autoregressive Language Model的特点
(1)优点:
- 生成能力
- 考虑了词之间的相关性
- 无监督
- 严格数学表达(BERT缺乏严格的数学表达,p(w1w3|w2)约等于p(w1|w2)*p(w3|w2))
(2)缺点:
- 单向的
- 有些单词离得近,未必有关系(有点道理)
(3)ELMO是基于双向的LSTM,它用了两个单向的LSTM(从左到右,从右到左,两个之间是独立的)
参考文献:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现