本技术涉及机器翻译领域,尤其涉及一种翻译系统及其训练、应用方法以及相关设备。
背景技术:
1、机器翻译是指将一种语言的语句翻译为具有相同含义的另一种语言的语句。机器翻译包括基于规则的机器翻译、基于统计的机器翻译和基于神经网络的机器翻译。基于神经网络的机器翻译今年来迅速崛起,相比于基于规则和基于统计的机器翻译,基于神经网络的机器翻译的模型构建更加简单,翻译也更加准确性。因此,如何提供一种基于神经网络的机器翻译系统是一个亟待解决的技术问题。
技术实现思路
1、本技术提供一种翻译系统及其训练、应用方法以及相关设备,能够提高翻译系统的训练效率,节约计算资源,并能够提高翻译系统的可扩展性。
2、第一方面,本技术提供一种翻译系统的训练方法,该翻译系统包括第一语言模型和第二语言模型,其中,第一语言模型包括第一编码器、第一对齐编码器、第一对齐解码器和第一解码器,第二语言模型包括第二编码器、第二对齐编码器、第二对齐解码器和第二解码器,该方法包括:
3、获取基于第一语言的语料训练得到的第一语言的第一编码器和第一解码器,获取基于第二语言的语料训练得到的第一语言的第二编码器和第二解码器;其中,第一编码器用于对第一语言表述的语句进行编码,输出对应的向量,第一解码器用于对输入的向量进行解码,输出第一语言表述的语句;第二编码器用于对第二语言表述的语句进行编码,输出对应的向量,第二解码器用于对输入的向量进行解码,输出第二语言表述的语句;
4、基于平行语料对第一语言模型和第二语言模型进行联合训练,得到训练好的第一对齐编码器、训练好的第一对齐解码器、训练好的第二对齐编码器和训练好的第二对齐解码器,平行语料包括第一语言和第二语言的同义语句的集合;
5、其中,第一对齐编码器用于将第一编码器输出的向量转换到对齐向量空间,第二对齐编码器用于将第二编码器输出的向量转换到对齐向量空间;第一对齐解码器用于将第一对齐编码器的输出转换到第一解码器的输入对应的向量空间中,以使第一解码器对第一对齐解码器的输出进行解码,输出第一语言的语句;第二对齐解码器用于将第二对齐编码器的输出转换到第二解码器的输入的向量空间中,以使第二解码器对第二对齐解码器的输出进行解码,输出第二语言的语句。
6、通过构建本技术提供的翻译系统,在需要实现多种语言之间的相互翻译时,只需要先分别训练各种语言对应的单语言模型;然后在各个单语言模型的编码器和解码器之间增加对齐编码器和对齐解码器,构建本技术提供的翻译系统;最后通过平行语料训练构建的翻译系统,就可以得到训练好的能够实现多种语言之间相互翻译的翻译系统。从而在进行翻译时,只需要将上述训练好的翻译系统中源语言对应的编码器和对齐编码器以及目标语言对应的解码器和对齐解码器进行组合,即可得到将源语言翻译为目标语言的翻译模型。例如实现a语言和b语言的相互翻译,只需要将训练好的翻译系统中,a语言对应的编码器和对齐编码器以及b语言对应的解码器和对齐解码器进行组合,即可得到将a语言翻译为b语言的模型;将b语言对应的编码器和对齐编码器以及a语言对应的解码器和对齐解码器进行组合,即可得到将b语言翻译为a语言的模型。
7、另外,在训练好能够实现第一语言和第二语言这两种语言相互翻译的系统之后,如果要增加第三语言,实现三种语言之间的相互翻译,只需要单独训练第三语言对应的单语言模型,然后再将第一语言模型、第二语言模型和第三语言模型一起联合训练,即可得到能够实现三种语言之间相互翻译的模型,而不需要分别训练将第一语言翻译为第三语言的模型、将第三语言翻译到第一语言、将第二语言翻译到第三语言的模型以及将第三语言翻译到第二语言的模型。因此使用本技术提供的翻译模型,在进行扩展时,能够减少需要训练的模型数量,提高训练效率,提高系统的扩展性。
8、在一种可能的实现方式中,上述基于平行语料对第一语言模型和第二语言模型进行联合训练,包括:通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码,以及通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码,第一语句和第二语句是使用两种语言表述的具有相同语义的语句;基于第一对齐编码器的输出和第二对齐编码器的输出,更新第一对齐编码器的参数和第二对齐编码器的参数;通过第一对齐解码器对第一对齐编码器的输出进行解码,基于第一对齐解码器的输出和第一编码器的输出,更新第一对齐解码器的参数和第一对齐编码器的参数;通过第二对齐解码器对第二对齐编码器的输出进行解码,基于第二对齐解码器的输出和第二编码器的输出,更新第二对齐解码器的参数和第二对齐编码器的参数。
9、第一对齐编码器和第二对齐编码器将第一语句对应的向量和第二语句对应的向量转换到相同的向量空间,即上述对齐向量空间,通过第一对齐编码器的输出和第二对齐编码器的输出更新第一对齐编码器的参数和第二对齐编码的参数,能够使两种语言表达的具有相同语义的语句,在通过第一对齐编码和第二对齐编码器分别进行编码后输出的向量更加接近。第一对齐解码器将第一对齐编码器的输出转换到第一解码器的输入对应的向量空间,由于第一对齐解码器输出的向量与第一编码器输出的向量都属于第一解码器的输入对应的向量空间,通过第一对齐解码器的输出与第一编码器的输出更新第一对齐解码器的参数和第一对齐编码器的参数,能够使得第一对齐解码器的输出与第一编码器的输出更接近,使得第一对齐解码器的输出被第一解码器解码后得到的语句,更加接近输入到第一编码器的语句。
10、在一种可能的实现方式中,基于第一对齐编码器的输出和第二对齐编码器的输出,更新第一对齐编码器的参数和第二对齐编码器的参数,包括:基于对齐编码器的输出和第二对齐编码器的输出,计算语义对齐损失,根据语义对齐损失更新第一对齐编码器的参数和第二对齐编码器的参数。
11、通过第一对齐编码器的输出和第二对齐编码器的输出计算语义损失,更新第一对齐编码器的参数和第二对齐编码的参数,能够使两种语言表达的具有相同语义的语句,在通过第一对齐编码和第二对齐编码器分别进行编码后输出的向量更加接近。
12、在一种可能的实现方式中,上述翻译系统还包括第三语言模型,第三语言模型包括第三编码器、第三对齐编码器、第三对齐解码器和第三解码器;上述方法还包括:
13、获取基于第三语言的语料训练得到的第三语言的第三编码器和第三解码器;
14、通过平行语料对第一语言模型和第二语言模型进行训练,得到训练好的第一语言模型和第二语言模型,包括:
15、通过平行语料对第一语言模型、第二语言模型和第三语言模型进行联合训练,得到训练好的第一语言模型、第二语言模型和第三语言模型,平行语料包括第一语言、第二语言和第三语言的同义语句的集合;
16、其中,第三对齐编码器用于将第三编码器输出的向量转换到对齐向量空间;第三对齐解码器用于将第三对齐编码器的输出转换到第三解码器的输入对应的向量空间,以使第三解码器对第三对齐解码器的输出进行解码,输出第三语言的语句。
17、在训练好能够实现第一语言和第二语言这两种语言相互翻译的系统之后,如果要增加第三语言,实现三种语言之间的相互翻译,只需要单独训练第三语言对应的单语言模型,然后再将第一语言模型、第二语言模型和第三语言模型一起联合训练,即可得到能够实现三种语言之间相互翻译的模型,而不需要分别训练将第一语言翻译为第三语言的模型、将第三语言翻译到第一语言、将第二语言翻译到第三语言的模型以及将第三语言翻译到第二语言的模型。因此使用本技术提供的翻译模型,在进行扩展时,能够减少需要训练的模型数量和需要处理的数据量,提高训练效率,提高系统的扩展性。
18、在一种可能的实现方式中,通过平行语料对第一语言模型、第二语言模型和第三语言模型进行联合训练,包括:
19、通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码、通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码以及通过第三对齐编码器对第三编码器输出的第三语句进行编码,第一语句、第二语句和第三语句是使用三种语言表述的具有相同语义的语句;
20、基于第一对齐编码器的输出、第二对齐编码器的输出和第三对齐编码器的输出,更新第三对齐编码器的参数;
21、通过第三对齐解码器对第三对齐编码器的输出进行解码,基于第三对齐解码器的输出和第三编码器的输出,更新第三对齐解码器的参数和第三对齐编码器的参数。
22、在训练好的两种语言相互翻译的翻译系统的基础上,再训练上述能够进行三种语言相互翻译的翻译系统,可以不更新第一语言模型和第二语言模型的参数,仅对第三单语言模型进行预训练,然后再对第三对齐编码器和第三对齐解码器进行训练。即,不需要再对第一单语言模型和第二单语言模型进行训练和参数更新,在对第三单语言模型进行训练之后,再通过平行语料训练第一语言模型、第二语言模型和第三语言模型,仅通过计算得到语义对齐损失和第三自编码损失,然后根据语义对齐损失和第三自编码损失更新第三对齐编码器的参数,根据第三自编码损失更新第三对齐解码器的参数。能够在对翻译系统进行扩展时,降低需要处理的数据量,提高训练效率,提高翻译系统的可扩展性。
23、在一种可能的实现方式中,通过平行语料对第一语言模型、第二语言模型和第三语言模型进行联合训练,包括:
24、通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码、通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码以及通过第三对齐编码器对第三编码器输出的第三语句进行编码,第一语句、第二语句和第三语句是使用三种语言表述的具有相同语义的语句;
25、基于第一对齐编码器的输出、第二对齐编码器的输出和第三对齐编码器的输出,更新第一对齐编码器的参数、第二对齐编码器的参数和第三对齐编码器的参数;
26、通过第一对齐解码器对第一对齐编码器的输出进行解码,基于第一对齐解码器的输出和第一编码器的输出,更新第一对齐解码器的参数和第一对齐编码器的参数;
27、通过第二对齐解码器对第二对齐编码器的输出进行解码,基于第二对齐解码器的输出和第二编码器的输出,更新第二对齐解码器的参数和第二对齐编码器的参数;
28、通过第三对齐解码器对第三对齐编码器的输出进行解码,基于第三对齐解码器的输出和第三编码器的输出,更新第三对齐解码器的参数和第三对齐编码器的参数。
29、第二方面,本技术提供一种翻译方法,该翻译方法包括:通过第一编码器对输入的第一语言的第一源语句进行编码,输出第一源语句对应的向量集合,第一源语句对应的向量集合中的向量属于第一解码器的输入对应的向量空间;通过第一对齐编码器将第一源语句对应的向量集合中的向量转换为对齐向量空间中的第一特征向量集合;通过第二对齐解码器将第一特征向量集合中的向量转换为第二解码器的输入对应的向量空间的向量;通过第二解码器对第二对齐解码器输出的向量进行解码,输出第一源语句对应的第二语言的翻译语句。
30、其中,第一对齐编码器能够将输入的向量转换为对齐向量空间的向量,第二对齐解码器能够将输入的向量转换为第二解码器的输入对应的向量空间的向量。通过第一编码器将第一源语句转换为向量之后,通过第一对齐编码器将第一源语句对应的向量转换为对齐向量空间的向量,然后输入到第二对齐解码器,以将输入的向量转换到第二解码器的输入对应的向量空间,从而能够通过第二解码器进行解码,得到第一源语句对应的第二语言的翻译语句。
31、在一种可能的实现方式中,上述方法还包括:通过第二编码器对输入的第二语言的第二源语句进行编码,输出第二源语句对应的向量集合,第二源语句对应的向量集合中的向量属于第二解码器的输入对应的向量空间;通过第二对齐编码器将第二解码器的输入对应的向量集合中的向量转换为对齐向量空间中的第二特征向量集合;通过第一对齐解码器将第二特征向量集合中的向量转换为第一解码器的输入对应的向量空间的向量;通过第一解码器对第一解码器的输入对应的向量空间的向量进行解码,输出第二源语句对应的第一语言的翻译语句。
32、其中,第二对齐编码器能够将输入的向量转换为对齐向量空间的向量,第一对齐解码器能够将输入的向量转换为第一解码器的输入对应的向量空间的向量。通过第二编码器将第二源语句转换为向量之后,通过第二对齐编码器将第二源语句对应的向量转换为对齐向量空间的向量,然后输入到第一对齐解码器,以将输入的向量转换到第一解码器的输入对应的向量空间,从而能够通过第一解码器进行解码,得到第二源语句对应的第一语言的翻译语句。
33、本技术提供的翻译方法,在进行翻译时,只需要将上述训练好的翻译系统中源语言对应的编码器和对齐编码器以及目标语言对应的解码器和对齐解码器进行组合,即可得到将源语言翻译为目标语言的翻译模型。例如实现a语言和b语言的相互翻译,只需要将训练好的翻译系统中,a语言对应的编码器和对齐编码器以及b语言对应的解码器和对齐解码器进行组合,即可得到将a语言翻译为b语言的模型;将b语言对应的编码器和对齐编码器以及a语言对应的解码器和对齐解码器进行组合,即可得到将b语言翻译为a语言的模型。
34、在一种可能的实现方式中,上述方法还包括:通过第三编码器对输入的第三语言的第三源语句进行编码,输出第三源语句对应的向量集合,第三源语句对应的向量集合中的向量属于第三解码器的输入对应的向量空间;通过第三对齐编码器将第三解码器的输入对应的向量集合中的向量转换为对齐向量空间的第三特征向量集合;通过第一对齐解码器将第三特征向量集合中的向量转换为第一解码器的输入对应的向量空间的向量;通过第一解码器对第一解码器的输入对应的向量空间的向量进行解码,输出第三源语句对应的第一语言的翻译语句。
35、在一种可能的实现方式中,上述方法还包括:通过第一编码器对输入的第一语言的第四源语句进行编码,输出第四源语句对应的向量集合,第四源语句对应的向量集合中的向量属于第一解码器的输入对应的向量空间;通过第一对齐编码器将第四源语句对应的向量集合中的向量转换为对齐向量空间的第四特征向量集合;通过第三对齐解码器将第四特征向量集合中的向量转换为第三解码器的输入对应的向量空间的向量;通过第三解码器对第三解码器的输入对应的向量空间的向量进行解码,输出第四源语句对应的第三语言的翻译语句。
36、第三方面,本技术提供一种翻译系统,该翻译系统包括第一编码器、第一对齐编码器、第二对齐解码器和第二解码器,其中,
37、第一编码器,用于对输入的第一语言的第一源语句进行编码,输出第一源语句对应的向量集合,第一源语句对应的向量集合中的向量属于第一解码器的输入对应的向量空间;
38、第一对齐编码器,用于将第一源语句对应的向量集合中的向量转换为对齐向量空间的第一特征向量集合;
39、第二对齐解码器,用于将第一特征向量集合中的向量转换为第二解码器的输入对应的向量空间的向量;
40、第二解码器,用于对第二解码器的输入对应的向量空间的向量进行解码,输出第一源语句对应的第二语言的翻译语句。
41、在一种可能的实现方式中,上述翻译系统还包括第二编码器、第二对齐解码器、第一对齐解码器和第一解码器,其中,
42、第二编码器,用于对输入的第二语言的第二源语句进行编码,输出第二源语句对应的向量集合,第二源语句对应的向量集合中的向量属于第二解码器的输入对应的向量空间;
43、第二对齐编码器,用于将第二解码器的输入对应的向量集合中的向量转换为对齐向量空间的第二特征向量集合;
44、第一对齐解码器,用于将第二特征向量集合中的向量转换为第一解码器的输入对应的向量空间的向量;
45、第一解码器,用于对第一语言对应的向量空间的向量进行解码,输出第二源语句对应的第一语言的翻译语句。
46、在一种可能的实现方式中,上述翻译系统还包括第一对齐解码器和第一解码器、第三编码器和第三对齐编码器,其中,
47、第三编码器,用于对输入的第三语言的第三源语句进行编码,输出第三源语句对应的向量集合,第三源语句对应的向量集合中的向量属于第三解码器的输入对应的向量空间;
48、第三对齐编码器,用于将第三解码器的输入对应的向量集合中的向量转换为对齐向量空间的第三特征向量集合;
49、第一对齐解码器,用于将第三特征向量集合中的向量转换为第一解码器的输入对应的向量空间的向量;
50、第一解码器,用于对第一解码器的输入对应的向量空间的向量进行解码,输出第三源语句对应的第一语言的翻译语句。
51、在一种可能的实现方式中,上述翻译系统还包括第三对齐解码器和第三解码器,其中,
52、第一编码器,还用于对输入的第一语言的第四源语句进行编码,输出第四源语句对应的向量集合,第四源语句对应的向量集合中的向量属于第一解码器的输入对应的向量空间;
53、第一对齐编码器,还用于将第四源语句对应的向量集合中的向量转换为对齐向量空间的第四特征向量集合;
54、第三对齐解码器,用于将第四特征向量集合中的向量转换为第三解码器的输入对应的向量空间的向量;
55、第三解码器,用于对第三解码器的输入对应的向量空间的向量进行解码,输出第四源语句对应的第三语言的翻译语句。
56、第四方面,本技术提供一种翻译系统的训练装置,该翻译系统包括第一语言模型和第二语言模型,其中,第一语言模型包括第一编码器、第一对齐编码器、第一对齐解码器和第一解码器,第二语言模型包括第二编码器、第二对齐编码器、第二对齐解码器和第二解码器,该装置包括:
57、获取模块,用于获取基于第一语言的语料训练得到的第一语言的第一编码器和第一解码器,获取基于第二语言的语料训练得到的第一语言的第二编码器和第二解码器;其中,第一编码器用于对第一语言表述的语句进行编码,输出对应的向量,第一解码器用于对输入的向量进行解码,输出第一语言表述的语句;第二编码器用于对第二语言表述的语句进行编码,输出对应的向量,第二解码器用于对输入的向量进行解码,输出第二语言表述的语句;
58、处理模块,用于基于平行语料对第一语言模型和第二语言模型进行联合训练,得到训练好的第一对齐编码器、训练好的第一对齐解码器、训练好的第二对齐编码器和训练好的第二对齐解码器,平行语料包括第一语言和第二语言的同义语句的集合;
59、其中,第一对齐编码器用于将第一编码器输出的向量转换到对齐向量空间,第二对齐编码器用于将第二编码器输出的向量转换到对齐向量空间;第一对齐解码器用于将第一对齐编码器的输出转换到第一解码器的输入对应的向量空间中,以使第一解码器对第一对齐解码器的输出进行解码,输出第一语言的语句;第二对齐解码器用于将第二对齐编码器的输出转换到第二解码器的输入的向量空间中,以使第二解码器对第二对齐解码器的输出进行解码,输出第二语言的语句。
60、在一种可能的实现方式中,上述处理模块具体用于,通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码,以及通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码,第一语句和第二语句是使用两种语言表述的具有相同语义的语句;基于第一对齐编码器的输出和第二对齐编码器的输出,更新第一对齐编码器的参数和第二对齐编码器的参数;通过第一对齐解码器对第一对齐编码器的输出进行解码,基于第一对齐解码器的输出和第一编码器的输出,更新第一对齐解码器的参数和第一对齐编码器的参数;通过第二对齐解码器对第二对齐编码器的输出进行解码,基于第二对齐解码器的输出和第二编码器的输出,更新第二对齐解码器的参数和第二对齐编码器的参数。
61、在一种可能的实现方式中,上述处理模块具体用于:基于第一对齐编码器的输出和第二对齐编码器的输出,更新第一对齐编码器的参数和第二对齐编码器的参数,包括:基于对齐编码器的输出和第二对齐编码器的输出,计算语义对齐损失,根据语义对齐损失更新第一对齐编码器的参数和第二对齐编码器的参数。
62、在一种可能的实现方式中,上述翻译系统还包括第三语言模型,第三语言模型包括第三编码器、第三对齐编码器、第三对齐解码器和第三解码器;上述获取模块,还用于获取基于第三语言的语料训练得到的第三语言的第三编码器和第三解码器;上述处理模块,还用于通过平行语料对第一语言模型、第二语言模型和第三语言模型进行联合训练,得到训练好的第一语言模型、第二语言模型和第三语言模型,平行语料包括第一语言、第二语言和第三语言的同义语句的集合;其中,第三对齐编码器用于将第三编码器输出的向量转换到对齐向量空间;第三对齐解码器用于将第三对齐编码器的输出转换到第三解码器的输入对应的向量空间,以使第三解码器对第三对齐解码器的输出进行解码,输出第三语言的语句。
63、在一种可能的实现方式中,上述处理模块具体用于:通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码、通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码以及通过第三对齐编码器对第三编码器输出的第三语句进行编码,第一语句、第二语句和第三语句是使用三种语言表述的具有相同语义的语句;基于第一对齐编码器的输出、第二对齐编码器的输出和第三对齐编码器的输出,更新第三对齐编码器的参数;通过第三对齐解码器对第三对齐编码器的输出进行解码,基于第三对齐解码器的输出和第三编码器的输出,更新第三对齐解码器的参数和第三对齐编码器的参数。
64、在一种可能的实现方式中,上述处理模块具体用于:通过第一对齐编码器对第一编码器输出的第一语句对应的向量进行编码、通过第二对齐编码器对第二编码器输出的第二语句对应的向量进行编码以及通过第三对齐编码器对第三编码器输出的第三语句进行编码,第一语句、第二语句和第三语句是使用三种语言表述的具有相同语义的语句;基于第一对齐编码器的输出、第二对齐编码器的输出和第三对齐编码器的输出,更新第一对齐编码器的参数、第二对齐编码器的参数和第三对齐编码器的参数;通过第一对齐解码器对第一对齐编码器的输出进行解码,基于第一对齐解码器的输出和第一编码器的输出,更新第一对齐解码器的参数和第一对齐编码器的参数;通过第二对齐解码器对第二对齐编码器的输出进行解码,基于第二对齐解码器的输出和第二编码器的输出,更新第二对齐解码器的参数和第二对齐编码器的参数;通过第三对齐解码器对第三对齐编码器的输出进行解码,基于第三对齐解码器的输出和第三编码器的输出,更新第三对齐解码器的参数和第三对齐编码器的参数。
65、第五方面,本技术提供一种计算设备,包括处理器和存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,所述处理器执行如第一方面或第一方面任一种可能实现方式中的训练方法。
66、第六方面,本技术提供一种计算设备,包括处理器和存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,所述处理器执行如第二方面或第二方面任一种可能实现方式中的翻译方法。
67、第七方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在服务器上运行时,使得服务器执行第一方面或第一方面任一种可能实现方式中的训练方法。
68、第八方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在服务器上运行时,使得服务器执行第二方面或第二方面任一种可能实现方式中的翻译方法。