跨语言词向量笔记2. 跨语言词向量表示简史

  • 使用双语词典的跨语言词向量表示
  • 跨语言词嵌入与词对齐
    • 基于隐式/显式跨语言概念的表示
  • 结语
  • 参考文献

本文完全来自于Anders Søgaard等人的著作[Søgaard2019] Søgaard, A., Vulić, I., Ruder, S., & Faruqui M. (2019). Cross-Lingual Word Embeddings

尽管原书讨论的是跨语言词向量的获得方法,但是在使用神经网络获得词向量的时代来临之前,学界就已经有类似工作开展,彼时的一些研究思路实际上也指导了现在的一些方法。本文简单介绍了这些“史前方法”。独立于语言的表示方法已经被学界研究了数十年,很多都依赖于正字法特征或抽象的语言学特征(如词性标注PoS),而非词法特征。这也是使用所谓去词汇化方法(delexicalized)来做跨语言模型迁移、单词聚类等工作的策略

在一个共享的、跨语言的向量空间中表示两种不同语言的词汇信息,还可以提供语言之间单词级别的细粒度联系,因此可以更好地做去词汇化的跨语言迁移。引入这种细粒度的跨语言词向量也可以看做是一种“再词汇化(relexicalization)”:不再求助于高层、粗粒度的抽象表示(如跨语言聚类),基于跨语言词向量的再词汇化模型直接操作跨语言的词级别特征。例如,跨语言文档分类或者依存分析问题,就可以这么解决:首先在资源充分,有足够标记数据的语言上训练一个模型,这个模型也被共享的跨语言嵌入空间中源语言所处的子空间所支持。然后,模型直接用在目标语言上,不过此时是把目标语言的嵌入子空间看做是特征集。

这样的流程常见于2016、2017年的工作,而2012年实际上已经有了类似的思路,只不过当时的工作是对跨语言的词类别做操作(跨语言词类别通常从单语语料和平行句对中学出)。跨语言的词类别,如字面意思所述(原文用的是英文clustering,意义更明显),就是要把两个不同语言中的单词聚类成若干个离散的簇,使得语义上相关的词可以被分在相似的簇中,这样可以应对语言模型建模时面对的数据稀疏性。这种聚类方法可以看做是词嵌入的一种朴素形式,区别在于可能有若干个词有相同的表示,每个词的表示方法是一个编号,而不是一个向量。跨语言单词的聚类方式通常有两种方法。其一是映射法,即先对源语言单词聚类,然后通过平行语料,得出双语单词相似度或词对齐信息,再将聚类结果投影到目标语言中。另一种是联合学习法,即最大化单语和双语聚类的联合目标函数,其中双语目标函数也编码了某些从平行语料中提取的单词相似度,可以看做是跨语言的正则项。这两种不同的方法与近几年表示学习中的一些方法也有异曲同工之妙

下图给出了使用跨语言词汇信息作为句法解析器特征的一个例子,来自于[Täckström2012]。在对英语和克罗地亚语做了单词聚类以后,可以将源语言(英语)每个句子的treebank通过把单词替换成类别号的方式来去词汇化,这样就得到了一个与语言无关的表示。这种去词汇化的句法分析器使用跨语言的单词类别信息就可以用来对目标语言做分析

使用双语词典的跨语言词向量表示

先来看一种传统方法,其试图从分布式语义中推演得到跨语言词向量空间。方法的基础是高维的、基于上下文计数的向量,向量的每一维度都编码了各个语言中与某个指定单词(加权的)共现信息。其背后的假设是,如果两个单词呈可互译的关系,那么它们各自的邻接词很可能也是有相似的语义。换句话说,每个词都被表示成一个高维向量,称为在特征向量空间(也就是语义空间)中的一个上下文向量,向量的每个维度都是它的一个上下文特征。在共享的语义空间中,两个单词的相似度就可以如下表示
sim(w1s,w2t)=SM(vec(w1s),vec(w2t)){\rm sim}(w_1^s, w_2^t) = {\rm SM}({\rm vec}(w_1^s), {\rm vec}(w_2^t)) sim(w1s,w2t)=SM(vec(w1s),vec(w2t))
其中w1sw_1^sw1s是来自源语言LsL_sLs词表VsV^sVs的单词,w2tw_2^tw2t是来自目标语言LtL_tLt词表VtV^tVt的单词,SM\rm SMSM是衡量两个系数向量相似度的一种手段(具体实现可以是余弦距离、欧几里得距离等),vec\rm vecvec是一个NNN维上下文向量,包含NNN个上下文特征cnc_ncn
vec(w1s)=[sc1s(c1),…,sc1s(cn),…,sc1s(cN)]{\rm vec}(w_1^s) = [{\rm sc}_1^s(c_1), \ldots, {\rm sc}_1^s(c_n), \ldots, {\rm sc}_1^s(c_N)] vec(w1s)=[sc1s(c1),,sc1s(cn),,sc1s(cN)]
其中sc1s(cn){\rm sc}_1^s(c_n)sc1s(cn)表示单词w1sw_1^sw1s与上下文特征cnc_ncn相关的共现权重/得分,常见的有如下几类计算方式

  • 直接使用共现次数C(w1s,cn)C(w_1^s, c_n)C(w1s,cn)
  • 条件概率P(cn∣w1s)P(c_n|w_1^s)P(cnw1s)
  • 带权重的启发式算法,例如TF-IDF
  • 逐点互信息(PMI)
  • 基于假设检验的方法,例如对数似然比

为了构建共享的跨语言语义空间,两个语言的词向量必须使用同样的特征。标准方法是使用一个双语的种子词典,即cnc_ncn是词对(cns,cnt)(c_n^s, c_n^t)(cns,cnt),其中cnsc_n^scns是源语言单词,cntc_n^tcnt是目标语言单词,两者必须表达同样的概念。例如英语-西语可以是(dog, perro), (bone, bueso), (blue, azul)等等。对源语言词表VsV^sVs中的每个单词,求出其与种子词表中每个词的共现得分scs(cn){\rm sc}^s(c_n)scs(cn)(当然要给定窗口大小)。这可以看做是将单语词向量映射到一个跨语言词向量空间的过程:通过mmm个源语言上下文单词的共现信息和ppp个目标语言上下文单词的共现信息,可以初始化mmm维和ppp维单语言词向量。然后,两个词向量各自通过投影矩阵Ms\boldsymbol{M}_sMsMt\boldsymbol{M}_tMt被映射到一个由NNN个跨语言上下文特征(cns,cnt)(c_n^s, c_n^t)(cns,cnt)张成的子空间。更具体的几何解释可以参见下图(来自[Gaussier2004])。

由于这部分工作可以看做是跨语言词向量模型一个很重要的前处理工作,而双语种子词典的质量对这部分工作起着决定性的影响,因此有一些研究工作尝试使用自助迭代技术(bootstrapping iterative technique)来不断扩张种子词典,例如[Peirsman2010][Vulić2013]。核心思想是检查到一对单词能通过某些可靠性验证(如两个单词有互译关系,或者相似度的分超过某个阈值)就将其加入种子词典。这方面工作对近期基于映射的无监督或弱监督方法也很重要。不过有一点不同:传统方法在加入新的词对以后,种子词典张成的子空间维度会增加;而基于映射的方法在加入新词对后不会让维度发生变化

跨语言词嵌入与词对齐

跨语言词向量也可以与统计机器翻译(SMT)里的词对齐相关联,实际上一些嵌入模型也直接依赖于词对齐。简单说,词对齐这一任务的目的是在句子对齐的平行预料中找出词法单元(通常是单词)之间的翻译关系,其最终产品是一个源文本和目标文本之间的二部图,当且仅当某一组单词互为对方的翻译时,这两个单词有边相连

IBM系列模型(IBM模型1-6)是NMT时代到来之前,SMT系统的重要部分。而其中最简单的IBM模型1的思想在众多跨语言词嵌入算法中都有体现。该方法的核心思想是仅做基于单词的对齐,最关键的参数称为翻译表(translation table),该表存储概率得分P(wt∣ws)P(w^t|w^s)P(wtws),即源语言单词wsw^sws翻译成目标语言单词wtw^twt的概率。IBM模型1的核心假设简单说是所有可能的(ns+1)nt(n_s + 1)^{n_t}(ns+1)nt种词对齐都是等可能的,其中nsn_snsntn_tnt分别是已对齐句子对中源语言和目标语言的句子长度,模型在这个假设基础上根据对齐句子的单词共现信息使用EM算法学出翻译表

[Levy2017]认为无论是这种由IBM对齐模型学出的带概率得分的翻译表,还是以及其他类似的词对齐模型,或者其它简单的单词共现信息统计指标,都可以代替余弦距离,作为前文提到的跨语言语义相似度衡量方法sim(ws,wt){\rm sim}(w^s, w^t)sim(ws,wt)的一种。这种翻译表也可以再用来引入双语词典,构建种子对应关系,为后面的工作(例如基于映射的嵌入方法)所使用

当前大部分跨语言词向量对齐的方法都会试着把源语言句子中的单词与目标语言句子中与之最相似的单词对齐,这个过程也正是IBM模型1中实现的贪心解码算法,不过单纯的对齐算法不会显式学出单词的向量表示vec(w){\rm vec}(w)vec(w)。后面讨论的若干方法会提出一种联合目标函数,即将两个单语言目标函数和一个跨语言正则项相结合,而这种方法也蕴含了IBM模型1的基础假设。例如[Gouws2015]提出的跨语言正则项是对两个嵌入空间中单词的欧几里德距离做惩罚,惩罚项正比于两个单词的对齐频率。这项工作没有直接在平行预料上运行对齐算法,而是假设有一个“均匀对齐模型”,和IBM模型1异曲同工。[Hermann2014]也做了类似假设

基于隐式/显式跨语言概念的表示

除去从种子双语词典中得到的单词之间的一对一翻译,还可以使用其它一些跨语言特征来张成共享的跨语言语义空间。最典型的方法是从词对齐/句子对齐/文档对齐的双语数据之中直接推出一个隐藏的(latent)、跨语言共享的特征,例如通过双语概率主题建模(bilingual probabilistic topic modeling)得出它([Vulić2015])

双语概率主题建模的目标是抽出NNN个隐藏的、共享的跨语言概念(也就是跨语言主题){z1,…,zN}\{z_1, \ldots, z_N\}{z1,,zN},使得这些概念可以最好地描述手头数据。具体实现时,要学习两组概率分布

  • 首先,对每个隐藏主题znz_nzn、源语言单词ws∈Vsw^s \in V^swsVs和目标语言单词wt∈Vtw^t \in V^twtVt,算出条件概率P(ws∣zn)P(w^s|z_n)P(wszn)P(wt∣zn)P(w^t|z_n)P(wtzn)。这个分布可以看做是语言无关的隐藏主题在不同语言上的表示(语言无关概念的语言相关表示)
  • 其次,算出每个文档的主题分布P(zn∣d)P(z_n|d)P(znd),其中ddd是任意语言写成的文档。这个分布可以看做是对文档本身的一种表示,表示形式是NNN个隐藏跨语言主题的混合

也就是说,每个隐藏的主题znz_nzn都有一定概率在某个文档中被找到,这个主题在每个语言中也有一个与该语言相关的表示方法

由于每个主题此时都有一个与词(无论是ws∈Vsw^s \in V^swsVs还是wt∈Vtw^t \in V^twtVt)相关的表示方法,反过来,也可以通过不同主题给每个词一个表示方法,得到一个NNN维向量(NNN是主题数),向量的每个维度都是一个条件分布

vec(ws)=[P(z1∣ws),…,P(zn∣ws),…,P(zN∣ws)]{\rm vec}(w^s) = [P(z_1|w^s) , \ldots, P(z_n|w^s) , \ldots, P(z_N|w^s)] vec(ws)=[P(z1ws),,P(znws),,P(zNws)]

这样形成的语义空间有一个比较直观的解释:词向量的每个维度都与某个主题相关联,那么两个在所有隐藏主题上有相似分布的单词,其语义也应该是相似的。这种相似度可以用概率分布的相似度来度量,例如KL散度

具体做法取决于不同的监督信号。有的工作需要对齐的文档,然后在文档上使用LSI或者LDA等主题模型;有的依赖于双语种子词典来获得相似的文档分布,有的则是在文档级别引入共享的主题空间

另一种方法则是从外部资源显式引入主题信息。以维基百科为例,假如收集到了NNN组相同概念,用两种语言写成的文档(例如“狗”的英文页面和德文页面)c1=(c1s,c1t),…,cn=(cns,cnt),…,cN=(cNs,cNt)c_1 = (c_1^s, c_1^t), \ldots, c_n = (c_n^s, c_n^t), \ldots, c_N = (c_N^s, c_N^t)c1=(c1s,c1t),,cn=(cns,cnt),,cN=(cNs,cNt),记函数i(ws,cns)i(w^s, c_n^s)i(ws,cns)是单词wsw^sws在文档cnsc_n^scns中是否出现,则该单词的一个向量表示是

vec(ws)=[i(ws,c1s),…,i(ws,cns),…,i(ws,cNs)]{\rm vec}(w^s) = [i(w^s, c_1^s), \ldots , i(w^s, c_n^s), \ldots, i(w^s, c_N^s)] vec(ws)=[i(ws,c1s),,i(ws,cns),,i(ws,cNs)]

这个稀疏向量再通过维度缩减方法(例如PCA或者SVD),就可以得到稠密向量

结语

所有这些“上古”方法都是使用跨语言空间中的一些指标来计算跨语言单词相似度,这些指标包括但不限于KL散度或者向量内积。这些方法通常也是从相同的数据中学习,使用相同的双语监督信号,因此不同的方法之间存在一定可转换性。近期的工作虽然和这些古老的工作之间有着共同的目标和理论假设,但是它们进一步利用了近期表示学习领域取得的成果,因此更简单、更有效、更适用于大数据,在也能更鲁棒地适用于不同领域

参考文献

  • [Gaussier2004]: Gaussier, E., Renders, J. M., Matveeva, I., Goutte, C., & Déjean, H. (2004). A geometric view on bilingual lexicon extraction from comparable corpora. In Proceedings of the 42nd Annual Meeting of the Association for Computational Linguistics (ACL 2004) (pp. 526-533).
  • [Täckström2012]: Oscar Täckström, Ryan McDonald, and Jakob Uszkoreit. 2012. Cross-lingual word clusters for direct transfer of linguistic structure. In Proc. of the Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT 2012), pages 477–487.
  • [Peirsman2010]: Peirsman, Y., & Padó, S. (2010, June). Cross-lingual induction of selectional preferences with bilingual vector spaces. In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL-HLT 2010) (pp. 921-929). Association for Computational Linguistics.
  • [Vulić2013]: Vulić, I., & Moens, M. F. (2013, October). A study on bootstrapping bilingual vector spaces from non-parallel data (and nothing else). In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing (EMNLP 2013) (pp. 1613-1624).
  • [Levy2017]: Omer Levy, Anders Søgaard, and Yoav Goldberg. 2017. A strong baseline for learning cross-lingual word embeddings from sentence alignments. In Proc. of the 15th Conference of the European Chapter of the Association for Computational Linguistics (Volume 1: Long Papers) (EACL 2017).
  • [Gouws2015]: Stephan Gouws, Yoshua Bengio, and Greg Corrado. 2015. BilBOWA: Fast bilingual distributed representations without word alignments. In Proc. of International Conference on Machine Learning (ICML 2015).
  • [Hermann2014]: Karl Moritz Hermann and Phil Blunsom. 2014. Multilingual models for compositional distributed semantics. In Proc. of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (ACL 2014), pages 58–68.
  • [Vulić2015]: Ivan Vulić, Wim De Smet, Jie Tang, and Marie-Francine Moens. 2015. Probabilistic topic modeling in multilingual settings: An overview of its methodology and applications. Information Processing and Management, 51(1), pages 111–147.

跨语言词向量笔记2. 跨语言词向量表示简史相关推荐

  1. Java快速入门学习笔记6 | Java语言中的for循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  2. Java快速入门学习笔记5 | Java语言中的while循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  3. Java快速入门学习笔记4 | Java语言中的if条件语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  4. JavaScript脚本语⾔基础语法笔记总结

    JavaScript脚本语⾔&基础语法&笔记总结 0.学前准备: JavaScript简介使⽤⽅法 1. JavaScript简介 什么是JavaScript? 前端Web技术的组成: ...

  5. [UVMC]UVMC学习笔记之跨语言作用域的config操作

    UVMC学习笔记二 --- 跨语言作用域的config操作 前言:UVMC引入了特定的内存共享方法,可以在UVM/SystemVerilog与SystemC模块之间传递记名的半全局变量,在使用方式上类 ...

  6. 跨域学习笔记2--WebApi 跨域问题解决方案:CORS

    自己并不懂,在此先记录下来,留待以后学习... 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨 ...

  7. 迁移学习与跨域推荐,以及解决跨域推荐的方法

    本文主要是详细介绍一下跨域推荐,包含但不局限于以下几个部分: 迁移学习 跨域推荐 跨域推荐可以怎么做 冷启动的其他一些方法 可以参考的论文有哪些 1. 迁移学习 以下内容参考[推荐系统中的多任务学习- ...

  8. 计算机跨考专业基础差复试,跨考计算机过来人教你备考:从初试到复试

    摘要:大家在高考毕业后,在不知情的情况下,选择了自己不喜欢的专业.那么,在考研究生的时候,你是否会为了自己喜欢的专业而选择跨专业考呢?即使跨专业的难度很大,你是否还是一如既往地一往无前呢?在本文中,将 ...

  9. 33岁跨专业考计算机研究生,盲目跨专业考研考上以后也不轻松

    跨专业考生如何有效的获取信息 主持人:各位考研朋友,大家晚上好,今天来到博客的是海文学校高级咨询师,著名考研专业课辅导专家梁晓伟老师.梁老师好! 梁晓伟:您好! 主持人:今天我们访谈的主题是" ...

  10. 计算机专业可以跨考哲学嘛,听成功跨考者自述 跨专业考研最需量体裁衣

    听成功跨考者自述 跨专业考研最需量体裁衣 考研大军不断扩容,有一群特殊的人,放弃了原来所学专业,选择了跨专业考研.不少人疑惑:跨考,我们该怎么选择专业?跨考的难度如何?本期我们结合一些跨考的案例,对于 ...

最新文章

  1. 三种 MySQL 大表优化方案
  2. 散列算法 SHA-1,SHA-2和SHA-256之间的区别
  3. spring注入出错
  4. 【RS码1】系统RS码编码原理及MATLAB实现(不使用MATLAB库函数)
  5. VSFTP的主动模式和被动模式
  6. 写给大数据开发初学者的话4
  7. 数据结构实验之排序三:bucket sort
  8. Java的代码书写规范
  9. python实例属性与类属性_Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法...
  10. java弱口令生成1001无标题,教你批量生成自动发卡平台需要的卡密数据
  11. 10位photoshop顶尖设计大师
  12. 浅析数字签名的工作原理 【小白级别的原创文章 仅供扫盲】
  13. 全网最简单的k8s User JWT token管理器
  14. sendmessage()模拟鼠标点击
  15. wav文件头修复_贴唱混音之二——音频修复
  16. python中linspace函数_Python numpy.linspace函数方法的使用
  17. 八个机器学习非常重要的应用领域,每个领域都影响着我们的生活
  18. 企业微信--扫一扫功能(隐形坑)
  19. 目标检测数据集:直升机(1)
  20. 青龙面板+傻妞sillyGirl+阿东自动登录全套保姆级一步到位教程(2021-10-09)

热门文章

  1. ferguson博弈_博弈 - xiaoguozi's Blog - C++博客
  2. php uchome,【UCHome二次开发】模板解析
  3. RouterOS配置DMZ(端口映射)
  4. Android硬解码H264流
  5. [软件工程] 可行性研究
  6. 华三华为设备序列号查看生产日期
  7. 仿迅雷播放器教程 -- 提取exe资源(12)
  8. AutoRunner检查点之校验消息框
  9. 软件测试,AutoRunner错误:license invalid,error code=-8
  10. 原来可视化还能这么美...