论文链接:https://arxiv.org/abs/1908.07125
代码开源:https://github.com/Eric-Wallace/universal-triggers
1. 主要内容
将输入与一段提示拼接,即可引导模型输出想要的结果,且提示是与输入无关的,任意输入拼接上相同的提示,都大概率会产生特定的结果。
如上图所示,对于情感分析任务,拼接trigger(即提示)会导致模型将正确的预测翻转为否定。对于阅读理解任务,拼接trigger会导致模型将其预测从正确答案(带下划线)更改为trigger内的token。对于生成任务,拼接trigger会导致GPT-2生成带有种族歧视色彩的输出。
2. 核心算法
核心在于如何找到上述trigger,使得模型偏向想要预测的方向。论文设计了一种trigger搜索算法,可以分为以下三步:
1. 以重复的单词“the”,子词“a”,字符“a”初始化trigger;
2. 计算trigger中各个token()关于目标标签(想要模型预测的标签)的损失,反向传播得到每个token的梯度();
3. 对于trigger中每个token,遍历词表中所有token embedding(),找出使得损失函数的一阶泰勒近似最小的,随后将trigger中该位置的token更新为:
trigger迭代更新过程如下图所示: