乐趣区

关于算法:自然语言处理文本向量化二

一. 摘要

本次分享内容是基于上篇文本向量办法的持续,上次内容中,次要分享了文本向量化的两种办法:词袋模型表示办法和基于深度学习词向量办法。词袋模型尽管可能很简略的将词示意为向量,但会造成维度劫难,并且不可能利用到文本中词程序等信息。NNLM 模型的指标是构建一个语言概率模型,然而在 nnlm 模型求解的过程中,从暗藏层到输入层的权重计算是十分费时的一步。上面咱们将理解下 C &W 模型、CBOW 模型和 Skip-gram 模型。

二. C&W 模型

C&W 模型是一个以生成词向量为指标的模型。在之前的 NNLM 模型中咱们理解到了他那难于计算的权重是一个十分大的阻碍。这里的 C &W 模型没有采纳语言模型的形式去求解词语上下文的条件概率,而是间接对 n 元短语打分。采纳的是一种更为疾速高效的获取词向量的形式。C&W 模型的核心思想是:如果 n 元短语在语料库中呈现过,那么模型就会给该短语打出较高的分数;对于在语料库中未呈现过或呈现次数很少的短语则会失去较低的分数。C&W 模型结构图如下:

image.png

图 1:C&W 模型结构图

绝对于整个语料库来说,C&W 模型须要优化的指标函数为:

image.png

图 2:C&W 模型指标函数

其中,(w,c)为从语料中抽取的 n 元短语,为保障上下文词数量的一致性,所以 n 为奇数;w 是指标词;c 示意指标词的上下文语境;w’是从词典中随机抽取出的一个词语。C&W 模型采纳的是成对词语的形式对指标函数进行优化。通过图 2 中的表达式可知,指标函数冀望正样本的得分比负样本至多高 1 分。这里的 (w,c) 示意正样本,这些样本来自语料库;(w’,c)示意的负样本,负样本是将正样本序列的两头词替换成其它词失去的。通常状况是,用一个随机的词语替换正确文本序列的两头词,由此得出的新的文本序列根本就是不合乎语法习惯的序列,因而这种结构负样本的办法是正当的。并且负样本是仅仅批改了正样本序列中某一个两头词失去的,所以整体的语境是没有扭转的,因而也不会对分类成果造成很大成果。

与 NNLM 模型的指标词在输入层不同,C&W 模型的输入层就蕴含了指标词,其输入层也变成一个节点,并且该节点的输入值大小代表着元短语的打分高下。相应的 C &W 模型的最初一层的运算次数为 |h|,远低于 NNLM 模型中的 |V|×|h| 次。在权重计算量方面,相较 NNLM 模型,C&W 模型可大大降低运算量。

三. CBOW 模型和 Skip-gram 模型

为了可能进步获取词向量的效率,通过一直地尝试总结,在 NNLM 和 C &W 模型的根底上,得出了 CBOW(Continuous Bag of-Words)模型和 Skip-gram 模型。

CBOW 模型是应用一段文本的两头词当作指标词,并且在结构上,去掉了暗藏层,这样能够使运行的速率大幅度的晋升,节俭掉很多的权重矩阵计算。此外 CBOW 模型应用上下文各词的词向量平均值代替 NNLM 模型各个拼接的词向量。因为 CBOW 模型去除掉了暗藏层,所以其输出层就是语义上下文的示意。

image.png

图 3:CBOW 模型结构图

CBOW 模型对指标词的条件概率计算表达式为:

image.png

图 4:CBOW 概率计算表达式

CBOW 模型基于神经网络的个别模式:

image.png

图 5:CBOW 模型个别模式

CBOW 模型的指标函数与 NNLM 模型相似,具体为最大化式:

image.png

图 6:模型最大化局部

Skip-gram 模型的构造同样也是没有暗藏层。和 CBOW 模型不同的是输出上下文的均匀词向量。Skip-gram 模型是从指标词 w 的上下文中抉择一个词,将其词向量组成上下文的示意。

image.png

图 7:Skip-gram 模型结构图

Skip-gram 模型基于神经网络的个别模式:

image.png

图 8:Skip-gram 模型个别模式

对于整个语料库来说,Skip-gram 模型的指标函数表达式为:

image.png

图 9:Skip-gram 模型指标函数表达式

Skip-gram 模型和 CBOW 模型实际上属于 word2vec 两种不同策略的实现办法:其中的 CBOW 的策略是依据上下文输出来预测以后词语的概率,并且上下文中的所有的词对以后词呈现概率的影响的权重是雷同的,因而也叫 continuous bag-of-words 模型。就相似从一个袋子中取词,取出数量足够的词就能够了,而对于取出的程序是没有要求的。Skip-gram 模型则刚好相同,它的策略和目标是将以后词当作输出,用来预测上下文概率。

总结

本次内容中的两个模型思维都属于 word2vec 范畴。在 NLP 中,如过将 x 看作一个句子中的一个词语,y 是这个词语的上下文,那么咱们须要一个语言模型 f(),这个模型的使命就是判断 (x,y) 这个样本是否合乎自然语言的规定。Word2vec 并不重视将这个语言模型训练的如许准确,而是关怀模型训练后失去的模型参数,并将这些参数作为 x 的向量化示意,这便是词向量的造成。基于此,便衍生了下面 CBOW 模型和 Skip-gram 模型。

退出移动版