计算语言学4 Neural Language Model(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 其中 为神经网络参数
– 训练的目标是使得该n元模型对于测试词序列
x即1,极x2,小…化xT(:xi均PP为(C(词x1),表...,CV(x中T ))的 P词(C)(具x1),有...,C最(xT小))PT1 P值。
T
1
( P(C(xt ) | C(xt1),..,C(xtn1))) T
• A Neural Probabilistic Language Model,JMLR,2003
– M&H 2007,2008
• log-bilinear language (LBL) model
– Mikolov 2010,2013
• Recurrent neural network based language model
• 模型参数
– 各层
• 词层n-1个节点,n元语法的n-1个历史词 • 词表示层(n-1)×m个节点,每个词用m维向量表示 • 隐层h个节点,阈值为d,h维 • 输出层|V|个节点,阈值为b,|V|维
– 层间
• 词层到表示层:每一个词都有表示,C=|V|×m矩阵 • 表示层到隐层:权重H,(n-1)m×h矩阵 • 表示层到输出层:权重W,(n-1)m×|V|矩阵 • 隐层到输出层:权值U,h×|V|矩阵
• 参数集: (b,W,C,U, d, H)
– 反向随机梯度下降
log P(xt | xt1,...,wtn1)
• 为学习率
• 不在输入窗口中的词向量值不需要调整
• 混合模型
– 神经网络模型+插值trigram
• 算法的并行执行
•…
• 实验语料
训练语料规模
• fine
• 无论是one-hot 还是distributional 维度都很 高,词表维度,每一个维度表示一个词,
– one-hot :该词本身 – distributional :该词上下文中的词
• 高维的问题:维数灾难
• 降维
– 直接基于one-hot 或distributional 的降维方法很 多SVD分解等,后续LDA模型时再提
…
…
输出层|V|个神经元
神经映射g
…
隐层h个神经元
…
……
…
词表式层 (t-1)×m个神经元
深度网络
• 合并词表映射与神经网络模型-2
给定C时有 : P(C(xt ) | C(xtn1),..,C(xt1)) P(xt | xtn1,..,xt1)
第i个神经元输出 P(xt wi | xtn1,..., xt1)
softmax
…
…
输出层|V|个神经元
虚线是从输入层到
输出层的直接连接
…
隐层h个神经元
…
C( xtn1)
……
C( xtn2 )
…
C ( xt1)
输入层 (n-1)×m个神经元
• 合并词表映射与神经网络模型-1
第i个神经元输出 P(xt wi | xtn1,..., xt1)
softmax
– 则p(C(is)/C(cat)) 与 p(C(is)/C(dog)) 比 p(C(is)/C(cat)) 与 p(C(is)/C(he)) 更接近
• NPLM
– 利用m个神经元的状态组合(x1,x2,…,xm)编码词
• 例如:
– Cat C(cat)=(x11,x12,…,x1m) – Dog C(dog)=(x21,x22,…,x2m) – Table C(dog)=(x31,x32,…,x3m) –…
softmax
…
…
输出层|V|个神经元
…
C( … xtn1)
C xt n 1
C(xt … n2 ) … C(xt…1)
C xt n2
C xt 1
神经映射g
隐层h个神经元
词表式层 (t-1)×m个神经元
模型f
词表映射C
词层 :t-1个词
• 整体模型的训练目标中把C也纳入,则为极
大化:
L 1
T
T
log g(C(xt ),C(xt1),..,C(xtn1);)
t 1
1 T
T
log
t 1
f (xt , xt1,..,xt ; n1 C,)
• 加上正则化项,则为:
L
1 T
T t 1
log
f (xt , xt1,..,
xt ; n1 C,) R(C,)
– 连续值:从PNLM等模型训练获得
• Distributed 词表示
– 词表W={w1,w2,…WN} – m维词表示
• c(W1)=(x11, x12,…x1m) • c(W2)= (x21, x22,…x2m) •…
• c(WN)= (xN1, xN2,…xNm)
– 即使xij为{0,1},m也可以远远小于N – 实际上xij为实数
化了
• 词表示
– 符号表示
• cat、dog、table…
– 分布表示:一个词用一个多维向量表示
• One-hot:向量维数=词表大小
– (1,0,0,….), (0,1,0,……)…
• Distributional :向量维数=词表大小
– 布尔式、频率式
• Distributional 词表示
– 把概率p(x)看成关于x的连续函数:x相似则p(x)相似,则 自动获得了平滑!
»x是符号时做不到! »x是连续变量
• 词表示
– 符号表示
• cat、dog、table…
– 向量表示:一个词用一个多维向量表示
• One-hot:向量维数=词表大小
– (1,0,0,….), (0,1,0,……)… – 依靠词自身来表示词,和符号表示没有本质差异,只是量
• 总参数个数
– |V|* (1+mn+h)+h*(1+ (n-1)m)
• 模型计算:对每一个输入的n元串
– 前向计算
• 隐层输入为:y=b+W*C(x)+Utanh(d+HC(x))
• 隐层输出为:
P(xt | xt1,...,wtn1)
e yxt e yxi
i
• 其中:C(x)是词x的向量表示
– 基于分布式表示的语言模型
p(w)|w1, w2,…wn) <==p(c(w)|c(w1),c(w2),…c(wn))
• NPLM获得的distributed表示从其获得表示时利 用的信息来看,是distributional类的方法,利 用上下文词来表示目标词
• 为何叫distributed: 与1个位置1个词(local)相对 应
• interpolated or smoothed trigram model (Jelinek and Mercer, 1980)
– state-of-the-art n-gram models
• back-off n-gram models with theModified Kneser-Ney algorithm (Kneser and Ney, 1995, Chen and Goodman., 1999)
•I
– 布尔式:(0,1,0,0) – 频率式:(0,2,0,0)
• am
– 布尔式:(1,0,1,1) – 频率式:(2,0,1,1)
One-hot
I
(1,0,0,0)
am (0,1,0,0)
• here
– 布尔式:(0,1,0,0) – 频率式:(0,1,0,0)
here (0,0,1,0) fine (0,0,0,1)
神经概率语言模型 Neural Probabilistic Language
Model
2019/11/19
王小捷 智能科学与技术中心
北京邮电大学
绪论
1
大纲
• 引言 • 词表示 • Neural Probabilistic Language Model
(NPLM) • 总结
引言
•
N-gram语言模型中: P(w1T )
One-hot
distributional
distributed 从distributional基于 SVD等降维
每一个维度的含义 一个词 一个词 不明 不明
利用什么信息 词本身 词的上下文 词的上下文 词的上下文
• 后面专门将词表示时再说,本处词表示是为了 引导出神经语言模型
• NPLM
– Bengio 2001,2003模型
• 问题2
– 没有考虑词的相似性
• The cat is walking in the bedroom的训练样本对 A dog was running in a room的句子概率无贡献
– 没有相同的bigram
• 更细节:p(is/cat)和p(is/dog)无关
– cat 和 dog无关,所以两个概率无关,需分别找,因此, 在某些语料中,这两个值可能差别很大
16,383去除频率小于等于3的 17,964词(进行一些合 并)
学习率 权重衰减惩罚
初始ɛ0=10-3,之后衰减,按ɛt=ɛ0/(1+rt)
10-4
10-5
Early stopping
采用
没有
收敛
10-20epochs后
5epochs后
• 对比模型
– Benchmark n-gram models
• 可否直接获得低维表示?
• 词表示
– 符号表示
• cat、dog、table…
– 分布表示:一个词用一个多维向量表示
• One-hot:向量维数=词表大小
– (1,0,0,….), (0,1,0,……)…
• Distributional :向量维数=词表大小
– 布尔式、频率式 (下页)
• Distributed :向量维数=指定大小
– NPLM与分布式(distributed)词表示密切相关, 有很多词表示有关的研究
• Bengio 2003模型贡献
– 得到分布式词表示 – 得到基于分布式词表示的语言模型
• 高阶(6), 无需平滑
– 实验表明比基于符号的语言模型更好
• PP值评测
• 符号约定
– x表变量,wi 表具体词
– v’表转置,Aj表A的第j行
Brown语料 1,181,041词的前800000词
AP新闻 13,994,528词
发展语料规模(模型选择、 随后的200,000词 权重衰减、early stopping)
测试语料规模
其余181,041词
963,138词 963,071词
语料实际含的不同词 使用的词,即|V|
47,578(含标点、大小写不同、 148,721词 分割段落与文本的标记符)
w1
C ( w1 )
…
w2
C(w2 )
…
w|V |
C (w|V | )
|V | m维矩阵
…
• 2.神经模型
– 模型目标:训练一个映射 g 来建模n元语言模型, 即
g(C(xt ), C(xt1),.., C(xtn1);) P(C(xt ) | C(xt1),.., C(xtn1))
– 语料C,词表W={w1,w2,…WN},窗口k
– w∈W的词表示:依据C中所有w的窗口为k的上下文中 的词来构造:(依靠词的上下文来表示词)
• 布尔式:(Iw1, Iw2, …… IwN) • 频率式:(fw1, fw2, …… fwN)
– 例:C={I am here, I am fine.},W={I,am,here,fine}, k=1
• 模型结构=1+2融合
– 1.词表映射
• 目标:对词表V 中的词(w1,…wi ,.. w|V|) 得到其m维向 量表示
• 实现方式
– 查表映射C:将任意词映射为一个m维向量
– 或者说是一个2层的神经网络(输入1个节点,输出m个节点)
C(x)
x
…
– 对于V中所有词:将V中第i词wi映射为C(wi),简记为C(i)
• Distributed 词表示
– 每个词是m维空间中的一个点 – 相似的词对应的空间中的点距离较小
– 如果C(cat)与 C(dog) 足够相似
– 则p(C(is)/C(cat)) 可以用来近似估计 p(C(is)/C(dog))
– 如果C(cat)与C(dog) 比 C(cat)与C(he)相似,
– 即极大化
t 1
L 1
T
T
log P(C(xt ) | C(xt1),..,C(xtn1))
t 1
1 T
T
log g(C(xt ),C(xt1),..,C(xtn1);)
t 1
• 神经网络结构
第i个神经元输出为 P(C(xt ) C(wi ) | C(xtn1),.., C(xt1))
T
P(wt
|
w ) t1 Fra Baidu bibliotek n1
t 1
• 相关的两个问题
• 问题1
– 数据稀疏问题
• 理论上,模型阶数越高越好, 但由于数据稀疏,N-gram 模型中n达到一定值后,n越大性能反而越差(<6),有没有 可以算高阶的模型?
• 同样由于数据稀疏问题,平滑很重要,有没有不需要平 滑就可以直接用的?