预训练语言模型(四):ELMo模型

参考一个很全的总结:
预训练语言模型的前世今生 – 从Word Embedding到BERT
ELMo也参考了这个:
【NLP-13】ELMo模型(Embeddings from Language Models)

这里提出的一个新的问题是:Word2Vec通过大规模语料对每个单词训练出固定词向量,但没有办法解决多义词的问题,ELMo就是为了这个任务而诞生的。它的核心是给予了每个token一个Word Embedding,即每个句子中样貌相同的词汇也会有不同的Embedding。
这里其实就用到了迁移学习的思想,使用了在大规模语料库上训练好的Word Embedding,输入ELMo模型中进行Fine-Tuning,这里ELMo模型的训练数据是去除标签的,可以根据上下文信息学习到当前语境下的Word Embedding。

模型结构

使用了 双向LSTM,根据上下文预测单词。
ELMo采用了两阶段过程:
第一个阶段是使用语言模型进行预训练
第二个阶段是在下游应用时,从预训练网络中提取对应单词网络歌城的Word Embedding作为新特征补充到下游任务中。
训练好这个网络之后,每输入一个新的句子都能得到三个Embedding:

下游应用:

这样对于下游任务:

这一类的训练方法也叫作”Feature-based Pre-Training”。

前向表示:
p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t 1 , t 2 , … , t k − 1 ) p(t_1,t_2,…,t_N)=\prod_{k=1}^Np(t_k|t_1,t_2,…,t_{k-1})p (t 1 ​,t 2 ​,…,t N ​)=k =1 ∏N ​p (t k ​∣t 1 ​,t 2 ​,…,t k −1 ​)
后向表示:
p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t k + 1 , t k + 2 , … , t N ) p(t_1,t_2,…,t_N)=\prod_{k=1}^Np(t_k|t_{k+1},t_{k+2},…,t_{N})p (t 1 ​,t 2 ​,…,t N ​)=k =1 ∏N ​p (t k ​∣t k +1 ​,t k +2 ​,…,t N ​)
biLM训练目标是最大化对数似然:
∑ k = 1 N ( log ⁡ p ( t k ∣ t 1 , … , t k − 1 , Θ x , Θ → L S T M , Θ s ) + log ⁡ p ( t k ∣ t k + 1 , t k + 2 , … , t N , Θ x , Θ ← L S T M , Θ s ) ) \sum_{k=1}^N(\log p(t_k|t_1,…,t_{k-1},\Theta_x,\overrightarrow\Theta_{LSTM},\Theta_s)+\log p(t_k|t_{k+1},t_{k+2},…,t_{N},\Theta_x,\overleftarrow\Theta_{LSTM},\Theta_s))k =1 ∑N ​(lo g p (t k ​∣t 1 ​,…,t k −1 ​,Θx ​,ΘL S T M ​,Θs ​)+lo g p (t k ​∣t k +1 ​,t k +2 ​,…,t N ​,Θx ​,ΘL S T M ​,Θs ​))
由于ELMo模型使每一层的向量都使用,因此通过一个L层的网络会产生2L+1个表征(每一层双向两个向量,初始输入一个向量,共有3个)
R k = { x k L M , h → k , j L M , h ← k , j L M ∣ j = 1 , … , L } = { h k , j L M ∣ j = 0 , … , L } \begin{aligned} R_k&={\mathbf x^{LM}k,\overrightarrow h^{LM}{k,j},\overleftarrow h^{LM}{k,j} |j=1,…,L }\ &={\mathbf{h}^{LM}{k,j} |j=0,…,L } \end{aligned}R k ​​={x k L M ​,h k ,j L M ​,h k ,j L M ​∣j =1 ,…,L }={h k ,j L M ​∣j =0 ,…,L }​
k表示单词位置,j表示所在层,j=0表示输入层,所以上式中的 x k L M = h k , j L M \mathbf x^{LM}k=\mathbf{h}^{LM}{k,j}x k L M ​=h k ,j L M ​
下游任务会将 R k R_k R k ​ 压缩为一个向量:
E L M o k t a s k = E ( R k ; Θ t a s k ) = γ t a s k ∑ j = 0 L s j t a s k h k , j L M \begin{aligned} ELMo^{task}k &=E(R_k;\Theta^{task})\ &=\gamma^{task}\sum{j=0}^Ls_j^{task}\mathbf{h}^{LM}_{k,j} \end{aligned}E L M o k t a s k ​​=E (R k ​;Θt a s k )=γt a s k j =0 ∑L ​s j t a s k ​h k ,j L M ​​
其中 s j t a s k s_j^{task}s j t a s k ​ 是softmax标准化权重,γ t a s k \gamma^{task}γt a s k 是缩放系数,允许任务模型缩放整个ELMo向量。

这样通过不同表征的权重分配,就可以实现通过上下文区分多义词了。

Original: https://blog.csdn.net/Dream_Poem/article/details/122768058
Author: Dream_Poem
Title: 预训练语言模型(四):ELMo模型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/528313/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pandas基础_2

    groupby练习 df = pd.DataFrame({‘A’:[‘foo’,’bar’,’foo’,’bar’,’foo’,’bar’,’foo’,’foo’], ‘B’:[‘…

    人工智能 2023年7月8日
    082
  • 碰撞检测技术介绍

    自动驾驶决策规划模块中会经常使用到碰撞检测计算分析Ego vehicle行为的安全性,并且可以用在planning计算的多个方面。例如下图中第一幅图,黄色车辆为主车,灰色车辆为交通…

    人工智能 2023年6月25日
    060
  • Could not load library cudnn_cnn_infer64_8.dll. Error code 126

    Could not load library cudnn_cnn_infer64_8.dll. Error code 126 解决Could not load library cu…

    人工智能 2023年7月28日
    059
  • 手把手教你Ubuntu安装opencv c++和python,不成功来打我

    如题 一、换清华源 参考教程:https://blog.csdn.net/qq_38690917/article/details/115029266完成后运行 sudo apt u…

    人工智能 2023年6月19日
    095
  • (记录一下)电脑上现有环境

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    人工智能 2023年5月28日
    065
  • 我的设计模式之旅、12 原型模式

    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。 思考总结 思考问题 如果没有原型模式,当我们复制复杂对象,在新建相同类的对象,遍历原始对象中的所有成员变量并将成…

    人工智能 2023年6月4日
    067
  • WordPress设置浏览器切换标签网站动态标题

    我们在逛别人网站的时候,经常看到,有些网站当我们离开该页面浏览其他页面的时候,离开的页面标题上会显示比如:”你别走吖 Σ(っ °Д °;)っ”这样的字样,当…

    人工智能 2023年6月26日
    081
  • 让logo设计更有设计感的几个方法

    如何让logo设计更有设计感,事物在不断的运动变化中,有简单的重复、渐变和质变。动态变化图形技术是指模仿自然物体的运动之美。 1.重复 重复是指根据某一规则反复出现相同或相似的元素…

    人工智能 2023年6月27日
    054
  • opencv调用yolov7 yolov7 c++ yolov7转onnx opencv调用yolov7 onnx

    一、YOLOV7主要贡献: 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测…

    人工智能 2023年6月18日
    078
  • 高斯滤波简介

    高斯滤波,这是一个建立在高斯正态分布基础上的滤波器。 一维高斯函数 可以看到,G(x)的跟sigma的取值有极大的关系。 sigma取值越大,图像越平缓 sigma取值越小,图像越…

    人工智能 2023年6月17日
    079
  • CIC-IDS2017数据集训练和测试

    1、数据集预处理 1.1 整合数据并剔除脏数据 如上图所示,整个数据集是分开的,想要训练,必须要整合在一起,同时在数据集中存在 Nan 和 Infiniti 脏数据(只有第 15 …

    人工智能 2023年7月8日
    070
  • PCA主成分分析教程(origin分析&绘制,无须R语言)

    PCA主成分分析教程(origin分析&绘制,无须R语言) 相关性分析,相关的介绍内容大家自行搜索资料即可,这里不给大家过多阐述。 案例解读 PCA作为常见的一种聚类分析方…

    人工智能 2023年5月31日
    080
  • Linux安装Redis(详细教程)

    Linux安装Redis 注:希望将redis安装到此目录 /usr/local/redis 希望将安装包下载到此目录 /usr/local/src 1.创建安装目录/usr/lo…

    人工智能 2023年7月29日
    049
  • Pandas的入门使用

    目录 一,Python,Numpy基础 二,Pandas基础 三.索引 四,分组 五,变形 六,连接 七,缺失数据的处理 八,文本数据的处理 九,分类数据 十,时间序列数据处理 推…

    人工智能 2023年7月16日
    079
  • FCN网络解析

    1 FCN网络介绍 FCN(Fully Convolutional Networks,全卷积网络) 用于图像语义分割,它是首个端对端的针对像素级预测的全卷积网络,自从该网络提出后,…

    人工智能 2023年7月5日
    067
  • python做数据分析的自定义字符串切片

    pandas数据分析小技巧 有时候我们在用pandas读入数据之后,数据有点杂乱,我们想要进行改进,而且许多都是object类型的,其中切片操作非常常见,比如有这样的数据: 路口0…

    人工智能 2023年6月11日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球