关于 word2vec 我有话要说

写在前面的话:

总结一下使用word2vec一年来的一些经验,因为自己在做的时候,很难在网上搜到word2vec的经验介绍,所以归纳出来,希望对读者有用。

这里不介绍word2vec的原理,因为原理介绍的资料网上很多:

作者论文 word2vec论坛

作者论文讲的比较简单,推荐一个比较全面的word2vec原理分析

最后,由于本人知识有限,错误之处,还望指正。

1 word2vec 是word embedding 最好的工具吗?

word2vec并非是效果最好的word embedding 工具。最容易看出的就是word2vec没有考虑语序,这里会有训练效果损失。

由于 word2vec 训练速度快 ,易用,google出品 等,使得word2vec使用的人多。

训练快是因为 word2vec只有输入层和输出层,砍去了神经网络中,隐藏层的耗时计算(所以word2vec并不算是一个深度学习算法)。另外,阅读word2vec的google的源码,会发现里面有一些提速的trick。如 sigmod函数,采用一次计算,以后查表,减去了大量的重复计算。如词典hash存储, 层次softmax等。

易用是因为word2vec 公布了word2vec的代码。在tensorflow,gensim,spark mllib包中都有集成,使用方便。

2 word2vec 训练结果的差异主要来自什么因素?

2.1 语料影响最大

语料的场景,比如微博的语料和新闻语料训练的结果差别很大。因为微博属于个人发帖,比较随意。而新闻比较官方正式,另外新闻句式相对复杂。经过训练对比:微博这种短文,训练的相似词更多是同级别的相关词。比如 深圳 相关的是 广州 。而用新闻语料,训练得到 深圳 相关的词 更多是与 深圳 有关联的词,比如 深圳大学。

为什么会出现这种情况呢?

因为 word2vec 的原理就是 一个词预测 前后词 或者 前后词 预测 当前词,使得概率最大化。

这就导致如下两个结果:

2.1.1 相似的句子,相同部位的词 会相似。

比如 句子1 w1 w2 w3 w4 X w5 w6 w7.

句子2 w1 w2 w3 w5 Y w5 w6 w7.

因为 X 的向量 受 w1 w2 w3 w4 w5 w6 w7 向量影响决定, Y也是受这几个词影响决定。

所以 X Y 是相似的。

2.1.2 挨着近的词,也是相似的。

比如 句子 w1 w2 w3 w4 X Y w5 w6 w7. 这样 X Y 都是受到 来自 w1 w2 w3 w4 w5 w6 w7 向量影响决定。

所以X Y是相似的。

所以,微博和新闻的句子的整体分布是不一样的。 这里影响 结论 2.1.1.

其次,新闻长文多,句式复杂,微博短文多,这里影响结论2.1.2.

2.2 算法参数的影响。

算法参数对总体效果影响不大。相对来说,比较重要的参数有以下:

2.2.1 负采样

负采样越低,对高频词越不利,对低频词有利。可以这么理解,本来高频词 词被迭代50次,低频词迭代10次,如果采样频率降低一半,高频词失去了25次迭代,而低频词只失去了5次。一般设置成le-5

2.2. 2 语言模型

skip-gram 和cbow,之前有对比,切词效果偏重各不相同。 从效果来看,感觉cbow对词频低的词更有利。这是因为 cbow是基于周围词来预测某个词,虽然这个词词频低,但是他是基于 周围词训练的基础上,通过算法来得到这个词的向量。通过周围词的影响,周围词训练的充分,这个词就会收益。

2.2. 3 窗口大小

窗口大小影响 词 和前后多少个词的关系,和语料中语句长度有关,建议可以统计一下语料中,句子长度的分布,再来设置window大小。一般设置成8。

2.2. 4 min-count

最小词频训练阀值,这个根据训练语料大小设置,只有词频超过这个阀值的词才能被训练。

根据经验,如果切词效果不好,会切错一些词,比如 “在深圳”,毕竟切错的是少数情况,使得这种错词词频不高,可以通过设置相对大一点的 min-count 过滤掉切错的词。

2.2. 5 向量维度

如果词量大,训练得到的词向量还要做语义层面的叠加,比如 句子 的向量表示 用 词的向量叠加,为了有区分度,语义空间应该要设置大一些,所以维度要偏大。一般 情况下200维够用。

2.2. 6 其他参数

比如学习率 可以根据需要调。

3 word2vec 影响速度的因素有哪些?

3.1 语言模型:cbow 比skip-gram 更快

为什么 cbow更快,很重要的一个原因,cbow是基于周围词来预测这个单词本身 。而skip-gram是基于本身词去预测周围词。 那么,cbow只要 把窗口内的其他词相加一次作为输入来预测 一个单词。不管窗口多大,只需要一次运算。而skip-gram直接受窗口影响,窗口越大,需要预测的周围词越多。在训练中,通过调整窗口大小明显感觉到训练速度受到很大影响。

3.2 迭代次数

影响训练次数,语料不够的情况下,可以调大迭代次数。spark 版本有bug,迭代次数超过1,训练得到的词向量维度值超大。

3.3 线程数

单机版(google word2vec)可以通过设置多线程跑,集群版(spark mllib)可以设置多个 partitions.但是从经验来看,在集群上设置partitions 过多,会影响训练的效果。

3.4 其他参数

采样频率 影响词的训练频率 min-count 最小词频 影响 训练词的数量 Window大小 影响 skip-gram 的 预测次数。 向量维度 维度决定了训练过程中计算的维度

4 怎样评估word2vec训练的好坏?

4.1 词聚类

可以采用 kmeans 聚类,看聚类簇的分布

4.2 词cos 相关性

查找cos相近的词

4.3 Analogy对比

a:b 与 c:d的cos距离 (man-king woman-queen )

4.4 使用tnse,pca等降维可视化展示

词的分布,推荐用google的tensorboard,可以多视角查看,如果不想搭建服务,直接访问这里。另外可以用python的matplotlib。

4.5 Categorization 分类 看词在每个分类中的概率

动物

食物

汽车

电子

橘子

0.11

0.68

0.12

0.11

0.66

0.11

0.13

0.11

雅阁

0.14

0.23

0.67

0.11

苹果

0.11

0.65

0.11

0.65

前三条来自官网的评测方法

网上也有相关的word embedding 的评估方法,可以参考这里

资源

word2vec效果展示

板砖砸过来(^_^)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

old zhang的专栏

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

【新智元导读】深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在distillation这一想法做了一些前沿工作。今天我们介绍的是...

32610
来自专栏自然语言处理

程序员眼中的统计学6

1、试滑两次成功的概率? 2、试滑一次或两次猜中的概率? 3、试滑10000次,首次成功的概率? 4、试滑第10000次以上成功的概率?

843
来自专栏智能算法

深度学习漫游指南:强化学习概览

本文是NVIDIA博客上Tim Dettmers所写的《Deep Learning in a Nutshell》系列文章的第四篇。据介绍,该系列文章的目的是「提...

3185
来自专栏BestSDK

深度学习 VS 深度克隆,谁才是解决聊天机器人的最佳方法?

对话式 AI (聊天机器人)涉及到三个维度的问题:(1)语言技能(2)知识获取(3)对话行为。 这三者虽然强相关,但人类大脑通过单独的实验,在不同的时间段内,可...

2985
来自专栏IT派

机器学习算法一览

认识人工智能,还需要理清几个概念之间的关系:人工智能是一个大的概念,是让机器像人一样思考甚至超越人类;而机器学习是实现人工智能的一种方法,是使用算法来解析数据、...

922
来自专栏PaddlePaddle

【AI核心技术】课程七:计算机视觉深入认知

UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程持续更新中!

993
来自专栏AI科技评论

动态 | Uber开源「神经演化」可视化工具VINE

AI 科技评论按:算力的提升可能会为旧的算法注入活力。近两年来,神经演化(Neuroevolution)的方法逐渐再次受到关注,包括 OpenAI、DeepMi...

3377
来自专栏量子位

想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了

设计师们总是接到这种神奇的需求,但是受限于素材和工具的“想象力”,设计师无法凭空推理出背影女子的正脸是美女还是恐龙,这种需求根本无法达成。

884
来自专栏ATYUN订阅号

还记得谷歌之前发现的两颗行星吗?今天谷歌对此披露了重要技术细节

AiTechYun 编辑:Yining 前一阵,谷歌通过训练一个神经网络来分析来自NASA的开普勒太空望远镜的数据,并准确地识别出最有希望的行星信号,从而发现了...

2604
来自专栏人工智能头条

AI为超级马里奥兄弟创造了游戏新级别——GECCO 2018最佳论文提名

作者 | Vanessa Volz、Jacob Schrum、Jialin Liu、 Simon M. Lucas、Adam Smith、Sebastian R...

561

扫码关注云+社区