论文笔记:WORD TRANSLATION WITHOUT PARALLEL DATA

本文介绍了一种无监督方法,通过无平行语料库的对抗性训练学习跨语言词典,模型在英语-意大利语等语言对上超越了监督方法。方法利用对抗器区分源与目标词嵌入,通过Procrustes优化字典,并提出无监督选择标准。实验结果显示在多个任务上取得优异性能,包括单词翻译、句子检索和词相似度评估。
摘要由CSDN通过智能技术生成

引用文章
Facebook MUSE 无监督跨语言迁移学习任务

face - Word Translation without Parallel Data

文献阅读笔记:Word Translation Without Parallel Data

论文笔记:Word translation without parallel data无监督单词翻译

WORD TRANSLATION WITHOUT PARALLEL DATA ICLR2018

摘要

学习跨语言词嵌入的最先进方法依赖于双语词典或平行语料库。最近的研究表明,使用字符级信息可以减轻对平行数据监督的需求(再看看。虽然这些方法显示了令人鼓舞的结果,但它们与受监督的方法相比并不相同,并且仅限于共享一个公共字母表的语言对。在这项工作中,我们表明,我们在不使用任何平行语料库的情况下,通过以无监督的方式对齐单语单词嵌入空间来建立两种语言之间的双语词典。 在不使用任何字符信息的情况下,我们的模型在一些语言对的跨语言任务上甚至优于现有的监督方法。我们的实验表明,我们的方法对于远距离的语言对也非常有效,比如英语-俄语或英语-汉语。最后,我们描述了在英语-世界语低资源语言对上的实验,其中只存在有限数量的并行数据,以显示我们的方法在完全无监督的机器翻译中的潜在影响。我们的代码、嵌入和字典是公开可用的。

1 介绍

学习单词分布式表示的最成功方法(例如Mikolov等人(2013c;a);Pennington等人(2014年);Bojanowski et al.(2017))依赖Harris(1954)的分布假设,该假设指出,出现在相似语境中的单词往往具有相似的含义。 Levy&Goldberg(2014)表明,Mikolov等人(2013c)的带负采样的skip gram(小维度的词嵌入)相当于分解一个词-上下文共现矩阵,其条目是各个词和上下文对的逐点互信息。利用词的共现性统计可以得到反映语义相似性和差异性的词向量:相似的词在嵌入空间中是相近的,反之亦然。

Mikolov等人。(2013b)首次注意到,连续单词嵌入空间在不同语言之间表现出相似的结构,即使考虑到英语和越南语等遥远的语言对也是如此。他们建议通过学习从源到目标嵌入空间的线性映射来利用这种相似性。他们使用了1000个单词的平行词汇作为锚点来学习这种映射,并在单词翻译任务中评估了他们的方法。此后,一些研究旨在改善这些跨语言的单词嵌入(Faruqui&Dyer(2014);Xing et al.。(2015);Lazaridou等人。(2015);Ammar等人。(2016);Artexe等人。(2016);Smith等人。(2017)),但它们都依赖于双语词汇。

最近在减少双语监督需求方面的尝试(Smith 等人,2017 年)采用相同的字符串来形成并行词汇表。Artetxe等人(2017)的迭代方法从对齐数字的平行词汇表开始,逐渐对齐嵌入空间。然而,这些方法限于共享公共字母表的类似语言,例如欧洲语言。最近的一些方法探索了基于分布的方法(曹等,2016)或对抗训练张等(2017b),以在没有任何平行数据的情况下获得跨语言单词嵌入。虽然这些方法听起来很吸引人,但它们的性能远远低于监督方法。总之,当前的方法要么没有达到有竞争力的性能,要么仍然需要并行数据,如对齐的语料库(Gouws等人,2015;武里奇和莫恩斯,2015)或种子平行词典(Duong等人,2016)。

在这篇文章中,我们介绍了一个模型,它要么与监督的最先进的方法不相上下,要么优于监督的最先进的方法,而没有使用任何跨语言的标注数据。我们只使用两个大型单语语料库,一个在源语言中,一个在目标语言中。我们的方法利用对抗训练来学习从源到目标空间的线性映射,并且分两步操作。

首先,在双人游戏中,训练一个鉴别器来区分映射的源嵌入和目标嵌入,而联合训练映射(可以看作是一个生成器)来欺骗鉴别器。其次,我们从生成的共享嵌入空间中提取合成字典,并使用 Schönemann (1966) 的封闭形式 Procrustes 解决方案微调映射(这又是个啥意思?)。 由于该方法是无监督的,因此无法使用跨语言数据来选择最佳模型(这又是为啥)。为了克服这个问题,我们引入了一个与映射质量高度相关的无监督选择指标,我们将其用作停止标准并选择最佳超参数。

1、基本介绍
为了比较两个或者更多的形状,对象必须首先被最佳地重叠起来。普氏重叠(Procrustes superimposition, PS)是一种平移、旋转和缩放物体的方法。通过最小化普氏距离(一种形状差异的量度,类似于欧氏距离,后文会介绍),自由调整对象的位置和大小,使得多个对象尽可能重叠,这通常被称为全普氏重叠(full PS)。与之相对还有部分普氏重叠(partial PS),它只进行平移旋转而不会缩放。举个栗子,对于两个半径不同的圆,在full PS处理后,它们会完全重合。而在partial PS之后只会有位置的重合,两个圆的原始大小并不改变。

综上所述,本文做出以下主要贡献:
1、我们提出了一种无监督方法,该方法在几个语言对和三个不同的评估任务(即单词翻译、句子翻译检索和跨语言单词相似度)上达到或优于最先进的监督方法。在标准单词翻译检索基准上,使用 200k 词汇,我们的方法在英语-意大利语上的准确率达到 66.2%,而最佳监督方法为 63.7%。
2、我们引入了一种跨域相似性自适应来缓解所谓的Hubness问题(高维空间中的点往往是多个点的最近邻)。它的灵感来自Zelnik-Manor&Perona(2005)的自调优方法,但适合于我们的两域场景,在这种场景中,我们必须考虑邻居的二部图。这种方法显著提高了绝对性能,并且在有监督和无监督的单词翻译基准设置方面都优于最先进的设置。
3、我们提出了一个与映射质量高度相关的无监督准则,该准则既可以作为停止准则,也可以用来选择最佳的超参数。
4、我们发布了12个面向语言对的高质量词典,以及相应的监督和非监督单词嵌入。
5、我们用一个低资源语言对的例子证明了我们方法的有效性,其中我们的方法特别适合于没有平行语料库(英语-世界语)的语言对。

本文的结构如下。第 2 节描述了我们的对抗性训练和我们的改进程序的无监督方法。然后,我们在第 3 节中介绍了我们的无监督模型选择的训练过程。我们在第 4 节中报告了我们对几个语言对的几个跨语言任务的结果,并将我们的方法与有监督的方法进行了比较。最后,我们解释了我们的方法与最近学习跨语言词嵌入的相关工作有何不同。

2 MODEL

在本文中,我们始终假设我们有两组在单语数据上独立训练的嵌入。我们的工作重点是学习两组之间的映射,以便翻译在共享空间中接近。米科洛夫等人。 (2013b)表明他们可以利用单语嵌入空间的相似性来学习这种映射。为此,他们使用了 n = 5000 对单词 {xi, yi}i∈{1,n} 的已知字典,并学习了源空间和目标空间之间的线性映射 W,其中 d 是嵌入,Md® 是 d × d 实数矩阵的空间,X 和 Y 是大小为 d × n 的两个对齐矩阵,包含并行词汇表中单词的嵌入。任何源词 s 的翻译 t 定义为 t = argmaxt cos(W xs, yt)。

在实践中,Mikolov 等人。 (2013b)使用简单的线性映射在单词翻译任务上获得了更好的结果,并且在使用多层神经网络等更高级的策略时没有观察到任何改进。邢等人。 (2015) 表明,通过对 W 实施正交性约束,这些结果得到了改善。在这种情况下,等式 (1) 归结为 Procrustes 问题,它有利地提供了从 Y X T 的奇异值分解 (SVD) 获得的封闭形式解:


在这里插入图片描述

论文笔记:Word translation without parallel data无监督单词翻译


在本文中,我们展示了如何在没有跨语言监督的情况下学习这个映射 W;图 1 给出了该方法的说明。首先,我们通过使用对抗性标准来学习 W 的初始代理。然后,我们使用最匹配的词作为 Procrustes 的锚点。最后,我们通过改变空间的度量来提高频率较低的单词的性能,这导致更多的这些点分布在密集区域。 接下来,我们将描述每个步骤的详细信息。

** 重复 **:以上是有对齐的字典的情况,如果没有字典的话,怎么办呢?本篇文章采用的方法是:1 先用GAN学到一个W,来使embedding space尽可能接近 2 通过现在W找一些高频单词的最近邻,作为锚点,用procrustes获得更好的W 3 测试时,用CSLS作为距离测度来进行最近邻的搜索。下面依次介绍:
在这里插入图片描述
图 1:该方法的玩具插图。
(A) 词嵌入有两种分布,红色的英语单词用 X 表示,蓝色的意大利语单词用 Y 表示,我们想要对齐/翻译它们。每个点代表该空间中的一个单词。点的大小与该语言的训练语料库中单词的频率成正比。
(B) 使用对抗学习,我们学习了一个旋转矩阵 W,它大致对齐了两个分布。绿色星星是随机选择的词,它们被馈送到鉴别器以确定两个词嵌入是否来自相同的分布。
© 映射 W 通过 Procrustes 进一步细化。该方法使用上一步对齐的频繁词作为锚点,并最小化对应于锚点之间的弹簧系统的能量函数。然后使用细化的映射来映射字典中的所有单词。
(D) 最后,我们使用映射 W 和称为 CSLS 的距离度量进行翻译,该度量扩展了高密度点的空间(如“cat”一词周围的区域),因此“hubs”(如单词“cat”)变得比其他单词向量更接近其他单词(与面板(A)中的相同区域相比)。

2.1 DOMAIN-ADVERSARIAL SETTING(领域对抗设置)

在这一节中,我们介绍了在没有跨语言监督的情况下学习W的领域对抗方法。设X={x1,…,xn}和Y={y1,…,ym}是分别来自源语言和目标语言的n和m个词嵌入的两个集合。一个模型被训练来区分从WX={Wx1,…,Wxn}和Y中随机抽样的元素。我们称这个模型为鉴别器。W的训练是为了防止鉴别者做出准确的预测。因此,这是一个两人博弈,其中鉴别器旨在最大化其识别嵌入来源的能力,而W旨在通过使W、X和Y尽可能相似来防止鉴别器这样做。这种方法与Ganin等人的工作是一致的。(2016),他提出了学习与输入域不变的潜在表征,在我们的例子中,域由一种语言(源或目标)表示。

Discriminator objective(鉴别器目标):

Word Translation without Parallel Data

3 训练和架构选择

3.1架构

我们使用fast Text2训练的无监督单词向量。这些对应于在维基百科语料库上训练的维度300的单语嵌入;因此,映射W的大小为300×300。单词是小写的,出现次数少于5次的单词在训练时会被丢弃。作为后处理步骤,在我们的实验中,我们只选择了前20万个最频繁的单词。

对于我们的鉴别器,我们使用具有两个大小为 2048 的隐藏层和 Leaky-ReLU 激活函数的多层感知器。判别器的输入dropout,速率为 0.1。正如 Goodfellow (2016) 所建议的,我们在判别器预测中包含一个平滑系数 s = 0.2。我们使用随机梯度下降,批量大小为 32,学习率为 0.1,判别器和 W 的衰减为 0.95。每当我们的无监督验证标准降低时,我们将学习率除以 2。

3.2鉴别器输入

稀有词的嵌入质量通常不如频繁词的嵌入质量好(Luong等人,2013年),我们观察到,用稀有词喂养鉴别器有很小但不可忽略的负面影响。因此,我们只向鉴别器输入50000个最频繁的单词。在每个训练步骤中,给鉴别器的单词嵌入被均匀地采样。根据单词频率对它们进行抽样,对结果没有明显影响。

3.3 正交性

史密斯等人。 (2017) 表明,对线性算子施加正交约束可以带来更好的性能。使用正交矩阵有几个优点。首先,它确保保留了嵌入的单语质量。实际上,正交矩阵保留了向量的点积以及它们的 2 距离,因此是欧几里得空间的等距(例如旋转)。此外,它使我们的实验中的训练过程更加稳定。在这项工作中,我们建议使用一个简单的更新步骤来确保矩阵 W 在训练期间保持接近正交矩阵 (Cisse et al. (2017))。具体来说,我们在矩阵 W 上使用以下更新规则交替更新我们的模型:
在这里插入图片描述
其中β = 0.01 通常表现良好。此方法可确保矩阵在每次更新后保持接近正交矩阵的流形。在实践中,我们观察到矩阵的特征值都具有接近 1 的模数,正如预期的那样。

3.4 字典生成

细化步骤需要在每次迭代时生成一个新字典。为了使 Procrustes 解决方案运行良好,最好将其应用于正确的单词对。因此,我们使用第 2.3 节中描述的 CSLS 方法在字典中选择更准确的翻译对。为了进一步提高字典的质量,并确保从正确的翻译对中学习 W,我们只考虑相互最近的邻居,即根据 CSLS 相互最近的单词对。这显着减小了生成字典的大小,但提高了其准确性以及整体性能。

3.5无监督模型选择的验证标准

在无监督的环境中,选择最佳模型是一项具有挑战性但很重要的任务,因为不可能使用验证集(使用验证集意味着我们拥有并行数据)。为了解决这个问题,我们使用一个无监督的标准来进行模型选择,该标准量化了源和目标嵌入空间的接近程度。具体来说,我们考虑10k个最常见的源词,并使用CSL为每个源词生成翻译。然后,我们计算这些被认为的翻译之间的平均余弦相似性,并使用该平均值作为验证指标。我们发现,与最佳运输距离(如Wasserstein距离)相比,这个简单的标准与评估任务的绩效具有更好的相关性(Rubner et al.(2000))。图2显示了评估分数与该无监督标准之间的相关性(无学习率收缩稳定)。我们在训练中使用它作为停止标准,在所有实验中也使用它作为超参数选择。

在这里插入图片描述

无监督模型选择。我们的无监督验证标准(黑线)与实际单词翻译准确度(蓝线)之间的相关性。在这个特定的实验中,选择的模型处于 epoch 10。观察我们的标准如何与翻译准确度很好地相关。

4 EXPERIMENTS

在本节中,我们通过经验证明了我们的无监督方法在几个基准上的有效性,并将其与最先进的监督方法进行了比较。我们首先介绍了我们考虑评估跨语言词嵌入质量的跨语言评估任务。然后,我们展示我们的基线模型。最后,我们将我们的无监督方法与我们的基线和以前的方法进行比较。在附录中,我们对使用不同方法和语料库训练的几组英语嵌入的对齐进行了补充分析。

在下面的内容中,我们在表1中展示了使用双语词典进行单词翻译检索的结果,并在表2中与之前的工作进行了比较,在表2中,我们显著优于之前的方法。我们还展示了表3中句子翻译检索任务和表4中跨语言单词相似性任务的结果。最后,我们在表5中给出了英语世界语逐字翻译的结果。

4.1 评估任务

单词翻译 : 该任务考虑检索给定源词的翻译问题。大多数可用的双语词典的问题在于它们是使用谷歌翻译等在线工具生成的,并且没有考虑单词的多义性。未能捕获词汇表中的词多义性会导致对词嵌入空间质量的错误评估。其他词典是使用机器翻译系统的短语表生成的,但它们非常嘈杂或在相对较小的并行语料库上进行训练。对于这项任务,我们使用内部翻译工具创建了多达 10 万对单词的高质量词典,以缓解这个问题。我们将这些词典作为 MUSE 库的一部分公开提供。

我们报告了这些双语词典的结果,以及 Dinu 等人发布的结果。 (2015)允许与以前的方法进行直接比较。对于每个语言对,我们考虑 1,500 个查询源和 200k 个目标词。按照标准做法,我们测量一个源词的正确翻译被检索到多少次,并在 k = 1、5、10 时报告precision@k。
在这里插入图片描述

词翻译检索P@1对于我们发布的各种语言对词汇表。我们考虑1500个源测试查询,每个语言对有200k个目标词。我们使用在维基百科上训练过的fastText嵌入。NN:最近的邻居。ISF:反向softmax。('en’是英语,'fr’是法语,'de’是德语,'ru’是俄语,'zh’是古典汉语,'eo’是世界语)

在表1中,我们用Procrustes监督方法观察了相似性度量的影响。看看Procrustes NN和Procrustes CSL之间的差异,我们可以看到CSL在所有语言对中都提供了强大而稳健的性能提升,在en-eo中高达7.2%。 我们观察到,Procrustes CSLS几乎在系统上优于Procrustes ISF,同时计算速度更快,不需要超参数调整。

跨语言语义词相似度 :

表二展示了我们和之前工作的对比:
在这里插入图片描述

使用200k目标词进行1.5k源词查询时,英意词翻译的平均精度(@1、@5、@10)。标有符号†的结果来自Smith等人(2017年)。Wiki意味着嵌入是使用fastText在Wikipedia上进行培训的。请注意,Artetxe等人(2017年)使用的方法与其他受监督的方法不使用相同的监督,因为它们只在初始并行字典中使用数字。 ’

在表2中,我们将我们的Procrustes CSLS方法与Mikolov等人(2013b)提出的先前模型进行了比较;Dinu等人(2015年);史密斯等人(2017年);Artetxe等人(2017年)关于英语-意大利语单词翻译任务,已经比较了最先进的模型。我们表明,我们的Procrustes CSLS方法获得了44.9%的准确率,优于所有以前的方法。

在这里插入图片描述

表3:英-意句子翻译检索。我们报告平均值P@k来自2000个源查询,使用200000个目标句子。我们使用与Smith等人(2017年)相同的嵌入件。他们的结果用符号†

在表3中,我们还获得了使用CSLS的意大利英语句子检索任务的准确率大幅提高,从53.5%提高到69.5%,比以前的方法高出20%以上。

单语嵌入的影响 :对于单词翻译任务,当考虑在维基百科上训练的 fastText 嵌入时,我们获得了显着的性能提升,而不是之前在 WaCky 数据集上训练的 CBOW 嵌入(Baroni et al. (2009)),如表 2 所示. 在变化的两个因素中,我们注意到这种性能的提升主要是由于语料库的变化。与在相同语料库上训练的 CBOW 嵌入相比,包含更多关于单词的句法信息的 fastText 嵌入仅获得了 2% 的准确度,而增益为 18.8%。我们假设这种增益是由于维基百科语料库的类似共现统计。附录中的图 3 显示了不同单语嵌入的对齐结果,并同意这一假设。在 Wikipedia 语料库上训练我们的嵌入时,我们还在单语评估任务(例如单词相似性和单词类比)上获得了更好的结果。

对抗性方法 : 还不太明白,可以再看看,最后一句话

我们的解释是,这种方法试图只对齐前两个时刻,而对抗性训练匹配所有时刻,并可以学习专注于分布的特定领域,而不是考虑全局统计数据。

### Group Attention in Machine Learning and Neural Networks Group attention mechanisms extend traditional attention models by allowing the model to focus on multiple elements or groups simultaneously rather than single tokens at each step. This approach enhances the ability of neural networks to handle complex patterns within data sets. In recurrent neural networks (RNNs), group attention enables focusing not just on individual positions but also on subsets of outputs from another RNN layer[^2]. By grouping related parts together, these architectures improve performance when dealing with sequences that have long-range dependencies or require understanding context across larger segments. For instance, consider a scenario where one needs to translate sentences between languages while preserving semantic meaning accurately. Using graph convolutional networks alongside neural machine translation systems allows exploitation of syntactic structures present in source texts through graphs representing word relationships[^3]. Similarly, Graph Neural Networks (GNNs) provide powerful tools for reasoning about objects, relations, and physics-based interactions via structured representations like interaction graphs learned directly from input trajectories[^4]. Applying such techniques facilitates more accurate predictions concerning how entities might behave under various conditions based upon historical movement patterns observed during training phases. To implement group attention effectively: ```python import torch from transformers import BertModel, BertTokenizer tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') def apply_group_attention(input_ids, token_type_ids=None, position_ids=None): # Prepare inputs for BERT model including special tokens [CLS], [SEP] encoded_input = tokenizer.batch_encode_plus( ["example sentence"], padding=True, truncation=True, return_tensors="pt" ) # Pass through transformer layers which include multi-head self-attention mechanism supporting grouped queries/keys/values internally. output = model(**encoded_input) last_hidden_state = output.last_hidden_state return last_hidden_state ``` This code snippet demonstrates applying pretrained Transformer architecture's inherent capability to perform group-level attentions implicitly without explicit modification since modern implementations already support parallel processing over batches containing varying lengths efficiently.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值