word2vec词向量加权的方法都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word2vec词向量加权的方法都有哪些?相关的知识,希望对你有一定的参考价值。

‍‍我对词向量加权这个还真的不太了解,也没怎么接触过,不过你可以考虑一下fastText,可能会让你满意。‍‍ 参考技术A 你可以考虑一下fastText,可能会解决你的问题。 参考技术B 直接用于神经网络模型的输入层。如 C&W 的 SENNA 系统中,将训练好的词向量作为输入,用前馈网络和卷积网络完成了词性标注、语义角色标注等一系列任务。再如 Socher 将词向量作为输入,用递归神经网络完成了句法分析、情感分析等多项任务。 参考技术C 两个算法:

Skip-grams :给定目标中心词预测上下文
CBOW(连续词袋模型) : 通过上下文预测目标中心词
两种训练方式:

Hierarchical softmax
Negative sampling
参考技术D 1、直接用于神经网络模型的输入层。
2、作为辅助特征扩充现有模型。

如何构建词空间向量和文本向量化

    最近正好组内做了一个文档相似度的分享。决定回答一发。

首先,如果不局限于NN的方法,可以用BOW+tf-idf+LSI/LDA的体系搞定,也就是俗称的01或one hot representation。

其次,如果楼主指定了必须用流行的NN,俗称word-embedding的方法,当然首推word2vec(虽然不算是DNN)。然后得到了word2vec的词向量后,可以通过简单加权/tag加权/tf-idf加权等方式得到文档向量。这算是一种方法。当然,加权之前一般应该先干掉stop word,词聚类处理一下。

还有,doc2vec中的paragraph vector也属于直接得到doc向量的方法。特点就是修改了word2vec中的cbow和skip-gram模型。依据论文《Distributed Representations of Sentences and Documents》(ICML 2014)。

还有一种根据句法树加权的方式,是ICML2011提出的,见论文《Parsing Natural Scenes and Natural Language with Recursive Neural Networks》,后续也有多个改编的版本。

当然,得到词向量的方式不局限于word2vec,RNNLM和glove也能得到传说中高质量的词向量。

ICML2015的论文《From Word Embeddings To Document Distances, Kusner, Washington University》新提出一种计算doc相似度的方式,大致思路是将词之间的余弦距离作为ground distance,词频作为权重,在权重的约束条件下,求WMD的线性规划最优解。

最后,kaggle101中的一个word2vec题目的tutorial里作者如是说:他试了一下简单加权和各种加权,不管如何处理,效果还不如01,归其原因作者认为加权的方式丢失了最重要的句子结构信息(也可以说是词序信息),而doc2vec的方法则保存了这种信息。

在刚刚结束的ACL2015上,似乎很多人提到了glove的方法,其思想是挖掘词共现信息的内在含义,据说是基于全局统计的方法(LSI为代表)与基于局部预测的方法(word2vec为代表)的折衷,而且输出的词向量在词聚类任务上干掉了word2vec的结果,也可以看看。《GloVe: Global Vectors forWord Representation》

参考技术A 假设每个词对应一个词向量,假设:
1)两个词的相似度正比于对应词向量的乘积。即:sim(v1,v2)=v1⋅v2sim(v1,v2)=v1⋅v2。即点乘原则;
2)多个词v1∼vnv1∼vn组成的一个上下文用CC来表示,其中C=∑ni=1viC=∑i=1nvi。C|C|C|C|称作上下文C的中心向量。即加和原则;
3)在上下文CC中出现单词AA的概率正比于能量因子e−E(A,C),whereE=−A⋅Ce−E(A,C),whereE=−A⋅C。即能量法则(可参看热统中的配分函数)。
因此:

以上是关于word2vec词向量加权的方法都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

word2vec是如何得到词向量的?

NLP︱R语言实现word2vec(词向量)经验总结(消除歧义词向量的可加性)

词向量word2vec(图学习参考资料)

NLP教程 | 词向量SVD分解与Word2Vec

word2vec是如何得到词向量的

Gensim Word2Vec 从预训练模型中选择少量词向量