基于依赖性的词嵌入(Dependency-based word embedding)[Part I]

作者 Omer Levy and Yoav Goldberg (CS department, Bar-Ilan University)
原文地址

摘要

尽管目前连续向量的词嵌入技术逐渐变得热门,然而已有的模型都是只是单单基于线性的上下文环境(context)。本文工作推广了采用 negative-sampling 技术的 skip-gram 模型(由 Mikolov 等人提出)到任意的上下文环境场景。特别地,我们做了基于依赖性的上下文环境,发现获得的嵌入具有非常不同的效果。基于依赖性的词嵌入更加非局部化(topical)并展示了比原始的 skip-gram 更具功能性的相似性。

不同的上下文环境产生了明显的词嵌入结果,并导致不同的词的相似性。特别地,上下文环境的 BOW 本质会促成宽泛的局部相似性,而基于依赖的上下文环境则会产生更加具有功能性的比如说上义词这样的相似性。这个效果从定性和定量的角度都做了介绍。
神经网络词嵌入常常被认为是含糊不清的,因为很难确定导出的表示的维度的真正含义。在第五部分,我们将展示Skip-gram 模型可以做到一些相关的观察,通过查询由一个目标词激活的上下文环境。这就使得我们有了一种了解学到的表示的能力,并通过学习过程发现那些最具区分能力的词(或者词的群组)。据我们所知,这是从未有学者涉足的工作。

在 skip-gram 模型中,每个词 wW 关联于一个 d 维空间的向量 \vwRd ,每个上下文环境 cC 由一个 d 维空间的向量 vcRd 表示,其中 W 是词汇表,C 则是上下文表,而 d 则是嵌入的空间维数。向量的每个项都是潜在的,并作为参数被学习。粗略地说,我们就在寻找参数值(词向量和上下文向量的表示)使得关联于“好”的词-上下文对的点乘值 vm×vc 最大化。
更加准确地说,negative-sampling 的目标假设一个观测值对 (w,c) 的数据集。考虑其中一个词-上下文对。这个对来自这个数据集合么?我们使用 p(D=1|w,c) 表示 (w,c) 来自数据集的概率,使用 p(D=0|w,c)=1p(D=0|w,c) 表示 (w,c) 不出现在数据集的概率。所以概率分布如下所示:

p(D=1|w,c)=11+evw×vc
.
其中 vw vc 就是需要学习得到的模型参数。我们的目标是最大化观测到的属于数据集合的数据对的 log 概率:
argmaxvw,vc(w,c)Dlog11+evc×vw

该目标函数有一个易见的解就是对每个 (w,c) 对有 P(D=1|w,c)=1 。这个可以通过对所有的 c w ,把 vc=vw vc×vw=K 得到(K是一个相当大的数字)。
为了避免出现这样的一种易见的情形,目标函数被扩展出那些使得 P(D=1|w,c) 很低的 (w,c) 对,也就是那些不存在数据集合中的对。方法就是通过产生一个随机的样本集合 D 。所以我们得到一个引入了反例的训练目标函数:
argmaxvc,vw((w,c)Dp(D=1|c,w)(w,c)Dp(D=0|c,w))

当然也可以写作:
argmaxvc,vw((w,c)Dlog(σ(vcvw)+(w,c)Dlogσ(vcvw))

其中 σ(x)=1/(1+ex) 。这个目标函数在语料 DD 使用SGD方式在线的方式训练。
反例 D 有多种构造方式。我们追随 Mikolov 等人提出的方法:对每个 (w,c)D ,我们构造 n 个样本 (w,c1),,(w,cn) ,其中 n 是一个超参数并且每个 cj 根据本身的 unigram 分布(参数为 3/4 )。
优化这个目标函数使得观测到得词-上下文对有相似的嵌入,对未观测到的对则会分散化。直觉上看,出现在相似的上下文环境中的词应当由相似的嵌入,尽管现在我们还没有对 skipgram 事实上最大化了相似词之间的点乘值进行正式的证明。

任意上下文环境的嵌入

在 Skipgram 嵌入算法中,一个词的上下文环境是这个词周围的词。上下文环境表 C 因此和词汇表 W 是相同的一个。然而,这个限制对于此模型来说,并不是必须的;上下文不需要对应于词,并且上下文环境的类型数据可以是超过词的类型的。我们用任意上下文环境来取代BOW上下文环境从而推广 Skipgram。
本文工作采用了语法上下文环境进行了实验。语法环境描述了跟BOW环境不同的信息,正如我们在句子“Australian scientist discovers star with telescope.”展示的那样。

Linear BOW contexts

这就是 word2vec 和其他一些神经网络嵌入方法所采用的上下文环境。使用一个大小为 k 的窗口包围在目标词 w 的周围,所以共有 2k 个上下文环境产生出来: k 个在 w 前, k 个在 w 后。在该例中,discover 的上下文环境是 Australian, scientist, star, with
注意大小为 2 的上下文环境窗口可能会丢失一些重要的信息(telescope 不是discovers 的环境),并会引入一些不准确的信息(Australiandiscovers 的环境)。而且,上下文环境也是有问题的,discoversstarsscientist 的环境,这就使得 starsscientist 在嵌入的空间上是邻居。大小为 5 的窗口常常会用来保存宽泛的当前关注(topical)内容,而更小的窗口则会保持相对狭窄的关于目标词的信息。

Dependency-Based contexts

BOW之外的一种观点是采用基于参与词的语法关系的上下文环境。我们之前的关于parsing的技术对这个工作有很大的便利。parsing 技术可以用来高速并准确地解析出语法依赖关系。
在对每个句子进行parsing后,我们按照如下的方式导出词的环境:对目标词 w 有 modifier m1,m2,,mk 和 一个头 h ,我们考虑环境 (m1,lbl1),(m2,lbl2),,(mk,lblk) ,其中 lbl 是head 和 modifier 之间依赖关系的类型,其中 lbl1 用来表示逆关系。
Relations that include a preposition are “collapsed” prior to context extraction, by directly connecting the head and the object of the preposition, and subsuming the preposition itself into the dependency label. An example of the dependency context extraction is given in Figure 1.

基于依赖性的词嵌入(Dependency-based word embedding)[Part I]_第1张图片

注意到语法依赖性是比 BOW 更加 inclusive 和 focused的。它们获取了只用小得窗口无法得到的词之间的关系(如 discover 的工具 是 telescope),同样可以过滤出那些偶然的上下文关系(只是位于窗口内,而不是真正直接关联于目标词,如 Australian 不该是用作 discovers 的上下文环境)。另外,上下文环境是有类型的,表示出 stars 是发现的对象且 scientist 是发现主体。所以我们期待语法环境可以得出更加聚焦的嵌入,刻画出更加功能性和准确的相似性。

你可能感兴趣的:(embedding,deep-learning)