用句子SSS的概率p(S)p(S)p(S)来定量刻画句子。 统计语言模型是利用概率统计方法来学习参数p(wi∣w1…wi−1)p(w_i|w_1\dots w_{i-1})p(wi∣w1…wi−1),神经网络语言模型则通过神经网络学习参数.
根据所用的神经网络不同,可以分为
输入:X:wi−1X:w_{i-1}X:wi−1
输出:p(wi∣wi−1)p(w_i|w_{i-1})p(wi∣wi−1)
参数:θ=H,U,b1,b2\theta = {H,U,b^1,b^2}θ=H,U,b1,b2
运算关系:
p(wi∣wi−1)=exp(y(wi))∑k=1∣V∣exp(y(vk))y(wi)=b2+U(tanh(XH+b1))p(w_i|w_{i-1}) = \frac{\exp(y(w_i))}{\sum_{k=1}^{|V|}\exp(y(v_k))}\\ y(w_i) = b^2 + U(\tanh(XH+b^1)) p(wi∣wi−1)=∑k=1∣V∣exp(y(vk))exp(y(wi))y(wi)=b2+U(tanh(XH+b1)) 目标函数: 采用log损失L(Y,P(Y∣X))=−logP(Y∣X)L(Y,P(Y|X)) = - \log P(Y|X)L(Y,P(Y∣X))=−logP(Y∣X)
参数训练: 随机梯度下降优化训练目标,每次迭代,随机从语料D选取一段文本wi−(n−1)…wiw_{i-(n-1)}\dots w_iwi−(n−1)…wi作为训练样本进行一次梯度迭代. θ←θ−α∂logP(wi∣wi−(n−1)…wi−1)∂θ\theta\leftarrow \theta - \alpha\frac{\partial \log P(w_i|w_{i-(n-1)\dots w_{i-1}})}{\partial \theta}θ←θ−α∂θ∂logP(wi∣wi−(n−1)…wi−1) 其中,α\alphaα为学习率,θ={H,U,b1,b2}\theta = \{H,U,b^1,b^2\}θ={H,U,b1,b2}
输入:X:wi−1X:w_{i-1}X:wi−1和h(t−1)h(t-1)h(t−1)
输出:p(wi∣wi−1)p(w_i|w_{i-1})p(wi∣wi−1)和h(t)h(t)h(t)
参数:θ=H,U,M,b1,b2\theta = {H,U,M,b^1,b^2}θ=H,U,M,b1,b2
运算关系:
p(wi∣wi−1)=exp(y(wi))∑k=1∣V∣exp(y(vk))y(wi)=b2+U(tanh(XH+Mh(t−1)+b1))h(t)=tanh(XH+Mh(t−1)+b1)p(w_i|w_{i-1}) = \frac{\exp(y(w_i))}{\sum_{k=1}^{|V|}\exp(y(v_k))}\\ y(w_i) = b^2 + U(\tanh(XH+Mh(t-1)+b^1))\\ h(t) = \tanh(XH + Mh(t-1) +b^1) p(wi∣wi−1)=∑k=1∣V∣exp(y(vk))exp(y(wi))y(wi)=b2+U(tanh(XH+Mh(t−1)+b1))h(t)=tanh(XH+Mh(t−1)+b1) 目标函数: 采用log损失L(Y,P(Y∣X))=−logP(Y∣X)L(Y,P(Y|X)) = - \log P(Y|X)L(Y,P(Y∣X))=−logP(Y∣X)
参数训练: 采用随机梯度下降优化训练目标. θ←θ−α∂logP(wi∣wi−(n−1)…wi−1)∂θ\theta\leftarrow \theta - \alpha\frac{\partial \log P(w_i|w_{i-(n-1)\dots w_{i-1}})}{\partial \theta}θ←θ−α∂θ∂logP(wi∣wi−(n−1)…wi−1)
词的表示问题.
优势:稀疏方式存储非常简洁
不足:词汇鸿沟,维度灾难
每个数表示该词在文档中出现的次数.
每个数代表该词在整个文档中的占比.
核心思想:用一个词的上下文来表示该词.
将输入词向量作为参数在NNLM模型中进行训练
将输入词向量作为参数在RNNLM模型中进行训练
采用直接对n元短语打分的方式替代语言模型中求解条件概率的方法:对于语料中出现过的短语,打高分;对于未出现的随机短语打低分.
特点:
C&W模型的目标函数是求目标词W与其上下文C的联合打分,而其他模型均是根据上下文C,来预测目标词W.
输入: 目标词wiw_iwi与其上下文x=[e(wi−(n−1)),…,e(wi),…,e(wi+(n−1))]x=[e(w_{i-(n-1)}),\dots,e(w_i),\dots,e(w_{i+(n-1)})]x=[e(wi−(n−1)),…,e(wi),…,e(wi+(n−1))]
隐藏层: 上下文和目标词的联合表示.
输出: 对输入序列打分
优化目标:
对于整个语料最小化 ∑(w,c)∈D∑w′∈Vmax(0,1−score(w,c)+score(w′,c))\sum_{(w,c)\in D}\sum_{w'\in V}\max(0,1-score(w,c) + score(w',c))(w,c)∈D∑w′∈V∑max(0,1−score(w,c)+score(w′,c)) 其中,c表示目标词w的上下文
对比: C&W模型在运算速度上优于NNLM模型,但在许多语言学任务上,效果不如其他模型.
(Continuous Bag-of Words),Mikolov等人在2013年提出了CBOW和Skip-gram模型,主要针对NNLM训练复杂度过高的问题进行改进.
输入层:x:词wiw_iwi的上下文词向量平均值,不包括wiw_iwi x=1n−1∑wj∈ce(wj)x=\frac{1}{n-1}\sum_{w_j\in c}e(w_j)x=n−11wj∈c∑e(wj)
输出层: p(wi∣c)=exp(e′(wi)Tx)∑w′∈Vexp(e′(w′)Tx)p(w_i|c) = \frac{\exp(e'(w_i)^Tx)}{\sum_{w'\in V}\exp(e'(w')^Tx)}p(wi∣c)=∑w′∈Vexp(e′(w′)Tx)exp(e′(wi)Tx)
优化目标: 最大化∑(w,c)∈DlogP(w∣c)\sum_{(w,c)\in D}\log P(w|c)∑(w,c)∈DlogP(w∣c)
参数训练:梯度下降法
输入层:x:词wiw_iwi的词向量
输出层: p(wj∣wi)=exp(e′(wj)Tx)∑w′∈Vexp(e′(w′)Tx)p(w_j|w_i) = \frac{\exp(e'(w_j)^Tx)}{\sum_{w'\in V \exp(e'(w')^Tx)}}p(wj∣wi)=∑w′∈Vexp(e′(w′)Tx)exp(e′(wj)Tx)
优化目标: 最大化∑(w,c)∈D∑wj∈clogP(wj∣w)\sum_{(w,c)\in D}\sum_{w_j\in c}\log P(w_j|w)∑(w,c)∈D∑wj∈clogP(wj∣w)
对于词典中的任意词w,哈夫曼树中必然存在一条从根节点到该词所在的叶子节点的路径,将路径上存在的所有分支视为一次二分类,将每次分类的概率乘起来,就得到了最终p(w∣context(w))p(w|context(w))p(w∣context(w))
word2vec是google开源的将词表征为实数值向量的高校工具,其利用深度学习的思想,可以通过训练,把对词的处理简化为K维向量空间中的向量运算.
word2vec训练得到的词向量可用于机器翻译、相似词查找、关系挖掘、中文聚类等任务中.
word2vec共有两种类型,每种类型都有两个策略.
模型 | CBOW | CBOW | Skip-gram | Skip-gram |
---|---|---|---|---|
方法 | Hierarchical Softmax | Negative Sampling | Hierarchical Softmax | Negative Sampling |
模型 | 目标词与上下文位置 | 模型输入 | 模型输出 | 目标词与上下文词之间的关系 |
---|---|---|---|---|
NNLM | (上文)(目标词) | 上文词向量拼接 | 目标词概率 | 上文在输入层、目标词在输出层,优化预测关系 |
C&W | (上文)(目标词)(下文) | 上下文及目标词词向量拼接 | 上下文及目标词联合打分 | 上下文和目标词都在输入层,优化组合关系 |
CBOW | (上文)(目标词)(下文) | 上下文各词词向量平均值 | 目标词概率 | 上下文在输入层、目标词都在输入层,优化预测关系 |
Skip-gram | (上文)(目标词)(下文) | 目标词词向量 | 上下文词概率 | 目标词在输入层、上下文在输出层,优化预测关系 |
指标 | – |
---|---|
模型复杂度 | NNLM>C&W>CBOW>Skip-gram |
参数个数 | NNLM>(CBOW=Skip-gram)>C&W |
时间复杂度 | NNLM>(CBOW=Skip-gram)>C&W |
中国科学院大学-NLP课程课件(IIE胡玥老师主讲)