第5章 RNN
5.1 概率和语言模型
CBOW 模型本来的目的“从上下文预测目标词”是否可以用来做些什么呢?
- 语言模型
语言模型(language model)给出了单词序列发生的概率。具体来说,就是使用概率来评估一个单词序列发生的可能性,即在多大程度上是自然的单词序列。比如,对于“you say goodbye”这一单词序列,语言模型给出高概率(比如 0.092);对于“you say good die”这一单词序列,模型则给出低概率(比如 0.0000000000032)。
语言模型可以应用于多种应用,典型的例子有机器翻译和语音识别。
- 语音识别系统会根据人的发言生成多个句子作为候选。此时,使用语言模型,可以按照“作为句子是否自然”这一基准对候选句子进行排序。
- 语言模型也可以用于生成新的句子。因为语言模型可以使用概率来评价单词序列的自然程度,所以它可以根据这一概率分布造出(采样)单词。
考虑由 m 个单词 w 1 , ⋅ ⋅ ⋅ , w m w_1, ··· , w_m w1,⋅⋅⋅,wm 构成的句子,将单词按 w 1 , ⋅ ⋅ ⋅ , w m w_1, ··· , w_m w1,⋅⋅⋅,wm 的顺序出现的概率记为 P ( w 1 , ⋅ ⋅ ⋅ , w m ) P(w_1, ··· , w_m) P(w1,⋅⋅⋅,wm)。因为这个概率是多个事件一起发生的概率,所以称为联合概率。
使用后验概率可以将这个联合概率 P ( w 1 , ⋅ ⋅ ⋅ , w m ) P(w_1, ··· , w_m) P(w1,⋅⋅⋅,wm) 分解成如下形式:
P ( w 1 , ⋅ ⋅ ⋅ , w m ) = P ( w m ∣ w 1 , ⋅ ⋅ ⋅ , w m − 1 ) P ( w m − 1 ∣ w 1 , ⋅ ⋅ ⋅ , w m − 2 ) ⋅ ⋅ ⋅ P ( w 2 ∣ w 1 ) P ( w 1 ) P(w_1, ···, w_m)=P(w_m|w_1, ··· , w_{m-1})P(w_{m-1}|w_1, ··· , w_{m-2})···P(w_2|w_1)P(w_1) P(w1,⋅⋅⋅,wm)=P(wm