案例简介
seq2seq是神经机器翻译的主流框架,如今的商用机器翻译系统大多都基于其构建,在本案例中,我们将使用由NIST提供的中英文本数据训练一个简单的中英翻译系统,在实践中学习seq2seq的具体细节,以及了解机器翻译的基本技术。
seq2seq模型
从根本上讲,机器翻译需要将输入序列(源语言中的单词)映射到输出序列(目标语言中的单词)。正如我们在课堂上讨论的那样,递归神经网络(RNN)可有效处理此类顺序数据。机器翻译中的一个重要难题是输入和输出序列之间没有一对一的对应关系。即,序列通常具有不同的长度,并且单词对应可以是不平凡的(例如,彼此直接翻译的单词可能不会以相同的顺序出现)。
为了解决这个问题,我们将使用一种更灵活的架构,称为seq2seq模型。该模型由编码器和解码器两部分组成,它们都是RNN。编码器将源语言中的单词序列作为输入,并输出RNN层的最终隐藏状态。解码器与之类似,除了它还具有一个附加的全连接层(带有softmax激活),用于定义翻译中下一个单词的概率分布。以此方式,解码器本质上用作目标语言的神经语言模型。关键区别在于,解码器将编码器的输出用作其初始隐藏状态,而不是零向量。
数据和代码
本案例使用了一个小规模的中英平行语料数据,并提供了一个简单的seq2seq模型实现,包括数据的预处理、模型的训练、以及简单的评测。
评分要求
提交了完整作业报告与测试集结果,测试集结果相对合理,得基础分6分; • 完成更改模型为GRU、BiLSTM、数据增广等操作,加0.5-1.5分; • 划分验证集,设定评价指标,合理调参并观察,加0.5-1.5分; • 完成批处理、beam search、attention、transformer、中文分词等,加0.5-1.5分; • 总分以10为上界(即如果哪一项少得0.5依然可以满分),打分原则是态度和完成度 的重要性大于实际效果,满分的同学同样有改进空间; • 每一步改进都需要对模型效果进行观察和分析,而不是只做代码