目前将自定义词典添加到使用 transformer 架构的神经机器翻译器的最佳方法是什么?

What is currently the best way to add a custom dictionary to a neural machine translator that uses the transformer architecture?

将自定义词典添加到机器翻译器以确保正确翻译特定领域的术语是很常见的。例如,当文档是关于数据中心的时候,术语服务器应该翻译成不同的,而当文档是关于餐馆的时候。

对于 transformer 模型,这不是很明显,因为单词没有对齐 1:1。我看过几篇关于这个主题的论文,但我不确定哪一篇最适合使用。这个问题的最佳实践是什么?

恐怕你不能轻易做到这一点。你不能轻易地向词汇表中添加新词,因为你不知道它在训练期间会得到什么样的嵌入。您可以尝试删除一些词,或者您可以手动更改最终 softmax 层中的偏差以防止某些词出现在翻译中。其他任何事情都很难做到。

你想做的事情叫做域适配。要了解域适应通常是如何完成的,您可以查看 survey paper.

最常用的方法可能是模型微调或与语言模型的集成。如果你想在你的领域中拥有并行数据,你可以尝试在该并行数据上微调你的模型(使用简单的 SGD,小学习率)。

如果您只有目标语言的单语数据,您可以在该数据上训练语言模型。在解码过程中,您可以混合来自领域特定语言和翻译模型的概率。不幸的是,我不知道有什么工具可以开箱即用。