猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)

Alex 发自 凹非寺

量子位 | 公众号 QbitAI

来和你的计算机玩个猜词游戏吗?

这个叫Pimantle的猜词游戏,规则很简单:

随便输入一个单词,如果它越接近谜底,就会离下图的中心点越近。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(1)

在完全没有范围限制和人工提示的情况下,通过计算机反馈的辅助,网友给出的最接近预设词的是“delicatessen”(熟食),与谜底相似度已经达到了79.20。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(2)

不过,友友们是否好奇——这么多次猜测背后,计算机是怎么判断单词之间的“相似度”的啊?

其实,这是基于NLP领域的一个常用工具——Word2Vec。

顾名思义,它可以将单词转换成向量形式,来辅助计算机判断词义。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(3)

Word2Vec是Tomas Mikolov等人于2013年提出的一个词嵌入生成方法。

它在潜在语义分析等方面优于之前的算法,在判断文本相似度、系统推荐、观点分析等方面都具有广泛的应用。

一名研究机器学习的工程师Vatsal在Towards Data Science发布了一篇介绍Word2Vec的文章,并收获了相当不错的关注度。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(4)

这篇帖子在Towards Data Science上收获了1300 赞,Hackernews上2天之内收获了107热度。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(5)

网友表示:这是一篇很不错的入门介绍,包含了足够的细节和参考资料。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(6)

下面我们就跟随这位小哥一起来认识词嵌入和Word2Vec吧!

Word2Vec的基本原理

在介绍Word2Vec前,先来说说什么是词嵌入。

单词嵌入是将单个自然语言单词在预设的向量空间表示为矢量的技术总称,通过映射得到向量的编码过程被称为嵌入,而这些向量可作为后续任务中神经网络模型的输入。

例如,某个文本中包含“have”,“a”,“good”,“day”等词,这些词映射到向量空间中,表示为不同的向量。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(7)

机器可以通过向量内积空间夹角的余弦值来判断对应单词的语义相似度。

当给定了足够大的数据集,Word2Vec可以根据单词在文本中的出现情况,对单词的意思进行判断,评价结果会与语料库中其他单词产生联系。

此外,Word2Vec还可以做类比。例如,“国王”和“女王”算是相似度很高的词语。v(“国王”)-v(“男性”)+v(“女性”)≈v(“女王”)

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(8)

有了这些运算,机器也可以像人一样“理解”词汇的意思了。

Word2Vec的两种训练模式

Word2Vec包含两种训练模式,分别是Continous Bag of Words(连续词袋模型)和skip-gram。

其中,CBOW是通过给定的上下文,预测当前词。

如下图所示,w\left( t \right)表示当前单词,w\left( t-? \right)表示前文的单词,w\left( t ?\right)表示后文的单词。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(9)

skip-gram则是将当前单词作为输入,去预测上下文的词。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(10)

研究者们发现,在词汇向量范围增大的情况下,预测质量会有所提高,但计算复杂度也会增高。

对Skip-gram训练过程的可视化描述。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(11)

可见,当给定了文本语料库,目标词是在某个滚动窗口中选择的。目标词和窗口中的其他单词分别组合,形成神经网络的训练数据。

通过对模型进行训练,可以基本得到某个词作为给定目标上下文单词的概率。

上文介绍了Word2Vec的基本原理,那么这个词嵌入法还有什么应用或延伸吗?

Word2Vec的延伸:XXX2Vec

你是否做过MBTI人格测试,或者五大人格特质测试?

这些测试会给参与者一系列问题,然后给不同的几个指标打分,例如:内向-外向。

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(12)

假设满分为100分,某人外向性指标的最终得分为38/100。可以用这种方式绘图:

猜词游戏怎么玩儿(从猜词小游戏认识Word2Vec)(13)

下面把范围收缩到-1到1:

如果再加上另一个指标,如负责性,那么需要再添加一个坐标轴。

当我们把前文所示的五个主要的人格特征都进行统计分析,会得到:

我们可以对不同的人进行测试,并收集测试结果,如:

Word2Vec可以比较不同单词的意思,同理,我们可以运用向量余弦相似度比较不同个体的个性:

显然,Jay和另一个“测试者1”的性格更相似。

上文展示了将性格向量化,即Personality2Vec。

其实近年来,已经衍生出了2vec的不同变种,例如有的利用段落信息,有的利用整个文本的信息,有的则是在更高维度的item上进行2vec操作。

其中,Paragraph2vec基于CBOW,把段落的ID作为属性也纳入计算当中。

深度学习的表征能力很好,但是工程师们需要耗费大量的时间来选择特征。

未来应该会有更多的*2Vec诞生,在一个概念比较抽象、复杂时,通过向量化进入另外一个N维空间也许会带给人们一些启发。

看到这里,你是否想试试文章开头提到的猜词游戏?万一中了呢?:)

游戏链接:https://semantle.pimanrul.es/

参考链接:[1]. https://towardsdatascience.com/Word2Vec-explained-49c52b4ccb71[2]. https://jalammar.github.io/illustrated-Word2Vec/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页