Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

                                                   用子词信息丰富词向量

摘要:

在大型无标记的语料库中训练的连续词汇表示,对于许多自然语言处理(NLP)的任务都是有用的。许多主流的模型通过为每一个单词赋予不同的词向量而忽视了词汇的词形。这对于拥有大量词汇,许多是稀有词的形态丰富的语言而来尤其是一种限制。本论文,我们提出了一种基于 skip-gram 模型的新方法,每一个词被表示为一个 n-grams 字符。向量表示与每一个 n-grams 字符相关联,词组就用这些表示的总和表示。我们的方法很快,可以在大型语料库上快速的训练模型。在词的相似度和类比任务上,我们用了5种不同的语言对我们训练得到的词向量表示的模型进行了评估。

1.介绍

在自然语言处理领域,学习连续的词汇表示有着很长的历史。这些表示通常来自使用共同统计数据的大型未标记的语料库。被称之为分布语义的大任务量的工作,已经研究了这些方法的性质。在神经网络社区,Collobert 和 Weston 提出使用前向传播神经网络,基于一个词的左边两个单词和右边两个单词预测该词语的方法学习词语的嵌入。最近,Mikolov 等人提出了简单的对数双线性模型,用来学习在非常大的语料库中有效的词汇表示。

大多数这种表示技术都是在没有参数共享的情况下,不同的单词采用不同的向量表示。特别是,这样的话就忽视了词语之间的内部结构,而这对于形态丰富的语言来说是非常重要的一个限制,比如说土耳其语和芬兰语。这些语言包含了很多不常用的词,使得很难训练一个好的词级表达模型。本次论文,我们建议用字符的 n-grams 表示,并用这些 n-grams 向量的和表示词组。我们的主要贡献在于考虑到子词的信息,提出了连续 skip-gram 模型的拓展。我们用 5 种不同程度形态学的语言评估这个模型,以展示我们这种方法的优点。

2.相关工作

形态词表示。最近几年,为了更好的模拟稀有词语,提出了许多将形态学信息融入词表征的方法。Alexandrescu 和 Kirchhoff 介绍了词语被作为特征集表示的分解式神经语言模型。这些特征可能包含了形态学信息,并成功应用于形态学丰富的语言中,比如土耳其语。最近,几个研究提出了不同的构词法,从语素中提取词语的表达形式。这些不同的方法都依赖于词语的形态学分解,然而我们并不这么做。类似的,Chen 等人提出了一种联合学习中文词语嵌入的方法。Cui 等人提出限定形态上相似的词具有相似的表示方法。Soricut 和 Och 描述了一种形态学变换的向量表示法,可以通过这种方法获得未见词的向量表示(这点wordvec 不行)。Cotterell 和 Schutze 描述了在形态学带注释数据上训练的词语表示。最接近我们的方法,是Schutze 通过奇异值分解学习了 4-grams 字符的表示,并且通过对 4-grams 字符的表示的求和得到了单词的表示形式。

NLP的字符特征。与我们的工作密切相关的另一个研究领域是自然语言处理的字符模型,直接从字符序列获得表达方式。第一个这样的模型就是递归神经网络,应用于语言建模,文本规范化,词性标注和解析。另一类模型就是对字符训练的卷积神经网络,应用于词性标注,情感分析,文本分类和语言建模。Sperr 等人介绍了一种基于受限玻尔兹曼机器的语言模型,其中词语被编码为一组字符的 n-grams。最后,最近机器翻译的研究提出可以使用子词单元获取稀有词汇的表示。

3.模型

在本节中,我们提出了一个模型来学习如何考虑到词形态的表示。

一般模型。我们首先简单回顾一下从我们的模型中导出的 连续的 skip-gram 模型。给出大小为 W 的词汇表,其中一个词语由它的索引所标识 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 。目的是学习每个单词 w 的矢量表示。受分布式假设的启发,这种表达方式被训练来预测出现在给定单词的上下文中的单词。更正式的,给定一个大的训练语料表示为一系列单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) skip-gram 模型的目标是最大化对数似然。

                                                   Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

其中上下文 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)就是单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 周围的单词的索引集。观察给定单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 的上下文单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 出现的概率 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 使用词向量进行参数化。给出评分函数 s,将单词对映射到 R 中的分数,定义上下文单词出现的概率的一个可能的选择就是 softmax

                                                  Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

然而,这样的模型并不适用于我们的情况,因为它暗示,给定单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 我们仅仅预测一个上下文单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

这个问题也可以被描述成一组独立的二元分类任务,其目标是预测上下文单词的存在或不存在。对于在位置 t 和上下文 c 的单词,我们获得负对数似然:

                                          Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

其中 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 就是从词汇表中采样的负面样本,引入逻辑损失函数 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 我们得到目标函数:

                                           Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

单词 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)和上下文 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)之间的得分函数的自然参数化是在单词和上下文嵌入的标量积:Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) (其中Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 和 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 就是在向量空间 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 中的向量)这是 Mikolov 等人提出的具有负采样的 skip-gram 模型。

子词模型。通过对每个单词使用不同的向量表示,skip-gram 模型忽略了单词的内部结构。因此,在本节中,我们提出了一个不同的评分函数 s。给定一个单词 w ,我们用 Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 表示出现了 w 的n-grams 集合。我们用一个向量表示 zg 和每一个 n-gram g 的关联。我们用单词的 n-gram 向量的和来表示这个单词。我们因此获得得分公式

                                                  Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

我们一般都是在单词的 n-gram 集合中包括它本身,以便学习每个单词的向量表示。因此,n-grams 集合是词汇集合本身的超集。应该注意的是,将不同的单词赋予不同的向量,即使 n-gram 共享相同的字符序列。比如,出现在 paste 这个单词中的 bigram as 和单词as,将被赋予不同的向量。这个简单的模型可以在单词之间共享表征,因此可以学习可靠的稀有词的表征。

n-grams 字典。所提出的模型很简单,并且在Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇) 的定义中为设计选择保留了空间。在本文中,我们采用一个非常简单的方案:我们保持所有的 n-grams 的长度大于等于 3 小于等于 6 ,不同的 n-grams 都要使用到,比如前缀和后缀。我们还为单词的开头和结尾增加了一个特殊字符,以便于区分前缀和后缀。(也就是参数中的 minn 和 maxn)

为了减少模型的内存消耗,我们用哈希函数将n-grams 映射成 1 - K 的整数。接下来,令 K = 2M,最后,单词用单词在字典中的索引和其 n-grams 的哈希值表示。为了提高模型的效果,我们不会用 n-grams 来表示字典中最常见的 P个词。在选择P 值时需要权衡,因为较小的值会带来更高的计算成本但是可以获得更好的性能(去除高频词)。当 P=W,我们的模型就是 Mikolov 等人的 skip-gram 模型。

4.实验

数据集和基准模型。首先,我们将我们的模型与word2vec 包中的 skip-gram 模型和 COBW 模型中的 C 实践进行比较。不同的模型分别用5 种语言的基维百科数据训练:英语,捷克语,法语,德语,西班牙语。我们随机抽取了三种不同大小的数据集: 小型(50M tokens),中型(200M tokens) 和 全部 (完整的基维百科数据)。所有的数据都打乱了,并且我们用 5 轮训练。

实施细节。对于所有的实验,不论是我们的模型还是基准模型,都使用以下的参数:我们抽取 5 个底片,window 窗口为 5,采样阈值为 0.0001 并保持词语出现频数至少为 5 。在小型数据集,我们使用100 维度的向量表示,中型数据集使用 200 维向量,全部数据集使用 300 维向量。对于skip-gram 基准,学习率设置为 0.025,对于 CBOW 基准和我们的模型,学习率设置为 0.05 。在英文数据上使用这个设置,我们的带有字符 n-grams 的模型的训练速度比 skip-grams 基准模型训练速度的慢了将近 0.5 倍。(105k words/second/thread & 145k words/second/thread 的基准),我们的模型是在 C++ 上实现的,我们将在发布时提供代码。

人类相似性判断。我们首先通过人类判断与向量表示之间的余弦相似度的 Spearman 等级相关系数来评估我们的表示质量。对于英文,我们使用 Finkelstein 等人提供的 WS353 数据集以及 Luong 等人提供的稀有词数据集 RW。对于德语,我们比较了三个数据集上的不同的模型: Gur65,Gur350 和 ZG222 。最后我们在变换数据集 RG65 上评估法语向量模型,在 WS353 数据集上评估西班牙语的模型。

Facebook AI Research -- Enriching Word Vectors with Subword Information(fasttext 表征学习篇)

表1:在*上训练的模型中,矢量相似性得分与人类对几个数据集的判断(上图)和类比任务(下图)的准确性之间的相关性。 对于每个数据集,我们评估在几种规模的训练集上训练的模型。 Small包含50M tokens,Medium 200M tokens和Full是完整的基维百科数据。 对于每个数据集,我们报告了溢出词比率(out-of-vocabulary rate)以及我们的模型和Mikolov等人的 skip-gram 和CBOW模型的表现。

在这些数据集中有些词并未出现在训练数据中,因此我们并不能从 skip-gram 和 CBOW 基准模型中获得这些词语的表示。所以,我们决定在评估时去除包含这类词语的单词对。我们在表1 中报道了溢出词比率(OOV)。需要注意的是,我们的方法和基准共享相同的词汇,因此同一训练集上不同的结果具有可比性。不同训练语料库所产生的结果不具有可比性,因为词汇不同。