摘要
利用遗传算法实现基于种群的无梯度优化,只修改几个单词,保持与原文语义相似和句法连贯
算法
一、Perturb (单词替换规则)
在列表中选择输入句子中要替换的单词是通过随机抽样来完成的,抽样概率与每个单词在反拟合嵌入空间中的欧氏距离δ内的相邻词数成正比,鼓励解集足够大,以便算法进行适当的修改。排除了常用冠词和介词(如a,to)的替换。
Perturb这个子程序接受一个输入信号x',它可以是一个修改过的语句,也可以是与x相同的语句。它在句子x'中随机选择一个词w,然后选择一个合适的替换词,该替换词具有相似的语义含义,适合周围的上下文,并提高目标标签预测分数。
1.根据GloVe embedding空间中的距离计算所选单词的N个最近邻居。使用欧几里德距离,因为没有看到使用余弦会有明显的改善。我们过滤掉与所选单词的距离大于δ的候选词。使用(Mrkˇsi´c等人,2016)中提出的counter-fitting(反拟合方法)对对抗样本的GloVe向量进行后处理,以确保最近邻是同义词。得到的embedding独立于攻击模型使用的embedding 。
2.使用Google的10亿单词语言模型(Chelba et al.,2013)过滤出x'中与单词w周围的上下文不匹配的单词。根据候选词的语言模型得分对候选词进行排序,并只保留得分最高的前K个词。
3.从剩下的单词中,选一个替换x'中的单词w时最大限度地提高目标标签预测概率的单词。
4.所选单词插入到w的位置,返回结果。
二、优化过程
①通过调用扰动子例程Perturb S次来创建大小为S的初生代P0(一组对原始语句的不同修改)
②通过查询攻击模型函数f,获得目标标签预测概率作为当前代中每个种群成员的适应度。
③如果种群成员的预测标签等于目标标签,则优化完成。否则对当代的群体成员进行随机抽样,抽样概率与其适应度成比例,从一对父句子中独立抽取一个均匀分布的子句子,合成一个新的子句子回到①
生成的对抗样本例子
[1]Nikola Mrkˇsi´c, Diarmuid O S´eaghdha, Blaise Thom- son, Milica Gaˇsi´c, Lina Rojas-Barahona, Pei-Hao Su, David Vandyke, Tsung-Hsien Wen, and Steve Young. 2016. Counter-fitting word vectors to linguistic constraints. In North American Chapter of the Association for Computational Linguistics.