找回密码
 立即注册
搜索

入门自然言语处理必看:图解词向量

绕指 2019-8-29 13:32:57 显示全部楼层 阅读模式

点击上方关注头条号,中转人工智能前沿!

词嵌入(embedding)是机器学习中最惊人的创造, 假如你有输入法打字预测的阅历,那么你很有能够是词嵌入(自然言语处理的核心模型)技术的受益者。

在过去的几十年中,基于神经网络模型的词嵌入技术发展迅猛。尤其是最近,包括运用BERT和GPT2等最先进的模型停止语义化词嵌入。

Word2vec是一种有效创建词嵌入的方法,于2013年提出。除了作为词嵌入的方法之外,它的一些概念曾经被证明可以有效地运用在引荐引擎和了解时序数据上。

在本文中,将讨论词嵌入的概念,以及运用word2vec生成词嵌入的机制。从一个例子末尾,熟习运用向量来表示事物,你能否知道你的个性可以仅被五个数字的列表(向量)表示?

词嵌入表示你的性情

如何用0到100的范围来表示你是多么外向/外向(其中0是最外向的,100是最外向的)? 你有没有做过像MBTI那样的人格测试,或者五大人格特质测试? 假如你还没有,这些测试会问你一系列的成绩,然后在很多维度给你打分,外向/外向就是其中之一。

五大人格特质测试测试结果示例。它可以真正告诉你很多关于你本人的事情,并且在学术、人格和职业成功方面都具有预测才能。

假设我的内外向得分为38/100。 可以用这种方式绘图表示:

把范围收缩到-1到1:

当你只知道这一条信息的时分,你觉得你有多了解这个人?兽性很复杂,需求添加另一测试的得分作为新维度。

可以将两个维度表示为图形上的一个点,或者作为从原点到该点的向量。

如今可以说这个向量代表了我的一部分人格。当你想要将另外两个人与我停止比较时,这种表示法就有用了。假设我忽然被车撞挂了,需求找一个性情相似的人交换我,那在下图中,两个人中哪一个更像我?

处理向量时,计算相似度得分的常用方法是运用余弦相似度:

很分明,1号替身在性情上与我更相似。指向相反方向的向量(长度也起作用)具有更高的余弦相似度。

两个维度还不足以捕获有关不同人群的足够信息。心思学曾经研讨出了五个次要人格特征(以及大量的子特征),所以运用一切五个维度停止比较:

运用五个维度的成绩是不能在二维平面绘制划一小箭头了。在机器学习中,常常需求在更高维度的空间中思索成绩。 但是余弦相似度的计算照旧有效,仍适用于恣意维度:

余弦相似度适用于恣意维度的数据,如今的得分比上次的得分要更合理,由于是根据被比较事物的更高维度算出的。

在本节的最后,总结两个中心思想:
    可以将人和事物表示为代数向量(这样才能运用机器停止!)。可以很容易地计算出向量之间的互相关系,能否相似。

词嵌入

经过上文的了解,继续看看训练好的词向量(也被称为词嵌入),并接着探求它们的一些风趣属性。

这是一个单词”king”的词嵌入(在维基百科上训练的GloVe向量):
[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]

这是一个包含50个数字的列表。经过观察数值看不出什么,但是稍微给它可视化,就可以和其它词向量作比较。把下面一切这些数字放在一行:

根据它们的值对单元格停止颜色编码(假如它们接近2则为红色,接近0则为白色,接近-2则为蓝色),得到如下图片:

忽略数字仅查看单元格颜色。如今将”king”与其它单词停止比较:

上图可以看出:”Man”和”Woman”彼此之间要愈加相似,相比于单词”king”来说。 这暗示着向量图示很好的展现了这些单词的信息/含义/关联。

这是另一个示例列表:

总结:
    一切这些不同的单词都有一条直的红色列,阐明它们在这个维度上是相似的(虽然不知道每个维度详细是什么含义)可以看到”woman”和”girl”在很多维度是相似的,”man”和”boy”也是一样“boy”和”girl”也有彼此相似的地方,但这些地方却与”woman”或”man”不同。这些维度能否可以总结出一个模糊的”youth”概念?除了最后一个单词,一切单词都是代表人。 经过添加了一个”water”对象来显示类别之间的差异。你可以看到蓝色列不断向下并在 “water”的词嵌入之前停下了。“king”和”queen”彼此之间相似,但它们与其它单词都不太相似。这些不相似的维度能否可以总结出一个模糊的”royalty”概念?

类比

展现词嵌入巧妙属性的著名例子是类比。经过添加、减去词嵌入得到一些风趣的结果。一个经典例子是公式:”king”-“man”+”woman”:

在python中运用Gensim库,可以添加和减去词向量,它会找到与结果向量最相似的单词。该图像显示了最相似的单词列表,输入其与每个单词余弦相似性。

异样停止可视化:

虽然”king-man + woman”生成的向量并不完全等同于”queen”,但是”queen”是在整个400,000个字词嵌入中最接近它的单词。

由此曾经看过训练好的词嵌入向量了,下文会详细引见训练过程。 在末尾运用word2vec之前,需求看一下词嵌入的下级概念:神经言语模型。

言语模型

自然言语处理最典型的运用,应该就是智能手机输入法中对下一单词预测功能。

单词预测可以经过言语模型来完成,言语模型会从单词列表中(比如说两个词)去尝试预测能够紧随其后的单词。

在下面这个手机截屏中,可以以为该模型接收到两个绿色单词(thou shalt)并引荐了一组单词(“not” 就是其中最有能够被选用的一个):

可以把这个模型想象为如下所示的黑盒:

但理想上,该模型不会只输入一个单词。实践上,一切它知道的单词(模型的词库,能够有几千到几百万个单词)按能够性打分,输入法程序会选出其中分数最高的引荐给用户。

自然言语模型的输入就是模型所知单词的概率评分,通常把概率按百分比表示,实践运用中,40%这样的分数在输入向量组是表示为0.4

自然言语模型(请参考Bengio 2003)在完成训练后,会按下图所示的三个步骤完成预测:

第一步与本文主题最相关,由于讨论的就是Embedding。模型在经过训练之后会生成一个映射单词表一切单词的词向量矩阵。在停止预测的时分,输入法预测算法就是在这个映射矩阵中查询输入的单词的词向量,然后计算出预测值:

下文将重点放到模型训练上,来学习一下模型如何构建这个映射矩阵词向量,欢迎关注。

欢迎关注全平台AI自媒体 “AI新视野”,第一工夫获取人工智能学术、产业前沿!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评12

灵魂οО 2019-8-29 13:33:30 显示全部楼层
分享了
回复

使用道具 举报

chaote56 2019-8-29 13:38:23 显示全部楼层
好文
回复

使用道具 举报

时尚飞儿 2019-8-29 13:45:18 显示全部楼层
分享了
回复

使用道具 举报

正气存内 2019-8-29 13:49:27 显示全部楼层
分享了
回复

使用道具 举报

anne718410 2019-8-29 13:53:04 显示全部楼层
分享了
回复

使用道具 举报

520手掌心 2019-8-29 14:00:49 显示全部楼层
分享了
回复

使用道具 举报

飘雪寒月 2019-8-29 14:12:22 显示全部楼层
分享了
回复

使用道具 举报

周扒皮丨 2019-8-29 14:23:25 显示全部楼层
分享了
回复

使用道具 举报

黄琼仪脑残 2019-8-29 14:23:59 显示全部楼层
分享了
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies