如何构建词空间向量和文本向量化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何构建词空间向量和文本向量化相关的知识,希望对你有一定的参考价值。
最近正好组内做了一个文档相似度的分享。决定回答一发。
首先,如果不局限于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词向量化的数据训练Seq2Seq翻译模型的问题?