自然语言理解与行业知识图谱:概念、方法与工程落地
上QQ阅读APP看书,第一时间看更新

3.2.4 语言模型

前面已经介绍了统计语言学习的基本流程、语料制作、语料采样、文本特征选择,下面结合这些内容讨论自然语言处理中最常用的语言模型。将语言视为一种信号,那么通常一个语言信号系统可以用如图3-4的噪声信道模型来表示。

图3-4 噪声信道模型以及自然语言处理中的噪声信道模型(虚线框表示)

假设信源为W,经过编码后的输入为X,经过噪声信道后的输出为Y,为解码后的输出。噪声信道模型基本原理是把信源编码输出的信号传输到解码器的输入端,再尽量恢复到原始输入状态,校验传输造成的错误。在自然语言处理中,将语言序列编码,继续解码使得输出序列接近输入。噪声信道的目标就是在给定输出Y(可能存在误传)的情况下,求出最有可能的输入符号,该问题可以用贝叶斯公式(详见附录A)进行描述,即

其中,p(X)称为语言模型,指输入语言中“词”序列的概率分布。p(Y|X)称为信道概率。

通过上面的描述可以看出,语言模型是基于统计学习的参数化模型,通过某个语料库计算概率来预测某些语言模式的出现。语言模型假设无论是通用文本还是行业文本,字词序列依赖于上下文分布的特征,或者说是组合特征[6]。基于马尔可夫假设,对于长度为N的连续词序列,即N元(N-Gram)短语,其出现概率依赖于前面的N-1个词的出现概率。当n取足够大时,模型总是能完全覆盖文本词袋模型的所有特征集合,但是这种情况下概率计算过于复杂。通常,二元组(Bi-Gram)和三元组(Tri-Gram)语言模型效果较好。

N-Gram模型怎么得到的呢?假设一个拥有所有语言模式的语料库,当统计样本足够大的时候,对应词典词汇量为T,那么我们计算长度为n的任意句子有个参数nTn,这需要巨大的开销。如果我们把某个词出现可能性仅与前面一个词相关,而与其他词无关,即马尔可夫性,组成了二元语言模型。随着新的语言理论的诞生,需要设计不同句法下的语言模型,找到不同的算法策略。

参考上面的模型思想,以Bi-Gram为例,基于马尔可夫假设构建语言模型,计算公式如下:

其中,x1, x2, ..., xn为长度为n的短语中的词语。这样序列依赖关系仅考虑前后两个词,语料库的统计计算得到极大简化,比如“我爱你”这个短语出现的概率可以通过计算p(我)×p(爱|我)×p(你|爱)得到。N-gram则依赖于前n-1个词,同理可以计算出N-gram出现的概率。

语言模型常用的性能评价指标是交叉熵和困惑度。困惑度与语料有关,只有在使用相同评价语料的情况下才可以比较不同语言模型的困惑度。语言模型也面临着跨领域脆弱性和独立性假设无效的问题,所以需要考虑更多的语言模型自适应方法。

N-Gram语言模型简单有效,但是只考虑了词与上下文分布特征,没有考虑语法和语义特征,还存在数据稀疏的问题。随着深度学习的飞速发展,用神经网络提取具有指示性的核心特征组合,大大减少特征工程工作量,很大程度上解决了传统N-Gram语言模型的缺陷。除此之外,其优势还包括:①词相似性通过词向量来体现;②自带平滑功能,减少数据稀疏影响。所以现在越来越多的算法模型利用了神经网络预训练语言模型,后面我们会详细介绍。

目前,我们将机器学习(主要是统计学习)的理论、方法和工具代入自然语言处理中,相关任务的解决仍然要符合基本的统计学原理。模型本身仅是为了拟合样本特征,并用于任务的解决。尽管有经验认为自然语言在大数据量的分布中呈现二项分布特征,可以利用抽样来获得统计分析的样本。但是不同任务下的语言样本特征符合什么样的分布?是否涵盖了语言信息?能不能满足文本任务的需要?因此,是否能够设计合理的模型、精妙的策略、最优化算法,是值得我们深入思考的。

下面,我们将结合前人的研究,梳理出面向自然语言理解任务的机器学习方法集。