Deformer:Decomposing Pre-trained Transformers for Faster Question Answering
虽然这种片段拼接的输入方式可以让自注意力机制对全部的token进行交互,得到的文档表示是问题相关的(反之亦然),但相关文档往往很长,token数量一般可达问题文本的10~20倍,这样就造成了大量的计算。
在实际场景下,考虑到设备的运算速度和内存大小,往往会对模型进行压缩,比如通过蒸馏(distillation)小模型、剪枝(pruning)、量化(quantization)和低轶近似/权重共享等方法。
但模型压缩还是会带来一定的精度损失。因此我们思考,是不是可以参考双流模型的结构,提前进行一些计算,从而提升模型的推理速度?
; Is BERT Really Robust? A Strong Baseline for Natural Language Attack on Text Classification and Entailment (AAAI 2020 Oral)
方法总览
给定一个黑盒子
输入:句子、对应标签、模型、相似度计算函数Sim、 ε 、词表和词嵌入
输出:对抗样例X a d v X_{adv}X a d v
背景
机器学习算法通常容易受到广告类的例子的攻击,这些例子与原始训练模型的数据之间是有联系的。
那么怎么去解决这个被攻击问题呢?我们可以自己去 生成类似的这些广告类例子,从而用来评估甚至提高模型的鲁棒性。
作者提出 TEXTFOOLER
并在文本分类和textual entailment 上进行实验
攻击了三种模型,Bert、卷积、循环神经网络。
图像领域这种对抗的使用变的愈发广泛,而对于自然语言,却仍然是个大的挑战。
对于图像模型,输入一个图像(进行肉眼不可分的改变),模型就会判别错。所以有了新的研究方向,生成更多的样例,在训练阶段就看到这些对抗样例,提高鲁棒性。
延伸到自然语言处理领域,换一些词,如文本分类模型,可能就会让模型判别错标签等。
方法细节
输入:句子、对应标签、模型、相似度计算函数Sim、 ε 、词表和词嵌入
我们用输入的句子X,来初始化X a d v X_{adv}X a d v
对句子X中的每个词进行重要性计算,并将其排序全部放入W集合中,并过滤掉W集合内的停用词。
找出所选单词w i w_i w i (W中的每个单词)的所有可能候选词。
找的策略:根据w i w_i w i 与词汇表中其他每个单词之间的余弦相似度,以N个最接近的同义词作为候选词集合。(这里就用到了余弦相似度和词表和词嵌入)( 这里还没用到Sim函数)
选的词嵌入是专门用来计算相似度的,N的设置也是有讲究的,文中N=50,余弦相似度的下限为0.7
最后得到w i w_i w i 的候选词集合candidate(也进行了词性过滤,只保留和原来词词性相同的词)
注意这里是一个词一个词的处理的。
对candidate集合中的每个候选词都与其对应的w i w_i w i 进行替换得到X’,然后计算X’与原来的X a d v X_{adv}X a d v 的 Sim函数相似度。
如果大于阈值ε,且用该X’生成的结果和X a d v X_{adv}X a d v 生成的 结果不一样,则放入最终候选集合中。最终选择该集合中与X a d v X_{adv}X a d v 语义相似度最高的词进行替换X a d v X_{adv}X a d v 。
如果生成 结果一样,则选择置信度得分最低的单词作为w i w_i w i 的最佳替换单词,然后重复之前的步骤进行转换下一个选中的单词。
实验
; ICML 2020 | Description Based Text Classification with Reinforcement Learning
背景
总体思想:
-显式地引入 分类标签的描述信息,从而提升效果。
三种方法来引入描述信息:
1 给各个标签一个静态的描述信息
2 文本 – 标签,用文本信息来当做标签的描述信息
3 动态地根据输入的文本,为每个标签都生成一段描述信息
经典的文本分类方法把标签看做0、1、2、3即简单的下标,但这是对标签本身描述信息的浪费,我们希望能够利用到标签本身的描述信息。
方法一
利用词典,输出标签的定义(描述),从而作为该标签的描述信息,如positive,”full of hope and confidence, or giving cause for hope and confidence”
该文的方法就是描述与原始文本拼接送入模型中,然后模型进行预测。
但这种定义(描述)往往不准确。
方法二和三
方法二 – 从Text X中抽取一段文本作为描述。
方法三 – 利用语言模型生成一段描述。
; 使用强化学习来学习标签描述(抽取)
静态描述的方法不作多阐述,文章是用词典的方法得到的。
抽取描述的方法由于使用了强化学习,这里不对强化学习做过多描述,只描述其核心的思想。
抽取方法中,每一个输入,同一个class的描述都是不同的,每一个class的描述都是输入的substring。
当前class如果的确和输入x匹配,那么可以找到对应描述;如果不匹配,则很难找到对应描述,所以论文在输入x中加入了很多的伪token,如果找到的描述指向了伪token,则使用静态描述。
强化学习算法三个核心点:action a,policy π,reward R
1 对于每一个标签,action就是从输入x中选择合适的描述,这个描述是通过上下标来选择的,如上图。
2 Policy则为上下标选择出来的正确的描述的概率值,即P_span。
3 输入x和描述,然后输出正确标签的概率,这个概率将用于更新分类模型以及抽取方法。
最大化reward,loss则最小化-reward,最后用来更新参数的loss,就如上图所示。
强化学习是一个框架,任何一个任务定义好 action policy reward 即可。
生成的方法
; 实验
Original: https://blog.csdn.net/qq_22795223/article/details/124569804
Author: Xu_Wave
Title: Deformer、TEXTFOOLER、强化学习做文本分类 三篇库存论文分享
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531438/
转载文章受原作者版权保护。转载请注明原作者出处!