当前位置:
文档之家› 计算语言学4 Neural Language Model(1)
计算语言学4 Neural Language Model(1)
神经概率语言模型 Neural Probabilistic Language
Model
2019/11/19
王小捷 智能科学与技术中心
北京邮电大学
绪论
1
大纲
• 引言 • 词表示 • Neural Probabilistic Language Model
(NPLM) • 总结
引言
•
N-gram语言模型中: P(w1T )
• 问题2
– 没有考虑词的相似性
• The cat is walking in the bedroom的训练样本对 A dog was running in a room的句子概率无贡献
– 没有相同的bigram
• 更细节:p(is/cat)和p(is/dog)无关
– cat 和 dog无关,所以两个概率无关,需分别找,因此, 在某些语料中,这两个值可能差别很大
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))
• 总参数个数
– |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的向量表示
• 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
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,)
– 基于分布式表示的语言模型
p(w)|w1, w2,…wn) <==p(c(w)|c(w1),c(w2),…c(wn))
• NPLM获得的distributed表示从其获得表示时利 用的信息来看,是distributional类的方法,利 用上下文词来表示目标词
• 为何叫distributed: 与1个位置1个词(local)相对 应
One-hot
distributional
distributed 从distributional基于 SVD等降维
每一个维度的含义 一个词 一个词 不明 不明
利用什么信息 词本身 词的上下文 词的上下文 词的上下文
• 后面专门将词表示时再说,本处词表示是为了 引导出神经语言模型
• NPLM
– Bengio 2001,2003模型
…
…
输出层|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
• fine
• 无论是one-hot 还是distributional 维度都很 高,词表维度,每一个维度表示一个词,
– one-hot :该词本身 – distributional :该词上下文中的词
• 高维的问题:维数灾难
• 降维
– 直接基于one-hot 或distributional 的降维方法很 多SVD分解等,后续LDA模型时再提
化了
• 词表示
– 符号表示
• cat、dog、table…
– 分布表示:一个词用一个多维向量表示
• One-hot:向量维数=词表大小
– (1,0,0,….), (0,1,0,……)…
• Distributional :向量维数=词表大小
– 布尔式、频率式
• Distributional 词表示
• 参数集: (b,W,C,U, d, H)
– 反向随机梯度下降
log P(xt | xt1,...,wtn1)
• 为学习率
• 不在输入窗口中的Байду номын сангаас向量值不需要调整
• 混合模型
– 神经网络模型+插值trigram
• 算法的并行执行
•…
• 实验语料
训练语料规模
• 模型结构=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)
– 则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) –…
Brown语料 1,181,041词的前800000词
AP新闻 13,994,528词
发展语料规模(模型选择、 随后的200,000词 权重衰减、early stopping)
测试语料规模
其余181,041词
963,138词 963,071词
语料实际含的不同词 使用的词,即|V|
47,578(含标点、大小写不同、 148,721词 分割段落与文本的标记符)
• 其中 为神经网络参数
– 训练的目标是使得该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
• 可否直接获得低维表示?
• 词表示
– 符号表示
• cat、dog、table…
– 分布表示:一个词用一个多维向量表示
• One-hot:向量维数=词表大小
– (1,0,0,….), (0,1,0,……)…
• Distributional :向量维数=词表大小
– 布尔式、频率式 (下页)
• Distributed :向量维数=指定大小
– 即极大化
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))
• 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)
• 模型参数
– 各层
• 词层n-1个节点,n元语法的n-1个历史词 • 词表示层(n-1)×m个节点,每个词用m维向量表示 • 隐层h个节点,阈值为d,h维 • 输出层|V|个节点,阈值为b,|V|维