所谓机器翻译技术就是利用计算机软件技术实现不同语言之间的自动翻译,目的为了帮助解决或缓解人工翻译代价过高和效率过低的问题。特别是针对大规模数据的实时和低成本翻译的应用场景,非人工翻译所为,有效利用机器翻译技术是最佳选择。
早期基于规则的方法主要靠语言学家手工书写翻译规则来实现机器翻译过程,人工书写翻译规则的代价非常高,还有一个严重的问题就是跷跷板现象,后来书写的翻译规则容易与之前写的规则产生冲突,导致翻译性能不稳定性。另外一个严重挑战就是自然语言存在很大随意性和不规范性,很多语言现象翻译难以利用严格的翻译规则来描述,导致基于规则的机器翻译系统鲁棒性不好等等。
统计机器翻译技术和神经机器翻译技术本质上属于数据驱动的机器学习方法,有效突破了人工书写翻译规则的局限性,抛开机器学习技术本身局限性而言,主要面临一个瓶颈问题就是,如何收集足够数量的双语句对数据完成有效的翻译模型训练学习过程。
这两种机器翻译技术的翻译品质依赖于双语句对训练数据规模的大小,如果缺乏足够的双语句对训练数据,面临的实际问题就是巧妇难为无米之炊。为了解决这个问题,学术界很多研究工作关注稀缺资源机器翻译技术和无监督机器翻译技术,可以从技术层面来缓解这个双语数据不足的问题。
统计机器翻译技术的最大弱点在于翻译建模的能力有限,特别是对于翻译过程中面临的远距离调序问题几乎无能为力,大家熟见的现象是短语片段翻译不错,译文句子的语法结构容易出错,对用户来说译文质量评价不够好。神经机器翻译技术本质上就是携带源语信息的语言模型,译文生成后流畅度很高,这一点远好于统计机器翻译技术。
目前主流的机器翻译系统基本上都采用神经机器翻译技术为主,但有些报道提到,当双语句对训练数据规模不大的情况下,有些系统会采用统计机器翻译技术,效果好于神经机器翻译技术。为了讨论方便,本文讨论的内容基于目前主流的神经机器翻译技术。
上述提到,如果双语句对训练数据规模足够大,比如几千万句对甚至上亿句对,我们就比较容易训练构建出一套高品质的神经机器翻译系统。从实际应用情况来看,除了英语日语韩语等主流语种外,估计99%以上的其它语言对的双语句对数据属于稀缺资源,多则几百万句对,少则几万或者几十万句对,更少的几乎没有。还有另外一种情况,通用领域的双语句对容易收集,比如新闻领域英汉双语句对,但即使是主流语种,很多垂直领域的双语句对因为各种实际原因也难以收集足够规模数量的双语句对,本质上也属于稀缺资源的情况。
针对小语种和垂直领域而言,由于缺乏足够规模的双语句对资源,我们就难以训练构建高品质的神经机器翻译系统来满足用户的应用需求。实际上很多细分行业应用中,用户对小语种和垂直领域机器翻译系统的需求量还是不小的,并且应用需求逐渐在上升。
为了解决这个问题,我们首先分析一下主要的实际问题出在哪?首先,小语种和垂直领域的双语数据属于稀缺资源,加工和采购的代价也非常高,假设一个小语种双语句对的平均价格可能超过一元,为了构建一套高品质机器翻译系统,如果需要一千万双语句对,上千万的资金对于机器翻译公司来说也是无法承受的。第二点,这些双语数据可能分布在很多人和翻译公司手中,每一家拥有的数据量可能都不多,除了采购资金预算过高以外,如何从众多单位手中汇总这些双语句对,也不是一件容易的事情。第三点,有些小语种和垂直领域双语数据还涉及到保密问题,即使拥有数据的比如翻译公司跟用户有保密协议,不能轻易对外出售,比如新药研发的资料。就算乐观一点,假设某一家翻译公司手中拥有较大规模的双语句对,毕竟属于公司核心资产,对方是否愿意分享出来也是一个实际问题等等。
我们先回到问题的原点,先不讨论如何加工和采购这些稀缺资源双语句对,前面提到,如果能够构建一套高品质的小语种或者垂直领域的机器翻译系统,用户应用需求是存在的,机器翻译应该为这些用户提供服务,这是我们希望达到的目标。剩下的问题就是如何克服上述提到的一些困难,大家实现双赢合作,这就是本文想讨论的问题重点。
假设某家单位拥有一定规模的小语种或者垂直领域双语句对,为了保护数据的安全性,可以与机器翻译公司合作,本地训练构建自己专用的机器翻译系统。还有一种方案就是利用类似微软提供的Translation Hub服务,用户自己上传双语句对数据到云端,利用微软提供的机器翻译训练学习服务,完成训练构建自己独享的机器翻译系统,也是一种解决方案。前者的解决方案就是用户需要投入购买GPU服务器,相对于后者方案来说投入会大一些,好处就是数据安全性保障会好一些。但不管是前者还是后者,本质上都属于自己数据自己用,在保障数据安全前提下训练构建自己专用的神经机器翻译系统,但有一个前提就是用户有能力自己提供足够规模的双语句对训练数据。
本文想讨论的是另外一个问题,每一家拥有的双语句对数据可能都不多,比如几万个句对,即使有再好的机器翻译技术,也难以实现仅仅利用自己的数据来构建一套高品质机器翻译系统。很多年以前我曾经提出一个“大水库”技术,目的是为了解决这个实际问题,基本思想就是涓涓之水,汇成江河。按照这个思路,不同于Translation Hub模式,本文提出两个潜在解决方案,实现大家共赢互补合作,供大家参考。
第一个方案称之为基于众包的机器翻译构建平台。按照百度百科的定义,所谓众包(CrowdSourcing),指的是一个公司或者机构把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的(而且通常是大型的)大众志愿者的做法。基本思想非常简单,假设我们希望训练构建一套小语种或者垂直领域的神经机器翻译系统,如果每一个参与者自愿提供少量双语句对,少则几千句,多则几万句,通常每一家提供的数据规模都差不多,当然有人愿意提供更多数据肯定是好事。综合所有参与者提供的双语句对数据,可以形成一个较大规模的双语句对库,就有可能实现训练学习构建一套较好品质的神经机器翻译系统。
作为回报,每个贡献者都可以获得最终训练好的神经机器翻译系统。如果某一家拥有较大规模的双语句对库,也可以考虑分成两部分,一部分共享出来作为参与者分享最终成果,另一部分可以作为私有数据进一步优化已经训练好的机器翻译系统,让自己得到一套更好的机器翻译系统,这一点我觉得也是合理的。这个方案的最大好处就是,每个人都献出一点爱,最终每个人都得到最好的回报。
第二个方案称之为基于联邦学习的机器翻译构建平台。按照百度百科的定义,联邦学习(Federated Learning)是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。基于联邦学习的框架,最大优点就是能够有效保护每位参与者的数据安全性。简单的理解就是,在保护每个参与者自己拥有数据不被泄露的前提下,能够汇总融合大家手中的数据,完成训练构建一套更好的机器翻译系统。跟第一个方案的最大区别在于,众包平台上所有共享的双语数据是透明的,联邦学习平台上每家提供的数据是相互独立保密的,最终解决的问题都是如何有效的汇总融合每家数据来实现有效训练构建最终的机器翻译系统,最后分享给每个参与者作为回报。具体如何实现联邦学习技术,本文暂不深入讨论,只是初步探讨一下解决方案的基本思想。
上述两个方案还有一个挑战就是每个参与者提交数据的方式,如何获得最终的收益也是非常关键的。初步一想,也许可以借鉴区块链的技术,按照百度百科定义,区块链技术具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任“基础,创造了可靠的“合作”机制。目前我还没有想好如何利用区块链技术更好服务上述两个方案,欢迎大家来进一步讨论,后续有机会再详细讨论上述一些挑战。