文档章节

有谁可以解释下word embedding?

Airship
 Airship
发布于 2017/08/19 07:29
字数 5437
阅读 94
收藏 0

li Eta

li Eta

 

机器学习 话题的优秀回答者

316 人赞同了该回答

word embedding的意思是:给出一个文档,文档就是一个单词序列比如 “A B A C B F G”, 希望对文档中每个不同的单词都得到一个对应的向量(往往是低维向量)表示。
比如,对于这样的“A B A C B F G”的一个序列,也许我们最后能得到:A对应的向量为[0.1 0.6 -0.5],B对应的向量为[-0.2 0.9 0.7] (此处的数值只用于示意)

之所以希望把每个单词变成一个向量,目的还是为了方便计算,比如“求单词A的同义词”,就可以通过“求与单词A在cos距离下最相似的向量”来做到。

word embedding不是一个新的topic,很早就已经有人做了,比如bengio的paper“Neural probabilistic language models”,这其实还不算最早,更早的时候,Hinton就已经提出了distributed representation的概念“Learning distributed representations of concepts”(只不过不是用在word embedding上面) ,AAAI2015的时候问过Hinton怎么看google的word2vec,他说自己20年前就已经搞过了,哈哈,估计指的就是这篇paper。

总之,常见的word embedding方法就是先从文本中为每个单词构造一组features,然后对这组feature做distributed representations,哈哈,相比于传统的distributed representations,区别就是多了一步(先从文档中为每个单词构造一组feature)。

既然word embedding是一个老的topic,为什么会火呢?原因是Tomas Mikolov在Google的时候发的这两篇paper:“Efficient Estimation of Word Representations in Vector Space”、“Distributed Representations of Words and Phrases and their Compositionality”。

这两篇paper中提出了一个word2vec的工具包,里面包含了几种word embedding的方法,这些方法有两个特点。一个特点是速度快,另一个特点是得到的embedding vectors具备analogy性质。analogy性质类似于“A-B=C-D”这样的结构,举例说明:“北京-中国 = 巴黎-法国”。Tomas Mikolov认为具备这样的性质,则说明得到的embedding vectors性质非常好,能够model到语义。

这两篇paper是2013年的工作,至今(2015.8),这两篇paper的引用量早已经超好几百,足以看出其影响力很大。当然,word embedding的方案还有很多,常见的word embedding的方法有:
1. Distributed Representations of Words and Phrases and their Compositionality
2. Efficient Estimation of Word Representations in Vector Space
3. GloVe Global Vectors forWord Representation
4. Neural probabilistic language models
5. Natural language processing (almost) from scratch
6. Learning word embeddings efficiently with noise contrastive estimation
7. A scalable hierarchical distributed language model
8. Three new graphical models for statistical language modelling
9. Improving word representations via global context and multiple word prototypes

word2vec中的模型至今(2015.8)还是存在不少未解之谜,因此就有不少papers尝试去解释其中一些谜团,或者建立其与其他模型之间的联系,下面是paper list
1. Neural Word Embeddings as Implicit Matrix Factorization
2. Linguistic Regularities in Sparse and Explicit Word Representation
3. Random Walks on Context Spaces Towards an Explanation of the Mysteries of Semantic Word Embeddings
4. word2vec Explained Deriving Mikolov et al.’s Negative Sampling Word Embedding Method
5. Linking GloVe with word2vec
6. Word Embedding Revisited: A New Representation Learning and Explicit Matrix Factorization Perspective

编辑于 2015-08-27

31610 条评论

分享

收藏感谢收起

知乎用户

知乎用户

218 人赞同了该回答

题主问的是embedding的含义,楼上几位的回答都是拿word embedding说了一通,也没解释出embedding的含义。我来说一下。
Embedding在数学上表示一个maping, f: X -> Y, 也就是一个function,其中该函数是injective(就是我们所说的单射函数,每个Y只有唯一的X对应,反之亦然)和structure-preserving (结构保存,比如在X所属的空间上X1 < X2,那么映射后在Y所属空间上同理 Y1 < Y2)。那么对于word embedding,就是将单词word映射到另外一个空间,其中这个映射具有injective和structure-preserving的特点。

通俗的翻译可以认为是单词嵌入,就是把X所属空间的单词映射为到Y空间的多维向量,那么该多维向量相当于嵌入到Y所属空间中,一个萝卜一个坑。

word embedding,就是找到一个映射或者函数,生成在一个新的空间上的表达,该表达就是word representation。

推广开来,还有image embedding, video embedding, 都是一种将源数据映射到另外一个空间

编辑于 2016-10-24

21811 条评论

分享

收藏感谢

李韶华

李韶华

研究者

98 人赞同了该回答

(基于我之前做的一个slides编写。slides完整版:https://sites.google.com/site/shaohua03/intro-word-embedding.pdf

 

词嵌入最粗浅的理解

o 词映射到低维连续向量(如图)

cat: (-0.065, -0.035, 0.019, -0.026, 0.085,…)

dog: (-0.019, -0.076, 0.044, 0.021,0.095,…)

table: (0.027, 0.013, 0.006, -0.023, 0.014, …)

o 相似词映射到相似方向 -- 语义相似性被编码了

o Cosine相似度衡量方向

词嵌入可以做类比题 o v(“国王”) – v(“王后”) ≈ v(“男”) – v(“女”) o v(“英国”) + v(“首都”) ≈ v(“伦敦”) o 反映出语义空间中的线性关系 o词嵌入编码了语义空间中的线性关系, 向量的不同部分对应不同的语义 o 质疑:然而并没有什么x用? o 两个句子: A含“英国”,“首都”,不含“伦敦”;B含“伦敦” o 所有词的词向量的和表示句子 o 两个句子仍会比较相似

相似词映射到相似方向:为什么 o 基本假设:“相似”词的邻居词分布类似 o 倒推:两个词邻居词分布类似 → 两个词语义相近 o 宠物 主人 喂食 蹭 喵 o 宠物 主人 喂食 咬 汪 o v(“猫”)≈v(“狗”) o Apple: tree red growth design music company engineering executive o v(“apple”)≈v(“orange”), v(“apple”)≈v(“microsoft”)

词嵌入的优点 传统one-hot编码: “天气”: (1,0,0…,0),“气候”: (0,1,0,…0) 权力/的/游戏: (1,0,0,1,1,0,0, …) 冰/与/火/之/歌: (0,1,1,0,0,1,1,…) o 维度高(几千–几万维稀疏向量),数据稀疏 o 没有编码不同词之间的语义相似性 o 难以做模糊匹配 词嵌入: o 维度低(100 – 500维), 连续向量,方便机器学习模型处理 o 无监督学习,容易获得大语料 o 天然有聚类后的效果 o 一个向量可以编码一词多义 (歧义的问题需另外处理) o 罕见词也可以学到不错的表示:“风姿绰约” ≈ “漂亮”

 

Word2vec 简介

o Mikolov 2013, Distributed Representations of Words and Phrases and their Compositionality

o 使用最广泛的词嵌入方法

o 速度快,效果好,容易扩展

o 原因:简单(Less is more)

Word2vec 模型

o 回归连结函数:

o P(w_k|w_i) \propto \exp(\tilde{v}_{w_k}^T v_{w_i} ) (分母是归一化项,可暂时忽略)

o \tilde{v}_{w_k}v_{w_i} 方向相似: 预测的 P(w_k|w_i)

方向不同: 预测的概率小

o w_k经常出现在w_i周围,P(w_k|w_i) 大,驱使 \tilde{v}_{w_k}v_{w_i} 指向相似方向

o \tilde{v}_{w_i}v_{w_i} 两套词向量,使用时只保留一套

o 没有耗时的矩阵乘,只留一个softmax变换,所以效率高

o 优化用随机梯度递降,罕见词不会主导优化目标

o 罕见词的统计数据噪音(随机性)很大;常用词的统计数据比较稳定,偏差很小

o 与之相对,基于矩阵分解的算法经常被罕见词主导优化目标,导致overfit噪音

编辑于 2017-06-30

988 条评论

分享

收藏感谢收起

YJango

YJango

 

日本会津大学 人机界面实验室博士在读

43 人赞同了该回答

YJango的Word Embedding--介绍 - 知乎专栏

该篇主要是讨论为什么要做word embedding:

gitbook阅读地址:Word Embedding介绍

目录

  • 单词表达
    • One hot representation
    • Distributed representation
  • Word embedding
    • 目的
      • 数据量角度
      • 神经网络分析
    • 训练简述

 

至于word embedding的详细训练方法在下一节描述。

单词表达

先前在卷积神经网络的一节中,提到过图片是如何在计算机中被表达的。 同样的,单词也需要用计算机可以理解的方式表达后,才可以进行接下来的操作。

One hot representation

程序中编码单词的一个方法是one hot encoding。

实例:有1000个词汇量。排在第一个位置的代表英语中的冠词"a",那么这个"a"是用[1,0,0,0,0,...],只有第一个位置是1,其余位置都是0的1000维度的向量表示,如下图中的第一列所示。

 

也就是说,

在one hot representation编码的每个单词都是一个维度,彼此independent。

Distributed representation

然而每个单词彼此无关这个特点明显不符合我们的现实情况。我们知道大量的单词都是有关。

语义:girl和woman虽然用在不同年龄上,但指的都是女性。

复数:word和words仅仅是复数和单数的差别。

时态:buy和bought表达的都是“买”,但发生的时间不同。

所以用one hot representation的编码方式,上面的特性都没有被考虑到。

我们更希望用诸如“语义”,“复数”,“时态”等维度去描述一个单词。每一个维度不再是0或1,而是连续的实数,表示不同的程度。

目的

但是说到底,为什么我们想要用Distributed representation的方式去表达一个单词呢?

数据量角度

这需要再次记住我们的目的:

机器学习:从大量的个样本 {\{(x_i,y_i)^N_{i=1}}\} 中,寻找可以较好预测未见过 x_{new} 所对应 y_{new} 的函数 f:x\rightarrow y

实例:在我们日常生活的学习中,大量的 {\{(x_i,y_i)^N_{i=1}}\} 就是历年真题, x_i 是题目,而 y_i 是对应的正确答案。高考时将会遇到的 x_{new} 往往是我们没见过的题目,希望可以通过做题训练出来的解题方法 f:x\rightarrow y 来求解出正确的 y_{new}

如果可以见到所有的情况,那么只需要记住所有的 x_i 所对应的 y_i 就可以完美预测。但正如高考无法见到所有类型的题一样,我们无法见到所有的情况。这意味着,

机器学习需要从 有限的例子中寻找到合理的 f

高考有两个方向提高分数:

  • 方向一:训练更多的数据:题海战术。
  • 方向二:加入先验知识:尽可能排除不必要的可能性。

问题的关键在于训练所需要的数据量上。同理,如果我们用One hot representation去学习,那么每一个单词我们都需要实例数据去训练,即