没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、语言模型
语言模型的目的为了能够量化地衡量哪个句子更像一个客观世界真实的句子。根据上下
文推测下一个词是什么,这不需要人工标注语料,可以从大规模语料库中学习丰富的语义知
识。语言模型最初是针对语音识别问题而开发的,它们仍然在现代语音识别系统中发挥着核
心作用,同时也广泛用于其他自然语言处理应用程序。核心思想是根据句子里面前面的一系
列前导单词预测后面跟哪个单词的概率大小(理论上除了上文之外,也可以引入单词的下文
联合起来预测单词出现概率)。句子里面每个单词都会根据上文预测自己,把所有这些单词
的产生概率乘起来,数值越大代表这越像一个真实的句子。
目前主要有两类语言模型,分别是统计语言模型和神经网络语言模型。统计语言模型主
要是 n-gram 语言模型,在神经网络语言模型中,主要包括原始的神经网络语言模型、
word2vec、GloVe、基于循环神经网络的语言模型、ELMo、GPT、BERT。这些语言模型基本
呈承接关系,每一个新的语言模型会在前一个语言模型的基础上进行改进升级。本节课会对
其中几种重要的语言模型进行介绍。
图 1 语言模型
1.1
统计语言模型
以英语为例,假设 V 是所有单词的集合,可以将其表示为
...,,,,, hersmileyouNLPloveIV
在真实的情况下,V 可能很大,包含成千上万的单词,假设 V 是一个有限集合。接下来假设
英语中的句子是一个单词序列,即
m
xxx ...
21
,
1m
,
10
xx
,
STOPx
m
,
Vx
i
,
1,...,2,1 mi
其中 STOP 和
不是 V 的成员,STOP 是句子结束的标志,
是句子中的开始符号。例句如下
所示,
I love you STOP
I love NLP STOP
her you STOP
smile STOP
love smile STOP
you love her smile STOP
STOP
. . .
将
V
定义为具有词汇 V 的所有句子的集合:这是无限集,因为句子可以是任意长度。由此
可以给出以下定义:
统计语言模型由有限集
V
和函数
m
xxxp ,...,,
21
组成,例如:
(
1
)对于任意
0,...,,,...
211
mm
xxxpVxx
(2)此外,
1,...,,
...
21
1
Vxx
m
m
xxxp
,因此
m
xxxp ,...,,
21
是
V
中句子的概率分布。
当从训练语料库中学习语言模型时,将
m
xxc ...
1
定义为句子
m
xx ...
1
在训练语料库中被
看到的次数,M 是训练语料库中的句子总数。然后可以定义
M
xxc
xxp
m
m
...
...
1
1
这样会将从未在训练语料库中出现的句子,分配零概率,这样显然是不合适的。
1.1.1 马尔可夫模型
为每个句子建模包含 m 个随机变量的序列
m
XXX ...
21
,长度 m 是一个随机变量,因为
句子的长度不是一个固定的值。这里希望模拟任何句子序列
m
xx ...
1
的概率,其中
1m
且
miVx
i
...1,
,模拟联合概率为
mm
xXxXxXP ,...,,
2211
存在
m
V
种形如
m
xx ...
1
的可能序列,很明显,列出所有
m
V
的可能性是不可行的,因为单
就词汇表 V 而言,就包含成千上万种可能,考虑到序列每个位置的可能性,需要的信息量
太过巨大,因此需要建立一个更紧凑的模型。
利用一阶马尔可夫模型,做出如下假设
m
i
iiii
m
i
iiii
m
i
iiii
mm
xXxXP
xXxXPxXP
xXxXxXPxXP
xXxXxXP
1
11
2
1111
2
111111
2211
,...,
,...,,
上式第一步是根据概率链式法则得出的精确解。第二步中,假设第 i 个词仅与第 i-1 个词有
关。
在构成三元语言模型基础的二阶马尔可夫过程中,假设如下所示
m
i
iiiiiimm
xXxXxXPxXxXxXP
1
22112211
,,...,,
在此定义中
*
10
xx
,
STOPx
m
,
1...1, miVx
i
。该假设表示第 i 个词仅与第
i-1 个词和第 i-2 个词有关。
产 生 句 子 的 过 程 是 首 先 初 始 化
10
,1 xxi
, 然 后 从 分 布
1122
,
iiiiii
xXxXxXP
中生成
i
x
,如果
STOPx
i
,则返回序列
i
xx ...
1
。否则,
设置
1 ii
并返回上一步。
1.1.2 n-gram 语言模型
与马尔可夫模型一样,将每个句子建模为 m 个随机变量的序列
m
XXX ,...
21
。在马尔可
夫模型下,任何句子
m
xx ...
1
的概率为
m
i
niniiiiiiimm
xXxXxXxXPxXxXxXP
1
1122112211
,...,,,...,,
如前所述假设
10
xx
。
假设对于任意
i
,有如下表示
121112211
,...,,,...,,,
niiiininiiiiiii
xxxxqxXxXxXxXP
其中
121
,...,,
niiii
xxxxq
是模型的参数。然后,对于任何序列
m
xx ...
1
,模型采用的形式
为
m
i
niiiim
xxxxqxxp
1
1211
,...,,...
这引出了以下定义:
n-gram
语言模型由有限集
V
和参数
121
,...,,
n
uuuwq
组成,对于每个
n
元组,有
STOPVw
以及
Vuu
n 11
,...,
。
121
,...,,
n
uuuwq
的值可以解释为紧接在
n-1
元组
11
,...,
n
uu
之后看到单词
w
的概率。对于任何句子
m
xx ...
1
,
1...1, miVx
i
,
STOPx
m
,n-gram 语言模型下句子的概率是
m
i
niiiim
xxxxqxxp
1
1211
,...,,...
其中定义
10
xx
。
当第 i 个词仅与第 i-1 个词和第 i-2 个词有关时,可以将 n-gram 语言模型表示为三元
(Trigram)语言模型。
例如,对于句子 c
I love you STOP
有如下的表示
youloveSTOPqloveIyouqIloveqIqcp ,,,,
每个单词仅取决于前两个单词:这是三元组假设。
参数满足任何三元组
wuu ,,
21
的约束条件,
0,
21
uuwq
对于任意二元组
21
,uu
,有
STOPVw
uuwq 1,
21
因此,
21
,uuwq
定义了以二元语境
21
,uu
为条件的可能的词
w
的分布。
这里留下的关键问题是估计模型的参数,即
21
,uuwq
其中 w 可以是
STOPV
的任意成员,而
Vuu
21
,
。模型中有
3
V
个参数。这可能
是一个非常大的数字。例如,使用
10000V
(这是一个现实的数字,很可能远小于现代
标准),那么有
12
3
10V
。
首先,将
wuuc ,,
21
定义为在训练语料库中看到三元组
wuu ,,
21
的次数:例如,
youloveIc ,,
是在训 练语料库中看到 I love you 三个单 词的序列的次数。 类似地,将
21
,uuc
定义为在语料库中看到二元组
21
,uu
的次数。对于任何
21
,, uuw
,
可以得出以下
定义
21
21
21
,
,,
,
uuc
wuuc
uuwq
例如对
loveIyouq ,
的估计是
loveIc
youloveIc
loveIyouq
,
,,
,
分子是看到整个三元组
youloveI ,,
的次数,而分母是看到两元组
loveI ,
的次数。现在只
考虑这两个项的比例。
但是这种估计参数的方式遇到了一个非常严重的问题。模型中有很多参数(例如,词汇
剩余38页未读,继续阅读
资源评论
brith_for_AI
- 粉丝: 19
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功