作者 | 小牛翻译
最近,有不少客户朋友向我们提出面向垂直领域的机器翻译应用需求,比如,专利翻译、医学资料翻译、电影字幕翻译等等,希望先利用机器翻译进行初译,再由专业人员进行译后编辑,以达到降低人工代价和提高效率的目的。由此看来,译后编辑的需求不仅仅存在于传统翻译公司,很多行业企业用户也存在不少应用需求,这个与实际应用密切相关。
值得注意的是,这个应用场景存在一个痛点,人工翻译代价过高,通用领域机器翻译品质还差太远(比如大家所熟悉的在线翻译服务Google翻译),难以满足用户需求。
机器翻译系统构建
至少涉及两个维度
从应用角度来看,机器翻译系统构建至少涉及两个维度,即NxN个语言方向和M个垂直领域。
从理论上来说,假设需要200个语种和100个垂直领域需求,我们需要构建约四百万个机器翻译引擎。如果需要1000个语种的话,我们有这个能力支持,大约需要构建1亿个不同的机器翻译引擎发动机。当然,实际应用需求中不需要这么多,90%以上的应用需求可能只需要30个语种10个垂直领域,约9000个不同的机器翻译系统构建,数量也是惊人的。
从目前我们接触的用户需求来看,今年明显有一个发展趋势——垂直领域机器翻译引擎构建的应用需求在不断上升。这说明各个细分行业的机器翻译应用需求在不断被激活,将成为机器翻译产业应用中一个增长点。
从数据加工角度来
构建垂直领域机器翻译系统
上文提到的一点,由于通用领域机器翻译品质满足不了用户需求,需要提供个性化定制服务,帮助用户构建自己的垂直领域机器翻译系统。本文简单讨论一下如何从数据加工角度来构建垂直领域机器翻译系统。
神经机器翻译系统构建属于数据驱动的机器学习方法,需要大规模双语句对数据来完成模型训练过程。一种极端情况是,假设我们事先没有用户特定领域的双语句对,这个属于稀缺资源语种机器翻译构建技术,甚至属于无指导机器翻译系统构建技术。目前学术界也存在不少相关研究工作,从实用角度来看,只能解决0和1的问题,无法真正达到大规模应用。
这里我们从实用性角度来讨论垂直领域机器翻译系统构建问题,假设我们已经有了一个不错的通用领域机器翻译系统(也说明我们手中已经拥有了一定规模的通用领域双语数据资源),但由于翻译品质无法满足用户特定垂直领域的应用需求,如何更好的优化翻译品质,满足用户的应用需求?我们以电影字幕英汉翻译为例,简单讨论一下。
如何将一个通用领域机器翻译系统更好地应用于电影字幕翻译(垂直领域),从技术角度来说,属于领域自适应技术(Domian Adaptation),非常典型的是迁移学习(Transfer learning),学术界还有很多关于领域自适应技术研究工作,取得了不错的效果,特别是针对两个较相似的应用领域之间迁移学习。大家感兴趣可以查阅一下相关资料,本篇文章重点关注数据加工方法,暂时不深入讨论这些领域自适应技术。
回到基于数据加工的方法来解决垂直领域机器翻译系统构建的问题。首先,我们需要分析一下通用领域与垂直领域的区别,其实这个问题也简单,主要体现在两个方面:一是垂直领域通常拥有很多专业术语,在通用领域中不常见或者不出现;二是跟文体有关,比如电影字幕口语化很常见,合同范本句子书写非常严谨规范化,财务分析报告数字描述非常多,专利文本中很多句子非常长等特点,这些特点在通用领域也会出现,但不会特别突出。
解决第一个关于专业术语的问题,常用的手段主要三个:一是通过增加包含这些专业术语的双语句对数据参与模型训练;二是用户提供特定的双语术语词典作为外部知识来优化翻译品质;三是从技术角度,比如将基于词的翻译模型构建方法改为基于字符和基于BPE方法,基本思想就是因为专业术语无法分词正确,我们就不直接分词,利用更小单元来组装专业术语完成翻译,实验结果显示效果不错,能够有效翻译至少部分专业术语。
解决第二个跟文体相关的问题,也就是说句子书写风格问题,估计只能靠增加垂直领域的双语数据来解决模型训练问题,这也是本随笔重点讨论的内容。简单来说,可以分成如下三种情况。为了讨论方便,暂时用电影字幕翻译作为目标。
第一种情况是我们可以获得大规模电影字幕双语句对,比如几千万句对甚至上亿句对,这个相对简单一点,直接用大规模电影字幕双语句对进行训练一个性能较好的神经机器翻译系统。
第二种情况是电影字幕双语句对规模只有百万级别,还不足以训练一个高品质的神经机器翻译系统。这种情况下,我们可以利用通用领域的机器翻译模型参数作为一个较好的初始值,采用增量式训练的方法进行模型优化,其中可以从我们手中的通用领域的双语句对中挑选一些句对,比如与电影字幕领域相关性较高的双语句对,两者融合在一起,凑成几千万级别规模,通常也可以训练出一个不错的机器翻译系统。
第三种情况是电影字幕双语数据不太多,也许不到百万级别,如果采用第二种方法,容易导致电影字幕双语数据对翻译模型的影响被淹没掉。为了解决这个问题,我们可以采用构建伪数据的方法,比如收集一定规模的电影字幕单语数据(中文字幕或者英文字幕),利用通用领域的机器翻译系统进行翻译,得到了双语数据,我们称之为“伪数据”,区别于真实数据。将这三部分数据融合在一起,目的是为了缓解数据不平衡问题,保证电影字幕数据在全部训练数据中的占比相对合理,本质上属于over-sampling的方法。然后利用真实数据和伪数据组成的双语数据训练更好的电影字幕神经机器翻译系统。
如果还有第四种情况,指完全没有任何电影字幕双语数据,这就回归到无指导机器翻译构建技术和稀缺资源语种机器翻译构建技术。
上文提到的基于数据加工的优化方法,实现手段非常简单,只是需要一些经验来指导。通常我们在为用户提供服务的时候,没有足够的时间完成技术升级和迭代,采用基于数据加工的方法,实现效率高。如果效果还不明显,最好的方法是数据加工方法与技术优化方法两者融合在一起,相信能够达到更好的效果。
电影字幕翻译至少有两个目的:一是属于高精度翻译,翻译成完全正确的字幕译文,可以用于电影配音使用,这种机器翻译的可用性有多高,的确值得进一步实验评估才行;二是类似我们看外文电影,原文显示在屏幕上,译文字幕也显示出来,仅供阅读参考。这种情况机器翻译的可用性是存在的。电影字幕翻译的难点有不少,比如分句问题,有时候一帧显示的字幕句子不完整;电影字幕中口语化非常严重,不看上下文,我们估计都难以理解具体含义;人名地名等专门挺多的,这些未登录词难以翻译准确,必然影响阅读用户体验。
如果拿一个目前成熟的通用领域的小牛翻译系统,在没有优化之前,直接进行电影字幕翻译,我们之前做过简单实验,正确性还是不够的,保守估计可读性接近70%是可能的。如果经过大规模电影字幕双语数据优化后,可读性提升到80%以上是可能的,相信对人工翻译字幕还是有帮助的。当然这只是估计而已,还需要经过严谨的实验测试才证明准确性与否。
最后一点,机器翻译品质优化应该看做一个不断迭代的过程,不能一蹴而就,希望一次性训练能够解决所有问题是不可能的,合理的方法是通过不断迭代优化学习,在使用过程中不断改善翻译品质,越用越好。