一种用于神经机器翻译的字符级对抗样本生成方法及装置与流程

文档序号:21639334发布日期:2020-07-29 02:50阅读:160来源:国知局
一种用于神经机器翻译的字符级对抗样本生成方法及装置与流程

本发明涉及计算机科学的自然语言处理技术领域,尤其是涉及一种用于神经机器翻译的字符级对抗样本生成方法及装置。



背景技术:

自然语言处理(naturallanguageprocessing,简称nlp)是计算机科学的重要研究领域,机器翻译是nlp领域的一个重要分支,旨在利用计算机将一种自然语言(源语言)转化为另一种自然语言(目标语言)。大部分机器翻译系统是基于以下三种方法:基于规则、基于统计和基于神经网络,因为神经机器翻译(neuralmachinetranlation,简称nmt)系统在应用中能得到最好的翻译质量,故大多数翻译网站采取的方法为nmt系统。

但随着机器学习的浪潮不断袭来,越来越多的研究表明神经网络存在安全问题:通过对输入添加细微扰动生成的对抗样本,就能够使得原始模型出错。一般而言,通过一定方法生成一个和原始输入差别不大(人类无法察觉)的攻击性输入,该攻击性输入被称为对抗样本。学术界最开始发现对抗样本广泛存在于图像领域,例如生成对抗样本可以使得人脸识别系统、车牌识别模型和图像分类器产生错误输出,随着研究的深入,学者发现对抗样本同时广泛存在于文本领域。目前存在一些实例表明神经机器翻译系统中也存在对抗样本。

但是,在对现有技术的研究与实践的过程中,本发明的发明人发现,目前生成对抗样本的方法都是白盒攻击方法,由于白盒攻击方法需要了解模型内部参数,而在实际的过程中想要知道被攻击模型的具体参数是非常难的,甚至不可能,并且白盒攻击算法的时间和空间复杂度很高,在使用上限制较大。目前现有技术提出了一种字符级的方法,即通过损失函数的变化寻找特定的字符编辑操作(替换、插入、删除),进而生成白盒对抗样本;但是该方法是基于字符级的白盒攻击方法,不仅需要知道被攻击模型的内部参数,还需要大量的运算资源来计算梯度,而且该方法只要应用于文本分类领域,并不能很好适用于机器翻译领域。现有技术还提出了一种基于单词级的白盒攻击方法,虽然可以较快的生成对抗样本,但是单词级别的更改,很容易造成语义不停从而被人察觉,无法达成对抗样本的基本特征(即人无法察觉)。因此,亟需一种用于神经机器翻译的字符级对抗样本生成方法。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种用于神经机器翻译的字符级对抗样本生成方法及装置,有效生成针对神经机器翻译的字符集的对抗样本,使得神经机器翻译模型的翻译质量大大降低。

为解决上述问题,本发明的一个实施例提供了一种用于神经机器翻译的字符级对抗样本生成方法,至少包括如下步骤:

从需要翻译的文本中随机选定源语言句子;

根据预设的攻击方式组合随机修改所述源语言句子中的单词,生成对抗样本;

其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击。

进一步地,所述用于神经机器翻译的字符级对抗样本生成方法,还包括:

分别将所述对抗样本输入至神经机器翻译模型,得到对应的输出结果进行比对,以评估神经机器翻译模型翻译所述对抗样本的翻译质量。

进一步地,所述交换攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中除首字母和尾字母之外的字母进行对称交换顺序,将完成交换攻击后的新单词替换原单词;

其中,该单词的长度不小于4。

进一步地,所述中间随机攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中的首字母和尾字母之外的字母进行重新的随机排序,将完成中间随机攻击后的新单词替换原单词;

其中,该单词的长度不小于4。

进一步地,所述完全随机攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中的所有字母的顺序随机打乱,将完成完全随机攻击后的新单词替换原单词。

进一步地,所述键盘错误攻击,具体为:

随机选择所述源语言句子中的单词,随机选取该单词中的任意字母;

对每一个随机选取的字母均随机选择其对应的键盘临近字符中的一个字符进行替换,将完成键盘错误攻击后的新单词替换原单词。

进一步地,所述预设的攻击方式组合,包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击中的任意一种,以及四种攻击方式之间的全部随机组合。

本发明的一个实施例提供了一种用于神经机器翻译的字符级对抗样本生成装置,包括:

攻击目标模块,用于从需要翻译的文本中选定源语言句子;

对抗样本生成模块,用于根据预设的攻击方式组合随机修改所述源语言句子中的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击;

对抗样本翻译模块,用于分别将所述对抗样本输入至神经机器翻译模型,得到对应的输出结果进行比对,以评估神经机器翻译模型翻译所述对抗样本的翻译质量。

本发明的一个实施例还提供了一种用于神经机器翻译的字符级对抗样本生成的终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于神经机器翻译的字符级对抗样本生成方法。

本发明的一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于神经机器翻译的字符级对抗样本生成方法。

实施本发明实施例,具有如下有益效果:

本发明实施例提供的一种用于神经机器翻译的字符级对抗样本生成方法及装置,所述方法包括:从需要翻译的文本中随机选定源语言句子;根据预设的攻击方式组合随机修改源语言句子的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击。本发明通过交换、中间随机、完全随机、键盘错误四种攻击方式修改源语言句子,在最小程度上对语句进行更改,生成在最大限度上不引发人类察觉的对抗样本,在不需要知晓被攻击模型的内部结构和参数的情况下,仅需要调用神经网络得到翻译译文,使得神经机器翻译模型的翻译质量大大降低,提高对抗样本的成功率,并且极大降低了算法的时间和复杂度,提高对抗样本的生成效率。

附图说明

图1为本发明第一实施例提供的一种用于神经机器翻译的字符级对抗样本生成方法的流程示意图;

图2为本发明第一实施例提供的另一种用于神经机器翻译的字符级对抗样本生成方法的流程示意图;

图3为本发明第二实施例提供的一种用于神经机器翻译的字符级对抗样本生成装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

首先介绍本发明可以提供的应用场景,如生成针对神经机器翻译的字符级对抗样本。

本发明第一实施例:

请参阅图1-2。

如图1所示,本实施例提供了一种用于神经机器翻译的字符级对抗样本生成方法,至少包括如下步骤:

s101、从需要翻译的文本中随机选定源语言句子。

具体的,对于步骤s101,首先给定源语句v=[x1,x2,…,xn],其中n为源语言句子长度。

s102、根据预设的攻击方式组合随机修改所述源语言句子中的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击。

具体的,对于步骤s102,通过上述四种方式修改源语言句子v=[x1,x2,…,xn]中的单词xi,生成攻击样本v’=[x1’,x2’,…,xn’],使得v’被神经机器翻译系统错误翻译。

需要说明的是,该四种攻击方式的选择是随机的,对于每个单词的修改只选取其中一种攻击方式,一条文本中每个单词都是随机选取一种攻击方式对单词进行修改。

在具体的实施例中,测试时输入一条英文语句v,得到输出结果中文语句w,并给出翻译语句的bleu值,用来评估翻译的质量。

首先,任选一条英文语句v=“youknowsheusedtosingmetosleepeverynight”,对应的标准中文译文为w=“你知道吗,她每天晚上都会唱歌哄我睡觉”;使用上述四种方式生成对抗样本v’,具体实施方式如下:

(1)交换:随机选取单词执行一次字母交换,不更改首、尾字母,得到修改后的句子v1’=“youkonwsheuesdtosnigmetoseelperevynhgit”;

(2)中间随机:随机选取单词执行顺序打乱操作,不更改首、尾字母,得到修改后的句子v2’=“youknowsheuesdtosnigmetoselepeevrynhgit”;

(3)完全随机:随机选取单词执行顺序打乱操作,包括首、尾字母,得到修改后的句子v3’=“younkowsheusedtosingmetosleepeveryhgtni”

(4)键盘错误:随机选取单词中的任意字母进行用键盘临近字母替代操作,得到修改后的句子v4’=“touknowsheusedtosingmetosleepeverynight”。

在优选的实施例中,如图2所示,所述用于神经机器翻译的字符级对抗样本生成方法,还包括:

s103、分别将所述对抗样本输入至神经机器翻译模型,得到对应的输出结果进行比对,以评估神经机器翻译模型翻译所述对抗样本的翻译质量。

具体的,对于步骤s103,将v、v1’、v2’、v3’和v4’输入神经机器翻译模型后得到的中文译文依次对应如下:

w=“你知道吗她每天晚上都会唱歌哄我”;

w1’=“你知道她让我去”;

w2’=“你知道她要让我去”;

w3’=“你让她每次都唱着我,就为了睡觉”;

w4’=“她每天晚上都喜欢唱我的每晚”。

与标准的中文译文“你知道吗她每天晚上都会唱歌哄我睡觉”对比,可以看出利用本实施例所提出的攻击方法对英文文本进行处理后产生的对抗样本,使得神经机器翻译模型的翻译质量大大降低。

在具体的实施例中,神经机器翻译系统的工作过程还包括:

选用基于循环神经网络的序列到序列(seq2seq)模型,seq2seq模型结构主要包括编码器和解码器两大部分,在循环神经网络中,t时刻隐藏状态ht由t-1时刻的隐藏状态ht-1和t时刻的输入xt决定,即ht=f(ht-1,xt);

在编码阶段,通过对各个时刻的隐藏层状态进行多层循环神经网络处理得到语义编码向量c,可表示为c=g(h1,h2,…,hn)。

在解码阶段,根据语义编码向量c和之前已经生成的输出序列y1,y2,…,yt-1来预测下一个输出单词yt,并产生一个输出词典d={vi,pi},i∈[1,h],h为词典维度,vi为词汇,pi为当前时刻下一个词是vi的概率,那么有

yt=vi#(2)

在迭代过程中选取概率最大的单词,最大得到输出序列w=[y1,y2,…,ym],m为目标语句长度。

在优选的实施例中,所述交换攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中除首字母和尾字母之外的字母进行对称交换顺序,将完成交换攻击后的新单词替换原单词;

其中,该单词的长度不小于4。

具体的,随机选择单词中除首、尾字母之外的字母交换顺序,此攻击方式要求单词长度不小于4。例如对“apple”执行交换操作得到“alppe”。

在优选的实施例中,所述中间随机攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中的首字母和尾字母之外的字母进行重新的随机排序,将完成中间随机攻击后的新单词替换原单词;

其中,该单词的长度不小于4。

具体的,随机打乱单词中除首、尾字母之外的所有字母顺序,此攻击方式要求单词长度不小于4。例如对“apple”执行中间随机操作得到“aplpe”。

在优选的实施例中,所述完全随机攻击,具体为:

随机选择所述源语言句子中的单词,将该单词中的所有字母的顺序随机打乱,将完成完全随机攻击后的新单词替换原单词。

具体的,考虑到首尾字母也可能影响输入结果,故随机打乱单词中全部字母的顺序,这种攻击方式适用于任何长度的单词。例如对“apple”执行完全随机操作得到“epalp”。

在优选的实施例中,所述键盘错误攻击,具体为:

随机选择所述源语言句子中的单词,随机选取该单词中的任意字母;

对每一个随机选取的字母均随机选择其对应的键盘临近字符中的一个字符进行替换,将完成键盘错误攻击后的新单词替换原单词。

具体的,随机选取单词中任意字母,用键盘临近字符替代。例如对于字母“l”,选择键盘上与“l”临近的“o”、“k”或“p”进行替换。例如对“apple”执行键盘错误操作得到“appke”。

需要说明的是,键盘临近字符就是根据计算机键盘的位置,每个字符周围都有一圈字符,这一圈字符就是该字符对应的键盘临近字符,对于该圈字符,以完全等同的概率进行随机选取代替需要更改的字符。

在优选的实施例中,所述预设的攻击方式组合,包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击中的任意一种,以及四种攻击方式之间的全部随机组合。

具体的,所述预设的攻击方式组合,不仅包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击中的任意一种,还包括四种攻击方式之间的全部随机组合,同时,四种攻击方式之间的顺序也是随机的。

本实施例提供的一种用于神经机器翻译的字符级对抗样本生成方法,包括:从需要翻译的文本中随机选定源语言句子;根据预设的攻击方式组合随机修改源语言句子的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击。

与现有技术相比,本实施例通过交换、中间随机、完全随机、键盘错误四种攻击方式修改源语言句子中的单词,在最小程度上(字符级)对语句进行更改,生成在最大限度上不引发人类察觉的对抗样本,在不需要知晓被攻击模型的内部结构和参数的情况下,仅需要调用神经网络得到翻译译文,使得神经机器翻译模型的翻译质量大大降低,提高对抗样本的成功率,并且极大降低了算法的时间和复杂度,提高对抗样本的生成效率。

本发明第二实施例:

请参阅图3。

如图3所示,本实施例提供了一种用于神经机器翻译的字符级对抗样本生成装置,包括:

攻击目标模块100,用于从需要翻译的文本中选定源语言句子。

具体的,首先给定源语句v=[x1,x2,…,xn],其中n为源语言句子长度。

对抗样本生成模块200,用于根据预设的攻击方式组合随机修改所述源语言句子中的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击。

具体的,对于样本生成模块200,通过交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击四种方式修改源语言句子v=[x1,x2,…,xn]中的单词xi,生成攻击样本v’=[x1’,x2’,…,xn’],使得v’被神经机器翻译系统错误翻译。

以单词“apple”为例,四种攻击方式具体如下:

交换:随机选择单词中除首、尾字母之外的字母交换顺序,此攻击方式要求单词长度不小于4。对“apple”执行交换操作得到“alppe”。

中间随机:随机打乱单词中除首、尾字母之外的所有字母顺序,此攻击方式要求单词长度不小于4。对“apple”执行中间随机操作得到“aplpe”。

完全随机:考虑到首尾字母也可能影响输入结果,故随机打乱单词中全部字母的顺序,这种攻击方式适用于任何长度的单词。对“apple”执行完全随机操作得到“epalp”。

键盘错误:随机选取单词中任意字母,用键盘临近字符替代。例如对于字母“l”,选择键盘上与“l”临近的“o”、“k”或“p”进行替换。对“apple”执行键盘错误操作得到“appke”。

需要说明的是,该四种攻击方式的选择是随机的,对于每个单词的修改只选取其中一种攻击方式,一条文本中每个单词都是随机选取一种攻击方式对单词进行修改。

对抗样本翻译模块300,用于分别将所述对抗样本输入至神经机器翻译模型,得到对应的输出结果进行比对,以评估神经机器翻译模型翻译所述对抗样本的翻译质量。

具体的,对于对抗样本翻译模块300,将源语言句子和生成的对抗样本输入神经机器翻译模型后得到的中文译文进行比对,根据翻译结果评估所述对抗样本导致神经机器翻译模型的翻译质量是否降低。

本实施例提供的一种用于神经机器翻译的字符级对抗样本生成装置,包括:攻击目标模块100,用于从需要翻译的文本中选定源语言句子;对抗样本生成模块200,用于根据预设的攻击方式组合随机修改所述源语言句子中的单词,生成对抗样本;其中,所述攻击方式包括交换攻击、中间随机攻击、完全随机攻击和键盘错误攻击;对抗样本翻译模块300,用于分别将所述对抗样本输入至神经机器翻译模型,得到对应的输出结果进行比对,以评估神经机器翻译模型翻译所述对抗样本的翻译质量。本实施例通过交换、中间随机、完全随机、键盘错误四种攻击方式修改源语言句子中的单词,在最小程度上(字符级)对语句进行更改,生成在最大限度上不引发人类察觉的对抗样本,在不需要知晓被攻击模型的内部结构和参数的情况下,仅需要调用神经网络得到翻译译文,使得神经机器翻译模型的翻译质量大大降低,提高对抗样本的成功率,并且极大降低了算法的时间和复杂度,提高对抗样本的生成效率。

本发明的一个实施例还提供了一种用于神经机器翻译的字符级对抗样本生成的终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于神经机器翻译的字符级对抗样本生成方法。

本发明的一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于神经机器翻译的字符级对抗样本生成方法。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变形,这些改进和变形也视为本发明的保护范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1