赞
踩
华为云学院
https://www.cnblogs.com/pinard/p/7160330.html
语言模型是根据语言客观事实而进行的语言抽象建模,是一种对应关系,假设有以下这类问题:
(1)机器翻译(I have a dream):P(我有个梦想)>P(我有只梦想)
(2)拼写纠错:P(about fifteen minutes from)>P(about fifteenminuets from)
(3)语音识别:P(你长的像你妈妈)>P(你长得向你妈妈)
(4)音字转换:P(你现在干什么|nixianzaiganshenme)>P(你西安在干什么|nixianzaiganshenme)
如果将以上问题形式化表示,用链式法则可表示如下
利用n元模型(n-gram model)估算条件概率,即忽略距离大于等于n的上文词的影响,因此若用频数计数的比例来计算n元条件概率可表示为:
相同点:都是将句子看做一个词序列,然后计算句子的概率
不同点:
(1)计算概率的方式:N-gram基于马尔科夫假设只考虑前n个词,NNLM要考虑整个句子的上下文。
(2)训练模型的方式:N-gram基于最大似然估计来计算参数,是基于词本身的;NNLM基于RNN的优化方法训练模型。
(3)循环神经网络可以将任意长度的上下文信息存储在隐藏状态中,而不仅限于N-gram模型中的窗口限制。
将文本表示成一系列能够表达文本语义的向量。常用的向量化算法有:one-hot,TF-IDF,word2vec(CBOW,Skip-gram),doc2vec/str2vec(DM,DBOW)。
CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
比如下面这段话,我们的上下文大小取值为4,特定的这个词是"Learning",也就是我们需要的输出词向量,上下文对应的词有8个,前后各4个,这8个词是我们模型的输入。由于CBOW使用的是词袋模型,因此这8个词都是平等的,也就是不考虑他们和我们关注的词之间的距离大小,只要在我们上下文之内即可。
Skip-Gram模型和CBOW的思路相反,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。还是上面的例子,我们的上下文大小取值为4, 特定的这个词"Learning"是我们的输入,而这8个上下文词是我们的输出。
每一个段落表示为一个向量,对应矩阵D中的一个列向量,每一个词表示为一个向量,对应矩阵W中的一个列向量。段落向量和词向量通过取平均值或者相连接来对上下文(context)中的下一个词进行预测。
该模型是在随机梯度下降的每一次迭代中采样一个文本窗口(text window),再从该文本窗口中随机采样一个词,从而形成一个给定段落向量进行词预测的多分类任务。该模型和Skip-gram模型相似。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。