Language Model
语言模型(Language Model, LM)是用于估计token序列概率的工具,通常在模型输出文本时非常有用。
Token sequence:
Y∗=argmaxP(X∣Y)P(Y)
1.Continuous LM
(1)N-gram模型
估计方法: P(y1,y2,…,yn)=P(y1∣BOS)P(y2∣y1)…P(yn∣yn−1)
例子: 估计 P(beach∣nice)=C(nice beach)/C(nice),即“nice beach”出现的次数除以“nice”出现的次数。
平滑技术: 处理训练数据中未出现的n-gram
Issue:概率估计不准确,尤其是当考虑大的n值时,数据稀疏性问题:许多n-gram在训练数据中从未出现
语言模型平滑: 为某些未出现的词组提供小概率
(2)Recommendation system
例如:History “dog”和“cat”有相似度hdog和hcat,那么如果vjumped·hcat很大,那么相应的vjumped·hdog,也会很大,即使我们没见过“dog jumped...”
2.RNN-based LM
1-of-N编码:使用1-of-N编码表示历史词汇
(1)NN-based LM
基于神经网络的LM,原理是学习预测下一个单词
(2)RNN-based LM
使用RNN,考虑历史信息,但是也会存在RNN的长时依赖问题。
如果使用1 of N编码来代表历史信息,历史信息不能太长,使用LSTM(长短期记忆网络)进行优化
能够有效避免长序列训练中的梯度消失问题。