深度解读FRAGE: Frequency-Agnostic Word Representation(2018-NIPS)

FRAGE: Frequency-Agnostic Word Representation


Alt

写在最前

agnostic [æg’nɒstɪk] 这个词在词典里查到的意思解释很少,作为名词(n.)是不可知论者,作为形容词(adj.)是不可知论的,那这篇文章的题目翻译过来是"频率不可知的词向量表示"么?显然让人很难理解,很难通过题目来判断文章具体是做了什么方面的研究工作。我们来看agnostic跟在一个名词后组成一个术语一般有什么样的含义:

Technology agnostic is a term that we use in the business that simply means, we are unbiased towards the use of different technology tools to solve different problems. We believe there is no 'one size fits all‘ in the website development industry.

Technology agnostic (技术不可知论)是我们在业务中使用的一个术语,简单地说,我们对使用不同的技术工具来解决不同的问题没有偏见(unbiased)。我们认为网站开发行业没有“一刀切”的模式。( 'one size fits all‘ :adj. 通用的;一体适用的; )因此,“agnostic”在这里更多是"unbiased(adj. 无偏倚的)"意思。

本文将Frequency-Agnostic作为标题,作者也是从一开始就想传达“针对高频词和低频词在传统词嵌入模型中的表现,我们也不应该采用‘一体适用’的方式训练它们,而我们又不能分别训练它们,我们只有把它们身上‘高频/低频词’这个标签给拿掉了,再来看训练效果”。

摘要

连续词向量表示(也称为 词嵌入)在很多基于神经网络的模型中被用于自然语言处理任务中作为基本构建块(basic building block)。尽管人们普遍认为具有相似语义的词在嵌入空间中应该彼此接近,但我们发现在几个(NLP)任务中学习到的词嵌入是有偏倚的(biased),高频词和低频词的向量表示在嵌入空间的不同子区域。即使高频词和低频词语义相似,它们在词嵌入空间中却彼此远离。这使得学习到的词嵌入无效,特别是对于低频词来说,结果限制了这些神经网络模型的性能表现。

在本文中,我们开发了FRequency-Agnostic word Embedding(FRAGE),这是一种利用对抗性训练(adversarial training)学习单词表示的简洁而有效的方法。我们对四个自然语言处理任务的十个数据集进行了全面的研究,包括单词相似度(word similarity),语言建模(language modeling),机器翻译(machine translation)和文本分类(text classification)。结果表明,使用FRAGE,我们在所有任务中都获得了比基线(baseline)更高的性能。

1. 介绍(Introduction)

词嵌入技术,通常分为两种,对词的离散向量表示和连续向量表示,已经成为了很多被用于自然语言处理任务的基于神经网络模型中的基本构建块。和经典的one-hot表示方法不同之处在于,这种方式所学习到的词向量包含有语义信息可以用于衡量词之间的语义相似度并且可以迁移到其他的学习任务(one-hot 表示的词向量之间两两正交,没有词相似度的概念)。

在NLP任务的深度学习方法中,词嵌入作为神经网络的输入,通常与神经网络参数一起训练。作为神经网络的输入,词嵌入携带词的所有信息,将会进一步被神经网络处理,并且词嵌入的质量非常重要,对最终学习任务的表现有着很高的影响。不幸的是,我们发现由很多深度学习方法所训练出来的词嵌入远非完美。如图1(a)和图1(b)所示,在由word2vec所训练出来的词嵌入空间中,词"Peking"的最近邻包含"quickest",“multicellular"和"epigentic” 而这些词都不是语义上相似,而真正语义上相关联的词如"Beijing"和"China"彼此相距很远。类似现象也被发现在由翻译任务训练的词嵌入表示上。

Alt

图1(部分):由WMT14翻译任务用Transformer训练出来的词嵌入和谷歌新闻(Google News)数据集用word2vec训练出来的词向量案例学习显示在(a)和(b)中。红点表示低频词汇,蓝点表示高频词汇。在(a)和(b)中,我们将这些词的语义上的邻居用粗体字标明了出来。

经过仔细研究,通过仔细研究,我们发现了一个更普遍的问题,它起源于文本语料库中的低频词。没有任何混淆,我们也将高频词(high-frequency words)称为流行词(popular words),并将低频词(low-frequency words)称为罕见词(rare words)。众所周知,词的频率分布大致遵循一种被称为齐普夫定律(Zipf’s law)的简单数学形式。随着文本语料库的大小增长,低频词(rare words)的频率远小于高频词,与此同时,低频词的数量会远大于高频词。有趣的是,所学习到的对低频词和高频词的词向量表示也完全不同。(1)在词嵌入空间,高频词通常有语义相关的邻居,而低频词通常没有。此外,超过85%的低频词哪怕有最近邻也还是低频词。(2)词嵌入技术(原生地)将词的频率信息编码进去,如图1(a)和1(b)所示,低频词和高频词的嵌入(also 词向量表示)实际上位于嵌入空间的不同子空间。

我们认为,对高频词和低频词进行向量表示的不同行为是有问题的。首先,这种嵌入会影响对词的语义理解。我们观察到超过一半的低频词是名词或高频词的变体。这些低频词应该和高频词有相似的意思或者同属于(共享)相同的主题。其次,大量低频词的邻居是语义无关的低频词。在某种程度上,这些词向量表示更多地将频率信息编码进来而不是语义信息,这一点从语义理解的角度上看不是很好。因此,它将限制使用这种词嵌入的NLP下游任务的性能。例如,在文本分类中,当用其低频/高频词的替代词来替换掉句子中原有的一个高频/低频词时,不能很好地保证句子的标签不会改变。

为了解决这个问题,本文提出一种对抗训练的方法去学习FRequency-AGnostic word Embedding (FRAGE,频率不可知的词嵌入). 对于给定的NLP任务,除了通过要优化特定任务的参数以及词嵌入来最小化特定任务的损失以外,我们引入了另一种判别器(discriminator),将词嵌入作为输入并对其是否是高频/低频词进行分类。判别器优化其参数去最大化它的分类准确率,与此同时,词嵌入也针对低任务依赖性损失进行优化以至于最后能够欺骗(fooling)判别器去将高频/低频词错误分类。当整个训练过程收敛并且系统达到平衡时,判别器不能很好地区分高频词与低频词。这样做的结果是,低频词能够与高频词处于词嵌入空间的同一区域并与其混合。这时FRAGE将能够更好地捕捉到语义信息并帮助特定任务获得更好的表现。

我们对四种类型的NLP任务进行了实验,包括三个词相似性任务,两个语言建模任务,三个情感分类任务,以及两个机器翻译任务来测试我们的方法。在所有任务中,FRAGE都优于基线。特别是,在语言建模和机器翻译方面,我们在PTB,WT2和WMT14英语-德语数据集上获得了比目前最先进(state-of-the-art)结果更好的性能。

2. 背景(Background)

2.1 词表示 (Word Representation)

单词是自然语言的基础单位,分布式单词表示(即单词嵌入)是NLP任务中许多模型的基本单元,包括语言建模和机器翻译。已经证明,从一项任务中学到的词向量表示可以转移到其他任务并且也能实现很好的性能表现。

当词嵌入技术在NLP基于神经网络的模型中扮演着越来越重要的作用并取得巨大成功时,一个技术上的挑战就是对低频词的嵌入很难训练,由于其出现频率低。R.Sennrich等人在“Neural machine translation of rare words with subword units“(2015)一文中提出一种新的方法将每个词进一步划分(split)为子词(sub-word)单元,这种方法通常广泛用于神经机器翻译中。然而,低频子词单元仍然很难去训练;M.Ott等人在“Analyzing uncertainty in neural machine translation“(2018)一文中提供了一个综合性研究,研究显示低频(子)词在神经机器翻译中通常被低估了:在推断(inference)步骤中,模型更倾向于选择高频词而不是它们的低频替代词。

2.2 对抗训练(Adversarial Training)

我们解决上述问题的基本思想是对抗性训练,使两个或两个以上的模型通过追求竞争目标一起学习。对抗性训练的代表性例子是用于图像生成的生成性对抗网络(GAN,Generative Adversarial Networks),其中判别器(discriminator)和生成器(generator)彼此竞争:生成器旨在生成类似于原始图像(natural images)的图像,而判别器旨在从原始图像中鉴别出后来生成的图像(generate images)。最近(2016,2017发表的文章表明),对抗训练已经被成功应用到NLP任务中。有些研究引入了一个额外的鉴别器来区分非并行双语数据中从不同语言学到的语义。 Alex Lamb等人(2016)开发了一个鉴别器来分类句子是由人创造还是由模型生成,其研究结果发表为“Professor forcing: A new algorithm for training recurrent networks“一文。

我们提出的方法是在对抗训练框架下解决,但又不完全是传统的生成器-判别器方法(generator-discriminator approach),因为我们的方案中没有生成器。对于NLP任务及其神经网络模型(包括词嵌入),我们引入了一个判别器来区分高频词和低频词的词向量表示;而神经网络模型旨在愚弄(fool)判别器的同时最小化特定任务的损失。

我们的工作也与对抗域适应性(adversarial domain adaptation)弱相关,试图减轻在训练和测试中进行域转换的负面影响。而本文工作和对抗域适应之间的区别在于:我们的目标不是为了造成训练和测试之间的不匹配,我们旨在提升词嵌入的有效性,从而提升端到端NLP任务的性能。

3. 实验研究(Empirical Study)

在本节中,我们基于使用word2vec从Google新闻语料库训练的模型研究高频词和低频词的嵌入,并使用Transformer从WMT14英语 - 德语翻译任务进行训练。实现细节可以FRAGE_in_Github中找到。

实验设计(Experimental Design)

在这两个任务中,我们简单地将词汇中频率排名前20%的常用单词设置为高频词(popular words),并将其余单词表示为低频词(rare words)。(粗略地说,在WMT14数据集中如果一个词的的相对频率低于 1 0 − 6 10^{-6} 106,以及在谷歌新闻数据集如果一个词的的相对频率低于 1 0 − 7 10^{-7} 107,我们将其设置为低频词。我们也尝试了设置成其他阈值,如10%或25%,发现观察结果相似。

我们研究在词向量表示中所展现出来的两个词之间的语义关系是否合理。为了达到这个目的,我们随机抽取了一些高频/低频词并检查了从不同任务中训练得到的嵌入。对于每个采样得到的单词,我们根据其与其他单词之间的词向量表示的余弦相似度确定其最近邻居。我们还手动选择与其语义相似的单词。为简单起见,对于每个单词,我们将从词嵌入中预测得到的最近单词称为模型预测的最近邻(model-predicted neighbors),并将我们选择的单词称为语义邻居(semantic neighbors)。

观察(Observation)

为了对词嵌入可视化,我们通过SVD(Singular Value Decomposition,奇异值分解)对词向量进行降维,并且将两个案例绘制成图形如图1所示。更多实验案例以及其他没有降维处理的研究可以在第5节中找到。

Alt

我们发现从不同任务中训练得到的词向量共享一些共同的模式。对于这两项任务而言,超过90%的模型预测的低频词的邻居还是低频词。对于每一个低频词而言,模型预测的邻居词通常与其并没有语义相关性,而我们选出来的语义邻居在词嵌入空间中和该词的距离非常远。与此相反,模型预测的高频词的邻居是非常合理的。

由于低频词和高频词的模式不同,我们进一步核查整个嵌入矩阵来进行一个大体上理解。我们也对用SV处理过的词嵌入进行可视化,通过将两个方向保持为两个最大的特征值(eigenvalues),并将它们绘制在图1©和1(d)中。从图中可以看出,这种嵌入方式实际上将词的频率信息在一定程度上编码进了词的向量表示:在这种线性投影之后,低频词和高频词位于不同的区域,因此它们在原始嵌入空间中占据了的不同区域。这种奇怪现象也在其他由C-BOW和GloVe所训练出的词向量中有所体现,在Jiaqi Mu的“All-but-the-top: Simple and effective postprocessing for word representations.“一文中也被提及到。

解释说明(Explanation)

从上面的实验研究中,我们可以看到低频词和高频词所占据的词嵌入空间是不同的,这里我们直观地解释一个可能的原因。我们简单地将word2vec作为一个例子,它是通过随机梯度下降进行训练的。在训练过程中,对高频词的采样率很高,因此高频词的词嵌入更新频繁。而对于一个低频词来说,采样率很低并且它的词嵌入很少更新。根据我们的研究发现,平均而言,在训练过程中,高频词的词嵌入的移动距离是低频词的两倍长。由于所有词向量表示通常都是在原点周围以较小的方差(variance)初始化,我们在最终模型中观察到,低频词的词嵌入仍然在原点附近,而高频词已经移动到距离初始位置很远的地方。

讨论(Discussion)

我们有充分的证据表明当前这种现象是存在问题的。首先,我们使用 自然语言工具包_Natural Language ToolKit中的POS 词性标注,研究发现在两个任务中,超过半数以上的低频词是名词,如公司名,城市名。它们可能与高频实体(popular entities)共享相似的主题,如一些大公司和大城市;大约10%的低频词包含有连字符(即通常用于连接高频词的符号),以及超过30%的低频词是高频词的不同变体形式(PoSs)。这些低频词与高频词应该有着混合或者相似的语义。这些事实表明,低频词和高频词应该位于词嵌入空间的同一区域,但这与我们观察到的不同。其次,正如我们从案例中看到的,对于低频词,模型预测的邻居通常不是语义相关的词而是频率相关的词(同为低频词)。这表明,对于低频词,词嵌入技术更多地将频率信息编码进词的向量表示而不是语义信息。这种方式训练出来的词向量表示被用于如文本分类,语言建模,语言理解和翻译的语义理解任务中表现是不好的。

【拓展】POS tagger

即Part-Of-Speech Tagger,主要用于标注词在文本中的成分。通常需要先对词作Tokenize(标记字符串,which means distinguish meaningful word units from punctuation in the text)处理,然后再作POS tagging(to tag these units according to their Part of Speech, such as Noun, Verb, Adjective),接下来对单词做lemmatizing(对词进行不同形式归类,to group related forms under a single heading, as would be done in a dictionary)。

其中PoS tagger 使用方法如下:

import nltk
text=nltk.word_tokenize(“TEXT”)
nltk.pos_tag(text)

通常会对词进行如下标注:

Alt

4. 本文的方法(Our Method)

在这一部分,我们展现了我们用于提升词的向量表示的方法。由于我们有一个很强的先验认知,很多低频词应该与高频词在词的嵌入空间中共享同一区域,因此我们算法的基本思想是在一个对抗性框架中训练词嵌入:我们引入了一个判别器将词嵌入分为两类:高频词和低频词。我们希望通过训练学习到的词向量不仅可以最大限度地减少具体任务的训练损失(minimize the task-specific training loss),同时也可以愚弄判别器。通过这种方式,词的频率信息就从词嵌入中被移除掉了,因此我们将我们的研究称作 频率不可知的词嵌入(frequency-agnostic word embedding ,FRAGE)

我们首先对之后会出现的符号进行一些标注,然后介绍我们的算法。我们开发了三种符号:词嵌入,具体任务的参数/损失,以及判别器参数/损失,整体框架如图2所示。

Alt

图2 所提出的学习框架包含一个具体任务的预测器(predictor)以及一个判别器(discriminator),判别器的功能是用于区分低频词和高频词。两个模块都使用词嵌入作为输入。

θ e m b ∈ R d × ∣ V ∣ \theta^{ emb}\in R^{d \times |V|} θembRd×V表示为要被学习到的词嵌入矩阵。其中 d d d是嵌入向量的维度, ∣ V ∣ |V| V是词汇表大小(vocabulary size)。用 V p o p V_{pop} Vpop表示高频词(popular words)的集合,而 V r a r e = V ∖ V p o p V_{rare}=V \setminus V_{pop} Vrare=VVpop ( ∖ \setminus 符号表明对集合做差集运算 )为低频词的词向量表示。接下来,嵌入矩阵 θ e m b \theta^{ emb} θemb可以分为两部分: θ p o p e m b \theta^{emb}_{pop} θpopemb为高频词的词嵌入矩阵, θ r a r e e m b \theta^{emb}_{rare} θrareemb为低频词的词嵌入矩阵。令 θ w e m b \theta^{emb}_{w} θwemb表示词 w w w的词嵌入。令 θ m o d e l \theta^{model} θmodel表示除了词嵌入以外所有的具体任务的参数。举例来说,对语言建模, θ m o d e l \theta^{model} θmodel是RNN或LSTM的参数;对神经机器翻译而言, θ m o d e l \theta^{model} θmodel是所有编码器(encoder),注意力模块(attention module)和解码器(decoder)的参数。

公式1 (Formula 1)

L T ( S ; θ m o d e l , θ e m b ) L_{T}(S;\theta^{model},\theta^{emb}) LT(S;θmode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值