本文是作者结合资料对论文From Word Embeddings To Document Distances的理解,其中有些地方理解不到位,还希望读者能批评指正。
本文首先会介绍BOW和TF-IDF,再介绍Word2Vec的词嵌套模型,然后介绍本论文的核心内容WMD,并且介绍本文提出的两种优化速度的方法,最后提出一些自己的想法并做一总结。
一 BOW和TF-IDF
在自然语言处理中,文本相似度是一个很重要的领域,并且其商业应用也很广阔,包括文本检索、新闻分类与聚类 、歌曲识别、多语言文档匹配等,都可以用文本相似度来评判。现在比较常见的文本间距离度量为BOW和TF-IDF,我们简单介绍下BOW和TF-IDF。
1. BOW
BOW全名叫Bag of words,也称为词袋模型,在信息检索中,BOW假定对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文本中每个词的出现都是独立的,不依赖于其他词 是否出现,或者说当这篇文章的作者在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。
那么在文本相似度中,词袋模型是将两篇文本通过词袋模型变为向量模型,通过计算向量的余弦距离来计算两个文本间的相似度。但这有个明显的缺点,就是严重缺乏相似词之间的表达。比如“我喜欢足球”和“我不喜欢足球”这两个文本是严重不相似的,但词袋模型会判为高度相似。再比如“我喜欢足球”和“我热爱足球”的意思是非常的接近的,但词袋模型不能表示“喜欢”和“爱”之间严重的相似关系。
2. TF-IDF
TF-IDF的全称是term frequency–inverse document frequency,翻译为词频-逆向文件频率。TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
TF-IDF和BOW的缺点相同,无法用于描述词与词之间的关系,从原理上来看,这两种方法是专注与单个词的,而不是整个文本相似度的,所以用这两个方法做文本相似度的度量肯定效果不会太好。
二 Word2Vec
论文的作者就提出了一种新的方法,该方法也是计算两文本间距离矩阵,而不同的是这个新的方法是基于Word2Vec的词嵌套来计算的,而且该方法很好的解决了之前两种方法不足的地方。那究竟什么是Word2Vec呢?我们下面介绍:
Word2Vec是一种将文本中的词进行嵌入的方法,而所谓嵌入,就是将各个词使用一个定长的向量来表示。word2vec工具主要包含两个模型:连续词袋模型(continuous bag of words,简称CBOW)和跳字模型(skip-gram),word2vec词向量可以较好地表达不同词之间的相似和类比关系
左边是CBOW模型,它的目标是:给定一串文本,使用某个词的上下文来预测这个词。例如,对于句子“Old sol