Word Embedding是"词嵌入"的意思,这是语言表示的一种方式。它可以让算法理解一些类似的词。
简单理解,就是词向量,代替one-hot编码做词向量。词嵌入比one-hot编码有更多优点:
词嵌入可以用一个低维向量来表示词向量,而one-hot编码一般维度一般都比较高
词嵌入可以表征词的相似性,语义上相似的词,其词向量也比较接近
通用性强,在分类,回归,NER等应用中,都可以使用
词嵌入表示的词向量,还有一个很常见的应用,是 analogy reasoning (类比推理)。类比推理是什么呢?接下来我们就用示例来说明。
假设下表能表示"man", “woman”, “king”, “queen”, “apple”, "orange"这几个单词的词嵌入(词向量),比如 man=[-1,0.01,0.03,0.09]
。
我们有这样一个问题:
从语义上进行推理,我们当然知道king对应queen。但词嵌入,就是用来在数学上进行推理的,用数学推理来进行语义推理,这样机器才有了智能。推理过程为:
man-woman
下面Eman表示man的word Embedding,其他同理。
Eman = [-1,0.01,0.03,0.09]
Ewoman = [1,0.02,0.02,0.01]
Eman - Ewoman = [-2,0,0,0] ( 这里用了近似计算,太小的数就认为是0 )
king
与其他每个词的减法当我们计算到 queen时,得到
Eking - Equeen = [-2,0,0,0]
这个结果正好与 Eman - Ewoman 的值相同(非常近似)。这样就说明了上面提出的问题,man如果对应woman,则king应该对应queen。
而这个向量差值,[-2,0,0,0],也有自己的含义。再看上图,我们发现向量第一个维度是Gender,向量差值其他维度值都为0,所以说明“king和queen之间差别最大的,就是Gender”。
在进行推理时,就是要找到某个词X,满足
Eman-Ewoman = Eking-Ex (近似相等即可)
所以,
Ex = Eking - Eman + Ewoman
就是说,问题被转换为:要找到词嵌入向量与Ex计算得到的结果最相似的词。
通过这种对词嵌入“做减法”的方式,来做类比推理,Andrew总结说,准确度只有30%~75%
cosine similarity是做 类比推理 最常用的相似度计算方法。
cosine(x)函数,当x为0时,其值为1。
欧式距离也可以计算相似性,他与cosine不同的地方在于:他们对距离的标准化方式不同。
当然Andrew Ng觉得cosine相似度更常用。
(1)Man对于Woman,相对于Boy对于Girl
(2)Ottawa对于Canada,相当于Nairobi对于Kenya
(Ottawa是Canada的首都,后者类似)
本文主要讲述了词嵌入被用于类比推理的具体过程。