2021-12-25 第二章5 自然语言处理常见的三大任务之语言模型:N元语言模型

内容来自哈工大车万翔老师团队的作品《自然语言处理:基于预训练模型的方法》。

自然语言处理常见的三大任务:语言模型、基础任务、应用任务

语言模型

语言模型(language model,LM,也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的NLP任务。
利用语言模型,可以计算一个词序列或一句话的概率,也可以在给定上文的条件下对接下来可能出现的词进行概率分布的估计。

1. N元语言模型

语言模型的基本任务是在给定词序列w_1, w_2,... w_{t-1}的条件下,对下一时刻t可能出现的词w_t的条件概率P(w_t | w_1, w_2,... w_{t-1})进行评估。
给定语料库时,条件概率可理解为,当语料中出现“我喜欢”时,有多少次下一个词为“读书”。通过最大似然估计计算:
P(读书|我喜欢)=\frac{C(我喜欢读书)}{C(我喜欢)}
$C(·)表示词序列在语料库出现的次数。

通过以上的条件概率,可以进一步计算及一个句子出现的改啦,即相应单词序列的联合概率P(w_1w_2\dots w_I)I为序列的长度。可以用链式法则对该式分解,将其转化为条件概率的问题:

image.png

w_{i:j}表示由位置i到位置j的字串w_i w_{i+1} \dots w_j

问题:随着句子长度的增加,w_{1:i-1}出现的次数会越来越少,甚至从未出现过(例:句子“我爱读书是因为书籍可以帮助我在人生重要时刻做出稍微更合理的选择以取得更好的成就来证明自己是个有一点优秀的人”,这样长的句子,可能整个语料库中只出现过这一次,其w_{1:i-1}可能从来没出现过),那么w_{1:i-1}则很可能为0,此时对于概率估计就没有意义了。
马尔可夫假设(Markov Assumption):为了解决该问题,提出假设“下一个词出现的概率只依赖于它前面n-1个词”,即:

马尔可夫假设

满足此假设的模型,被称为N元语法N元文法(N-gram)模型。
以二元模型(bigram)为例,式(2-10)可转化为:
bigram模型

为了使P(w_i|w_{i-1})对于i=1有意义,可在句子的开头增加句首标记<BOS>(Begin Of Sentence),并设w_0=<BOS>,同时句尾可加一个句尾标记<EOS>(End Of Sentence),设w_{I+1} = <EOS>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。