学习ELMo的一些小笔记

word2vec–>GloVe–>ELMo

原文:Deep contextualized word representations

背景

在此之前常用的词嵌入方法为word2vec和GloVe,但是这些词嵌入方法无法处理多义词,不考虑词语所处的上下文。该文提出了一种新型的深度语境化词汇表征。既可以考虑句法语义,也可以模拟一词多义。这些词向量是深度双向语言模型(biLM)内部状态的学习函数。(即通过语言模型,然后把语言模型中间隐含层的输出提取出来,通过线性组合,形成符合上下文语义的词向量)

biLMs

ELMo建立在biLMs(双向语言模型)上,可分为正向LSTM和逆向LSTM两个部分。

具体来说,给定一个有N个token的序列 ( t 1 , t 2 , . . . , t N ) (t_1,t_2,...,t_N) (t1,t2,...,tN),前向模型用于计算给定前面tokens的情况下,当前token 的概率,即:

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}^N p(t_k|t_1,t_2,...,t_{k-1}) p(t1,t2,...,tN)=k=1Np(tkt1,t2,...,tk1)

逆向模型亦是如此,即:

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}^N p(t_k|t_{k+1},t_{k+2},...,t_N) p(t1,t2,...,tN)=k=1Np(tktk+1,tk+2,...,tN)

ELMo用的biLMs就是同时结合正向和反向的语言模型,其目标是最大化如下的似然值:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRMN9rXG-1663085458822)(C:\Users\polemin\AppData\Roaming\marktext\images\2022-09-13-15-17-29-image.png)]

里面的 Θ x 、 Θ s Θ_x、Θ_s ΘxΘs Θ → L S T M \overrightarrow{Θ}_{LSTM} Θ LSTM Θ ← L S T M \overleftarrow{Θ}_{LSTM} Θ LSTM分别是词嵌入,输出层(Softmax之前的)以及正反向LSTM的参数。

生成ELMo词向量

对于每个单词(token) t k t_k tk ,对于L层的双向lstm语言模型,一共有2L+1个表征(加的1是指初始化时的词向量),放一个集合里用 R k R_k Rk表示:

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 } R_k=\{x_k^{LM},\overrightarrow{h}_{k,j}^{LM},\overleftarrow{h}_{k,j}^{LM}|j=1,...,L\}=\{h_{k,j}^{LM}|j=0,...,L\} Rk={xkLM,h k,jLM,h k,jLMj=1,...,L}={hk,jLMj=0,...,L}

将2L+1个表征与每层的权重相乘,最后再乘以一个权重就可以生成一个ELMo向量。
与每层的权重相乘,最后再乘以一个权重就可以生成一个ELMo向量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值