当前位置:   article > 正文

自然语言处理(NLP)之三:语言模型_生成式语言模型文本特征

生成式语言模型文本特征
  1. 语言模型的定义
    语言模型是一种预测语句符合语法规范1的概率的计算方法。对给定语句 S = W 1 , W 2 , … , W n S = W_1, W_2, \dots, W_n S=W1,W2,,Wn,其符合语法规范的概率为:
    P ( S ) = P ( W 1 , W 2 , … , W n ) (1) P(S) = P(W_1, W_2, …, W_n) \tag{1} P(S)=P(W1,W2,,Wn)(1)

条件概率公式的链式传导下, 式 ( 1 ) 式(1) (1)中联合概率可拆解成多个条件概率的乘积,所以语句符合语法规范的概率可改写为:

P ( S ) = P ( W 1 , W 2 , … , W n ) = P ( W 1 ) P ( W 2 ∣ W 1 ) ⋯ P ( W n ∣ W 1 , W 2 , … , W n − 1 ) P(S) = P(W_1, W_2, …, W_n) = P(W_1)P(W_2| W_1) \cdots P(W_n| W_1, W_2, \dots , W_{n-1}) P(S)=P(W1,W2,,Wn)=P(W1)P(W2W1)P(WnW1,W2,,Wn1) P ( S ) = P ( W 1 , W 2 , … , W n ) = ∏ t = 1 n P ( W t ∣ W 1 , ⋯   , W t − 1 ) (2) P(S) = P(W_1, W_2, …, W_n) = \prod_{t=1}^{n} P(W_t | W_1, \cdots, W_{t-1} ) \tag{2} P(S)=P(W1,W2,,Wn)=t=1nP(WtW1,,Wt1)(2)具体来说,语言模型可理解为 式 ( 2 ) 式(2) (2)中条件概率 P ( W t ∣ W 1 , ⋯   , W t − 1 ) P(W_t | W_1, \cdots, W_{t-1} ) P(WtW1,,Wt1) 的计算方法。且按技术的发展阶段和模型功能不同,语言模型的发展脉络大致可归纳为:统计语言模型,神经网络语言模型、文本生成模型和预训练语言模型

2. 语言模型的评估方法

2.1 直接评估法

在理想情况下,我们希望直接在特定任务中测试使用某语言模型后的任务效果,来评价语言模型的好坏。但该评价结果局限于某一具体任务,因此,独立于任务之外的间接模型评估方法被探索建立。

2.2 间接评估法

2.2.1 困惑度(perplexity)

困惑度(perplexity)方法由语言模型定义衍生而出,它的核心思想是:通过语言模型对符合语法规范的标准语句预测概率的高低,来评价语言模型的效果。其计算公式如下所示:
p e r p l e x i t y ( S ) = p e r p l e x i t y ( W 1 , W 2 , … , W n ) = 2 − 1 n ∑ 1 n l o g [ P ^ L M ( W t ∣ W 1 , ⋯   , W t − 1 ) ] (6) perplexity(S) = perplexity(W_1, W_2, …, W_n) = 2^{-\frac{1}{n} \sum_{1}^{n} log[ \hat{P}_{LM}(W_t | W_1, \cdots, W_{t-1} ) ]} \tag{6} perplexity(S)=perplexity(W1,W2,,Wn)=2n11nlog[P^LM(WtW1,,Wt1)](6)

3 统计语言模型

单词在句子出现的概率及条件概率可直接从语料库中统计得到,但随着预测语句长度增长,许多单词在预测语句中出现的上文搭配,在训练语料中未曾出现过。这导致统计得到的单词条件概率为0,使语言模型预测失效。为此衍生出了多种基于统计学原理,简化复杂前置条件概率计算的语言模型,如:Unigram 和 Ngram。

3.1 Unigram

为简化具有复杂前置的条件概率计算,最理想的假设是认为单词在句中出现的概率相互独立,这称作Unigram模型。此条件下,单词在句中出现的条件概率等于该单词独立出现的概率,所以语句符合语法规范的概率可简化为:
P ( S ) = P ( W 1 , W 2 , … , W n ) = P ( W 1 ) P ( W 2 ) ⋯ P ( W n ) (3) P(S) = P(W_1, W_2, …, W_n) = P(W_1)P(W_2) \cdots P(W_n) \tag{3} P(S)=P(W1,W2,,Wn)=P(W1)P(W2)P(Wn)(3)

3.2 N-gram

Unigram模型简化假设过于理想,实际单词间往往存在语境关系、其出现概率不相互独立,所以衍生出基于马尔科夫假设简化条件概率的 n n n 元语法模型(N-gram)。关于 N-gram model 的详细内容,请参见作者文章:语言模型:N元语法模型(N-gram)

3.3 统计语言模型的平滑方法

虽然N-gram等模型有效缓解了长语句预测中,单词在预测语句上文条件下的条件概率极度稀疏(在语句较长时,近乎一定等于0)的问题。但训练得到的语言模型条件概率仍十分稀疏、容易引起模型预测失效,为此可引入模型平滑方法,进一步改善条件概率稀疏问题。详细内容,请参见作者文章:语言模型:统计语言模型的平滑方法

4 神经网络语言模型

神经网络语言模型是解决统计语言模型(N-gram)条件概率稀疏的有效方法,它可以在保证最大 n n n 值的同时,获得稠密的单词条件概率 P ( W t ∣ W 1 , ⋯   , W t − 1 ) P(W_t | W_1, \cdots, W_{t-1} ) P(WtW1,,Wt1)

4.1 神经网络语言模型的结构

神经网络语言模型的结构一般可抽象为顺序排列的嵌入层、特征层和输出层三部分。其中,嵌入层负责将非数值类型的输入(文本)序列 ( x 1 , ⋯   , x T ) (x_1, \cdots, x_T) (x1,,xT),转换成数值类型的编码向量 ( e 1 , ⋯   , e T ) (e_1, \cdots, e_T) (e1,,eT)特征层负责从输入序列中提取特征,输出为一个可以表示历史信息的(隐藏)状态向量 ( h 1 , ⋯   , h T ) (h_1, \cdots, h_T) (h1,,hT)输出层根据接收到的特征向量进行标签预测 ( o 1 , ⋯   , o T ) (o_1, \cdots, o_T) (o1,,oT)

其特征层,可使用多种类型的神经网络来提取特征,常见的有简单平均前馈神经网络前馈神经网络(feedforward neural network)可以是全连接神经网络或卷积神经网络)和循环神经网络三种2

简单平均能处理不定长输入序列,它简单地将序列上文全部单词的词向量的直接平均值或加权平均值3作为本时刻的(隐藏)状态向量。

前馈神经网络要求输入是一个固定长度的序列,它与 N-gram 模型类似,都假设句子此时刻所表达的历史(语义)信息(即:隐藏状态)只与前面的 n−1 个词(token)有关;前馈神经网络某时刻的状态向量 h t = f D e n s e / C o n v ( e t − n + 1 , ⋯   , e t − 1 ;   θ ) ,    t = 1 , 2 , 3 , ⋯   , T h_t = f_{Dense/Conv}(e_{t-n+1},\cdots, e_{t-1} ; \ \theta), \ \ t=1, 2, 3, \cdots, T ht=fDense/Conv(etn+1,,et1; θ),  t=1,2,3,,T

循环神经网络综合前两者优点,在能处理不定长输入序列的同时,也能有效提取输入序列中的特征信息。与只能接受前

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/379778
推荐阅读
相关标签