Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 5.17 KB

2019-10-14.md

File metadata and controls

53 lines (42 loc) · 5.17 KB

讨论 2019-10-14

机器翻译

机器翻译目标是把源语言的文本翻译为目标语言

问题定义

  • $P(target|source)$ 定义为宽泛的条件概率模型
  • $P(y_t|y_{t<1},z)$ contextual language model 条件语言模型(上下文相关语言模型),其中 $z$ 可以为一个向量(vanilla seq2seq)或一个序列(attention-based)
  • 非概率模型,通常为部分使用概率模型,同时结合规则或其他模型,不能显示计算结果的概率

语言模型之前的时代

很多传统机器翻译方法不把问题转化成一个语言模型问题,但其中会考虑语言的流畅度。例如各种匹配模型,最为基本的字典翻译(字,单词级别),词组翻译(phrase-based)。词组翻译模型需要同时考虑词组的划分问题和翻译的质量问题,已经可以胜任很多结构相似的语言间的翻译。

语言模型与神经网络

神经网络在语言模型取得很大进展后(比N-gram统计有大幅提高),主流工作把机器翻译问题转化为条件语言模型(或称上下文相关语言模型)。即把源语言作为条件,在目标语言中利用语言模型来生成文本,这类方法初期将源语言先转换为单一向量表示,并且大多要考虑生成顺序的影响。之后更多地将源语言作为序列并使用attention机制。在神经网络以及语言模型的帮助下,机器翻译的流畅度大大提高,但同时也产生了新的问题,词级别的翻译不如匹配模型,同时饱受OOV(out-of-vocabulary)问题的困扰。后期发展出众多character model,word embedding,copy mechanism,sub-word model,才使得这一问题得以缓解。

推断与自回归 (略)

数据

常用数据集有WMT系列,IWSLT系列,中文还有NIST系列。翻译数据集众多,场景繁琐,同一系列的数据集在预处理,后处理,评测方法等方面也有不同。翻译数据的基本格式就是(源语言,目标语言)得句子对,也称平行语料。

规模

来源

语料的来源,标注方法,质量都会对结果产生巨大影响,翻译语料的来源众多,有新闻稿,书籍,刊物,维基百科,网页,非正式文本等。标注方法又分为人工标注和利用本地化信息两种方法,本地化信息指网页,产品本身含有的本地化信息,例如很多网站有多种语言的版本,显然这种方式的语料质量很差,很多都不是句子级别对应的,并且信息增减都很不确定。另一方面,有些语料的来源十分特殊,比如multi30K数据集的所有文字来源于COCO数据集,这就导致所有句子都是陈述句,并且结构高度相似。

数据增强与单语言语料(略)

评测

N-gram based

以N-gram为基础的评测方法中最具代表性的是BLEU和ROUGE,其中BLEU score 考察N-gram的precision,ROUGE则关注F1-score。METEOR不是严格的N-gram,但弥补了一些BLEU的缺点,例如考虑语序,动态分词等。

评测方法

评测的算法比较复杂,同样是BLEU score,用不同的分词方法,字符集,OOV的处理都会产生影响,不同语言间也有差异,比如不同的编码的标点符号都有区别,对非文本的处理(HTML标签等)。在实验过程要首先确认目标数据集的评测方法。

关于研究的一些建议

灵感哪里来

  • 温故知新 很多概念几年,几十年前就有人考虑过,从概念到实际需要多方面条件,过去做不出的也许现在就可以了。
  • 移花接木 隔行如隔山,其他领域的知识,甚至是基础知识都可能带来很大的帮助
  • 望表知里 多观察数据,发现其中的规律。“人工”智能,帮助机器发现一些数据规律也是十分有用的。
  • 生活实践

不要为论点找论据

不要先有一个结论,然后想方设法做实验,找到证据来证明这个论点。

  • 贝叶斯公式 先验概率是很有指导意义的,不要有太多侥幸心理,虽然很多科学发现来源于失败的实验或意外,但总体而言,尽量不要把小概率事件作为实验的目标。
  • 辩证法 实验之前,考虑导致成功的因素有哪些,为什么成功,同时也要考虑导致失败的因素有哪些,为什么失败
  • 逻辑知识 同一个实验结果是否有其他解释,控制变量,充分和必要条件,三段论等

好习惯

  • 良好的实验记录,由于实验需要进行非常多次(上百,上千),实验记录是非常必要的,并且实验记录可以很琐碎,最后阅读实验记录也是程序。
  • 预分析实验结果,在实验结果出来之前,先为每一种可能结果做预案,比如出现哪种结果说明什么,需要进一步进行什么实验。
  • 关注实验过程,例如训练误差,校验集的变化,测试结果的变化,乃至各种中间变量,统计量的变化都值得关注,一个实验结果可能是偶然,但整个过程,各种变量都一致的偶然是十分罕见的,这也是一个检验程序正确性的好方法。