哪种词向量模型更胜一筹?Word2Vec,WordRank or FastText?

简介: 本文在不同语料库下分析了FastText,Word2Vec和WordRank三种词嵌入模型的性能,发现没有单独的一种模型能够用于不同类型NLP任务。

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud


作者介绍

Parul Sethi,undergrad of Maths and IT at CIC, University of Delhi. RaRe Incubator Student.



     在众多词嵌入(有的也称作词向量)模型中选择一个合适的模型是很困难的任务,是选择NLP常用的Word2Vec还是其他模型?

     如图1所示,用WordRank,Word2Vec和FastText三种模型分别找出与“king”最相似的词语,WordRank的结果更加倾向于“king”这个词本身的属性或者和“king”同时出现最多的词,而Word2Vec的结果多是和“king”出现在相似的上下文。


kings_list_5

           图1. WordRank, Word2Vec和FastText三种模型输出与"king"最相似的词


不同模型实验结果对比



                                                图2. 三种模型实验结果对比

实验对比数据集:
1.使用Google类比数据集进行词类比实验,包含19K词类比问题,包含语义和语法类比;
2.使用SimLex-999和WS-353数据集进行词相似度实验,参考 此处介绍
      从上表可以看出, 每种模型用于不同任务时其效果表现出显著差异如FastText在语法类比任务中效果最好,WordRank在语义类比任务中效果最好。其原因在于,FastText引入词的形态学信息,而WordRank则是把寻找最相似词形式化为一个排序问题。即,给定词 w, WordRank输出一个序列化列表,将和词 w共同出现最多的词排在列表前面。在词的相似度方面,Word2Vec在Simlex-999测试数据上表现效果更好,而wordrank在ws-353上表现更好。出现这些不同的结果可能是因为数据集使用了不同角度下的相似度,图1中三种模型输出"king"的最相似词的对比也说明了这些词嵌入模型对相似度理解方式的不同。

可视化比较


      在使用TensorBoard对这三种词嵌入模型的结果进行可视化处理后,得出的结论和最开始三种模型的输出结果相似。TensorBoard使用PCA或者t-SNE方法将原始多维词向量降维至2维或者3维,原始词向量的信息会丢失一些,词之间的余弦相似度/距离会有所改变,但仍然是相关的,所以可视化的结果相对于图1中的结果会有所改变。


word2vec visualization
       2D PCA results for Word2Vec                     2D t-SNE results for Word2Vec
fasttext visualization
          2D PCA results for FastText                        2D t-SNE results for FastText
wordrank visualization
     2D PCA results for WordRank            t-SNE results for WordRank

                           图3. 不同模型使用PCA与t-SNE的效果对比

     从图3可以看出,在Word2Vec模型中,两种方法都表现不错。要注意的是,由于t-SNE是一种随机方法,所以即使是使用相同的参数设置,也可能得到不同结果。在FastText中,两种方法表现相似,稍次于Word2Vec。在WordRank模型上 ,t-SNE方法效果好于PCA,因为在PCA方法中,一些最相似的词反而在图中被置于较远的位置。


词频和模型性能


          本节将会使用不同语料库分析不同词频范围上,词嵌入模型在词类比任务上的性能,如图4和图5所示。类比的四个词的平均频率会先算出来,然后和具有相似平均频率的类比一同存储。
accuracy vs frequency 1m
             图4. 在 Brown corpus上,不同类比任务的准确率
accuracy vs frequency 17m
                             图5. 在 text8 corpus上,不同类比任务的准确率

由图4和图5分析表明:   

  • 1.在语义类比中,三种模型在低频词语上表现相对较差,在高频词语上表现效果较好;
  • 2.在语法类比中,FastText优于Word2Vec和WordRank 。FastText模型在低频词语上表现的相当好,但是当词频升高时,准确率迅速降低,而WordRank和Word2Vec在很少出现和很频繁出现的词语上准确率较低;

3. FastText在综合类比中表现更好,最后一幅图说明整体类比结果与语法类比的结果比较相似,因为语法类比任务的数量远远多于语义类比,所以在综合结果中语法类比任务的结果占有更大的权重;


综上,WordRank更适合语义类比,FastText更适合不同语料库下所有词频的语法类比。


三种模型词类比


      原文中作者展示了不同词向量模型在不同语料库(Brown corpus和text8 )上进行类比任务的日志,结果表明WordRank在语义类比任务上效果优于其他两种模型,而FastText在语法类比上效果更好。值得一提的是,如果用WordRank模型生成两个集合(词集合和上下文集合),WordRank使用它们词向量的内积对他们之间的关系建模,内积和他们之间的关系是直接成比例的,如果该词和上下文越相关,内积就会越大。将两者结合考虑,如:

 其中 和 分别表示词向量和上下文向量。实验结果表明这种向量合并的组合方法有助于降低过拟合和噪音的影响,并且能够进一步提升模型效果。

结论

1. 没有一种能够适用于不同NLP应用的词向量模型,应该根据你的具体使用场景选择合适的词向量模型。

2.  除了模型本身,词频也会对类比任务结果的准确率有重要影响。正如上面图中所示,语料库中词的频率不同,模型性能也不同,例如,如果词频很高,得到的精确度可能会比较低。

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《WordRank embedding: “crowned” is most similar to “king”, not word2vec’s “Canute”》  作者:Parul Sethi  译者:东东邪


文章为简译,更为详细的内容,请查看原文


PS:如果网站打不开,请下载本文附件查看原网页或点击此处


相关文章
|
3月前
|
机器学习/深度学习 自然语言处理 算法
Coggle 30 Days of ML(23年7月)任务六:训练FastText、Word2Vec词向量
Coggle 30 Days of ML(23年7月)任务六:训练FastText、Word2Vec词向量
|
11月前
|
机器学习/深度学习 自然语言处理 索引
瞎聊机器学习——从词袋模型到word2vec
瞎聊机器学习——从词袋模型到word2vec
|
11月前
|
机器学习/深度学习 自然语言处理 算法
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
深度学习基础入门篇10:序列模型-词表示{One-Hot编码、Word Embedding、Word2Vec、词向量的一些有趣应用}
|
机器学习/深度学习 自然语言处理 算法
GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试
本文将GPT3与三种传统文本嵌入技术GloVe、Word2vec(Mikolov ,2013 年)和 BERT生成的嵌入进行性能的简单对比。
492 0
GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试
|
机器学习/深度学习 存储 人工智能
文本深度表示模型——word2vec&doc2vec词向量模型
NLP 中最直观,也是到目前为止最常用的词表示方法是 One-hot Representation,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。
文本深度表示模型——word2vec&doc2vec词向量模型
|
自然语言处理 搜索推荐 算法
word2vec模型原理及实现词向量训练案例(二)
word2vec模型原理及实现词向量训练案例
389 0
word2vec模型原理及实现词向量训练案例(二)
|
机器学习/深度学习 Serverless Windows
word2vec模型原理及实现词向量训练案例(一)
word2vec模型原理及实现词向量训练案例
156 0
word2vec模型原理及实现词向量训练案例(一)
|
机器学习/深度学习 自然语言处理 Python
①机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
365 0
①机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
|
机器学习/深度学习 自然语言处理
②机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
294 0
②机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)
|
机器学习/深度学习 存储 人工智能
NLP教程(1) - 词向量、SVD分解与Word2Vec
本文介绍自然语言处理(NLP)的概念及其面临的问题,进而介绍词向量和其构建方法(包括基于共现矩阵降维和Word2Vec)。
1289 1
NLP教程(1)  -  词向量、SVD分解与Word2Vec

热门文章

最新文章