预训练语言模型(一):定义及语言模型

预训练语言模型(一):定义及语言模型


参考一个很全的总结:
预训练语言模型的前世今生 - 从Word Embedding到BERT

关于语言模型

语言模型的本质是计算一个句子序列的概率
即对于语言序列 ω 1 , ω 2 , … , ω n ω_1,ω_2,…,ω_n ω1,ω2,,ωn ,语言模型就是计算 P ( ω 1 , ω 2 , … , ω n ) P(ω_1,ω_2,…,ω_n ) P(ω1,ω2,,ωn)
由此引入乘法公式:
P ( A B C D ) = P ( A ) P ( B │ A ) P ( C │ A B ) P ( D │ A B C ) (1) P(ABCD)=P(A)P(B│A)P(C│AB)P(D│ABC)\tag{1} P(ABCD)=P(A)P(BA)P(CAB)P(DABC)(1)
P ( ω 1 , ω 2 , … , ω n ) = ∏ i P ( ω i │ ω 1 , ω 2 , … , ω i − 1 ) (2) P(ω_1,ω_2,…,ω_n )=∏_iP(ω_i│ω_1,ω_2,…,ω_{i-1} ) \tag{2} P(ω1,ω2,,ωn)=iP(ωiω1,ω2,,ωi1)(2)

统计语言模型

统计语言模型又叫做N-Gram模型,这里N是指词典 V V V 中的词数。
定义 V V V 为一个具有 ∣ V ∣ |V| V 个单词的词典,即所有词的词集合; ω n e x t ∈ V ω_{next}∈V ωnextV
对于公式:
P ( ω n e x t │ 判 断 , 这 个 , 词 , 的 ) = c o u n t ( ω n e x t , 判 断 , 这 个 , 词 , 的 ) c o u n t ( 判 断 , 这 个 , 词 , 的 ) (3) P(ω_{next}│判断,这个,词,的)=\frac{count(ω_{next},判断,这个,词,的)}{count(判断,这个,词,的) }\tag{3} P(ωnext,,,)=count(,,,)count(ωnext,,,,)(3)
使用马尔科夫链思想:
P ( ω n e x t │ 判 断 , 这 个 , 词 , 的 ) ≈ P ( ω n e x t │ 词 , 的 ) (4) P(ω_{next}│判断,这个,词,的)≈P(ω_{next}│词,的)\tag{4} P(ωnext,,,)P(ωnext,)(4)
假设 ω n e x t ω_{next} ωnext 只和它之前的 k k k 个词有相关性, k = 1 k=1 k=1 时称作一个单元语言模型, k = 2 k=2 k=2 时称为二元语言模型。由此可以推出二元语言模型的公式为:
P ( ω i │ ω i − 1 ) = c o u n t ( ω i , ω i − 1 ) c o u n t ( ω i − 1 ) (5) P(ω_i│ω_{i-1} )=\frac{count(ω_i, ω_{i-1} )}{count(ω_{i-1} )}\tag{5} P(ωiωi1)=count(ωi1)count(ωi,ωi1)(5)
有时会出现数据稀疏的情况,这时我们为了避免0值的出现,使用平滑策略(分子分母都加入一个非0正数)【注:这里还有其它的平滑策略,可以查到】,此时将公式(5)改为:
P ( ω i │ ω i − 1 ) = c o u n t ( ω i , ω i − 1 ) + 1 c o u n t ( ω i − 1 ) + ∣ V ∣ (6) P(ω_i│ω_{i-1} )=\frac{count(ω_i, ω_{i-1} )+1}{count(ω_{i-1} )+|V|}\tag{6} P(ωiωi1)=count(ωi1)+Vcount(ωi,ωi1)+1(6)

神经网络语言模型

引入神经网络架构估计单词分布,能够通过词向量衡量单词之间的相似度,对于没有出现过的单词,也可以通过整个句子序列进行词向量的估计,可以有效解决数据稀疏问题

上图NNLM神经网络共有三层:

  1. 输入层:将前面 n − 1 n-1 n1 个单词进行one-hot编码,之后乘以一个随机初始化的矩阵Q之后获得词向量 C ( ω i ) C(ω_i) C(ωi) ,处理后得到输入 x x x ,此时 x = ( C ( ω 1 ) , C ( ω 2 ) , … C ( ω n − 1 ) ) x=(C(ω_1),C(ω_2),…C(ω_{n-1})) x=(C(ω1),C(ω2),C(ωn1))
  2. 隐藏层:使用 tanh ⁡ \tanh tanh 作为激活函数,输出为 tanh ⁡ ( H x + b 1 ) \tanh(Hx+b_1) tanh(Hx+b1) H H H 为输入层到隐层的权重矩阵, b 1 b_1 b1 为这一层的偏置;
  3. 输出层:使用 s o f t m a x softmax softmax 作为激活函数,输出为 s o f t m a x ( b 2 + W x + U tanh ⁡ ( H x + b 1 ) ) softmax(b_2+Wx+U\tanh(Hx+b_1)) softmax(b2+Wx+Utanh(Hx+b1)) ,此处的 W W W 为输入层直接到输出层的权重矩阵, U U U 为隐层到输出层的参数矩阵。

NNLM最大的贡献在于将神经网络引入了LM中,此外,Word Embedding(参数矩阵 C C C )作为NNLM的副产品,在后续研究中也起到了很关键的作用。
另一方面,NNLM的缺点在于,它只能处理定长的序列,本质上还是遵从了马尔科夫假设,相当于用神经网络编码的N-Gram Model,无法解决长期依赖的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值