遍历|词嵌入的经典方法,六篇论文遍历Word2vec的另类应用

机器之心分析师网络
在本文中,作者首先为读者普及了 word2vec 的基础知识,然后以六篇论文为示例详细介绍了当前研究如何利用经典 word2vec 进行拓展性研究。其中,作者重点介绍的部分是知识嵌入空间的生成过程,对于其完整应用感兴趣的读者可以参阅原论文。
随着深度学习的兴起,每个模型都需要一个输入,而我们现实生活中的对象(文字、图片)等等都不是数字,计算机无法处理。所以如何为每个任务确定一个合适的 “输入” 就变得尤其重要了,这个过程也被叫做表征学习。
word2vec 做的就是把文字变成对计算机有意义的输入,简单来说就是把这些东西映射到一个空间里,我们平时为了表示位置可能是三维空间,也就是 xyz,但是在图片啊、文本啊这种领域里,三维空间不太够,就可能去到另外一个 N 维空间,在这个空间里,就像三维空间里人的鼻子要跟嘴挨得近一样,我们也希望相似的东西在这个新的空间里也距离近,比如文本里的 “鼻子” 和“嘴”我们就也希望它们能挨得近一点,因为都属于五官,那么 “鼻子” 和“腿”就相对离得远一点。
顾名思义,word2vec 是把文字转换成计算机可以识别的输入,所以这个技术最开始应用、也是应用最多的地方就是自然语言处理领域(NLP)。其实在之前对于表征学习,我基于 ICLR 和 CVPR 做过两次 high-level 的总结,但是这次这篇文章主要着眼于 word2vec,从细节着手,看看 word2vec 中发现的空间是如何被改进并使用的,同时也看一下基于 word2vec 的原理发现的新空间。在开始正题之前,为了防止有人不清楚 word2vec 从而影响对后文的理解,这里科普一下本文会用到的相关基本概念。
1、word2vec 简介
什么是 word2vec:Word2Vec 是一个过程(技术),在这个过程中,将文本作为神经网络的训练数据,这个神经网络的输出向量被称作嵌入,这些嵌入(向量)在训练后会包含单词的语义信息。这个过程做的就是从每个单词有多个维度的空间嵌入到具有低得多维度的连续向量空间。向量嵌入可以在真实对象的 “离散” 世界和机器学习的 “可微分” 世界之间架起一座桥梁,因此在数据库研究方面具有巨大的潜力。一类对象的嵌入向量是从 X 映射到某个向量空间,称为潜空间,我们通常假设它是一个有限维 d 的实向量空间 R^d。
 遍历|词嵌入的经典方法,六篇论文遍历Word2vec的另类应用
文章图片
如何去衡量:在使用嵌入的时候,我们应该考虑几个问题——对象的哪些属性用嵌入表示?我们用的距离测量的意义是什么?潜空间的几何性质是否对应了 X 上有意义的关系?当然同时,我们也要考虑计算向量嵌入的计算成本。
2、完善旧空间
了解了 word2vec 的基本常识,就可以正式进入正题了。在上一节说过,我们在建立一个嵌入空间的时候,我们要考虑的是对象的那些属性需要在嵌入空间中被表征。word2vec 在传统的 NLP 任务中表现得很好,但是在一些新的、较为复杂的任务中,有一些属性就不能很好的被体现了,因为最开始 word2vec 模型是完全基于文本进行训练,而很多关系是在文本中很难体现出的,比如 “看” 和“吃”,单独看这两个词,就算是我们也很难想到它们是有联系的。
 遍历|词嵌入的经典方法,六篇论文遍历Word2vec的另类应用
文章图片
这也不难理解,人类在感知这个世界的时候用到的模式不只是看,还有听、闻等等,同样的,在看的时候,看的也不只是书面上的文字,而语言却是传递知识的载体,所以现在研究者开始用不同的感知模式(声音、图片)来学习语言模型(multi-modal learning),从而让语言模型学出的嵌入能够更加全面的表征我们人类的理解能力。
至于技术层面,其实回溯到语言模型最开始起源的那阶段,语言模型跟迁移学习类似于一对兄弟,只不过进入了不同的领域,也就有了不同的名字。比如说在 NLP 任务中,语言模型先被训练好,然后后面直接用预训练好的语言模型来进行下面的任务,像不像冻住了前面几层的迁移学习(如果这个看不懂,也不太影响后面的理解,觉得放不下的可以看看机器之心之前的文章,有很多基础教程的,这里就不做介绍啦)。
之所以说迁移学习,是因为如果想要达到完善 word2vec 空间的效果,其实就是类似于迁移学习里的全局 finetune,把前面的语言模型(一开始冻住的层)也放进训练里来。
为了展示当前研究具体是怎么利用 word2vec 进行拓展应用,这一节对四篇论文进行简要介绍,从而展示图片和声音是如何加强已有的 word2vec 嵌入空间的表征能力的。当然这里介绍的知识嵌入空间的生成过程,原论文中还有其他的创新点,如果有兴趣可以再去拜读一下完整论文。
2.1 Visual Word2Vec (vis-w2v) [1]
论文链接:https://arxiv.org/pdf/1511.07067.pdf
获取了 H(N_H 就是嵌入的维度)之后,这个 H 就作为最终的特征向量,利用 W_O 将其进行映射 N_K 维(一共有 N_K 类,这里的 N_K 后面解释),对其进行 softmax 操作之后,就可以知道这段文本(w_1-w_l)属于哪一类了,这一步就是做了一个分类。
如果了解 NLP 任务的话,H 的获取的第一步跟平时我们获取 embedding 的方式一样,因为这里的 W_I 是初始化为传统 CBOW 的权重,所以这一步其实就是获取这些词的传统嵌入,然后对其取平均作为整个窗口所有词的特征,然后做了一个分类任务。


推荐阅读