讨论 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标签等)。在实验过程要首先确认目标数据集的评测方法。 # 关于研究的一些建议 ## 灵感哪里来 - **温故知新** 很多概念几年,几十年前就有人考虑过,从概念到实际需要多方面条件,过去做不出的也许现在就可以了。 - **移花接木** 隔行如隔山,其他领域的知识,甚至是基础知识都可能带来很大的帮助 - **望表知里** 多观察数据,发现其中的规律。“人工”智能,帮助机器发现一些数据规律也是十分有用的。 - **生活实践** ## 不要为论点找论据 不要先有一个结论,然后想方设法做实验,找到证据来证明这个论点。 - **贝叶斯公式** 先验概率是很有指导意义的,不要有太多侥幸心理,虽然很多科学发现来源于失败的实验或意外,但总体而言,尽量不要把小概率事件作为实验的目标。 - **辩证法** 实验之前,考虑导致成功的因素有哪些,为什么成功,同时也要考虑导致失败的因素有哪些,为什么失败 - **逻辑知识** 同一个实验结果是否有其他解释,控制变量,充分和必要条件,三段论等 ## 好习惯 - 良好的实验记录,由于实验需要进行非常多次(上百,上千),实验记录是非常必要的,并且实验记录可以很琐碎,最后阅读实验记录也是程序。 - 预分析实验结果,在实验结果出来之前,先为每一种可能结果做预案,比如出现哪种结果说明什么,需要进一步进行什么实验。 - 关注实验过程,例如训练误差,校验集的变化,测试结果的变化,乃至各种中间变量,统计量的变化都值得关注,一个实验结果可能是偶然,但整个过程,各种变量都一致的偶然是十分罕见的,这也是一个检验程序正确性的好方法。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.