关于句向量的一些思考

来源:互联网 发布:www.js pc.com.cn 编辑:程序博客网 时间:2024/06/10 09:31

其实我一直觉得在深度框架下的nlp中,我们只要按照传统的无监督的语言模型训练出了词向量,接下就是使用深度学习中的cnn或者rnn等系列模型把这些词向量序列encode成句向量。但是我看了2014 ICML会议的《Distributed Representations of Sentences and Documents》之后我对之前理解的传统nlp步骤有了新的了解,特别是有关句向量生成这部分。它打破了词向量和句向量生成的先后顺序,把典型的词向量语言模型中加入了表征句向量的部分,使句向量和词向量同时在该框架下生成。

正如前面所说,这个过程参考了Mikolov关于word2vec的工作,只不过在其结构的基础之上加了一个表征句子的向量,换而言之就是在训练语言模型的得到词向量的同时训练得到句向量(个人感觉可能这个句向量更能够反映出句子的语义信息)。下面就是其结构:
这里写图片描述
上述模型参考了Mikolov提出的cbow的模型只不过这里在进行窗口内词语整合的时候多加进去了表征句子的向量,最后模型的优化目标还是最大化目标词语出现的概率。那么就像Mikolov提出的Word2vec框架有cbow和skip-gram两种方式,句向量也有其对应的skip-gram结构如下所示:
这里写图片描述
正如论文里写的方式:“ignore the context words in the input, but force the model to predict words randomly sampled from the paragraph in the output. In reality, what this means is that at each iteration of stochastic gradient descent, we sample a text window, then sample a random word from the text window and form a classification task given the Paragraph Vector.”。这个模型和词向量中skip-gram不同的是底下的不再是词向量了而是一个句向量。
当然了在具体优化的时候同样有层次化的softmax和负采样两种方式。
其实这篇论文最大启发我的地方是,提供了一种新的生成句向量的思路:改造传统的词向量模型,加入句向量因素。这样的句向量更能考虑到上下文的交互特征。

0 0
原创粉丝点击