我正在研究各种语义相似性方法,例如 word2vec、word mover distance (WMD) 和 fastText。就语义相似性而言,fastText 并不比 Word2Vec 好。WMD 和 Word2Vec 的结果几乎相似。
我想知道是否有替代方案在语义准确性方面优于 Word2Vec 模型?
我的用例: 找到两个句子的词嵌入,然后使用余弦相似度来找到它们的相似度。
任何技术是否“优于”另一种技术在很大程度上取决于您的训练数据、您选择的特定元参数选项以及您的确切最终任务。(甚至“语义相似性”也可能有许多替代方面,具体取决于应用程序。)
从 word2vec 词向量到句子/段落向量没有一种方法。您可以添加原始向量。您可以平均单位归一化向量。您可以根据单词重要性的其他度量执行某种其他类型的加权平均。所以你的隐含基线不清楚。
本质上,您必须针对您的数据和目标,通过自定义评估尝试各种方法和参数。
Word Mover 的 Distance不会将每个文本减少到单个向量,并且两个文本之间的成对计算可能会很昂贵,但它在一些语义相似性任务上的表现非常好。
FastText 本质上是 word2vec,具有一些额外的增强功能和新模式。关闭附加功能的某些模式与 word2vec 完全相同,因此在某些 wordvecs-to-textvecs 方案中使用 FastText 词向量应该非常接近在同一方案中使用 word2vec 词向量。某些模式可能有助于提高词向量的质量,但会降低词向量在 wordvecs-to-textvecs 方案中的效率。某些模式可能会使词向量更好地用于求和/平均组合方案——您应该特别注意“分类器”模式,该模式在分类任务中训练词向量在平均时表现良好。(如果您的数据可能有任何语义标签,这可能会使 word-vecs 更适合语义相似性任务。)
您可能还想查看“段落向量”技术(在 gensim as 中可用Doc2Vec
)或其他简称为“fastSent”或“sent2vec”的研究结果。