《Contextual Augmentation: Data Augmentation by Words with Paradigmatic Relations》
这篇论文,是一个用模型的方式来解决数据增强问题的大作,虽然是篇令人遗憾的短文。
先强调一遍:效果不好,效果不好,它是跑了五个数据集,然后平均了一下,选取了平均值作为比较对象。
但我是为了发论文,已经无所不用其极了,我打算复现它。
它提出了的方向很简单,观察下图即可。
作者对于一句话,用了一个双向LSTM模型,一个是后面的句子,一个是前面的句子,这是NLP任务中的常规操作。
但特殊的点在于,它有一个positive,这个positive代表了,它把一句话的标签也考虑了进去。
这样的话,替换的单词,就会带有标签的因素。
在这个过程中,新的单词是预测词表的概率,词表中的概率被认为是P,那么因缺思厅的问题就来了,这个P是多少的时候我们可以认为”actors“可以被替换呢?
作者设置了一个超参数来控制这个变量,而同样,作者会选择topK的单词来进行替换操作,那么K选取多少呢?
作者在这里用了网格搜索,= = ,网格搜索,不管是死人也能给救活不是吗?
再后来,作者为了证明自己的label是有用的,又分析了一下label带来的效果,可视化了一部分图像。
评价:这个想法很好,把label加到augmentation的想法,这个想法肯定是从别的地方来的。
我现在开始复现这个代码。
代码用的是作者的代码。依照readme的顺序从上到下构造。
在pre-training的时候,遇到了一个小bug,参考下述连接,成功解决。
https://blog.csdn.net/qq_29134801/article/details/90900950
我的设备是一个1080Ti,很遗憾,预训练要跑几乎一天。这个实验的代价,太大。
接下来是按部就班的进行各种训练,跑了一下样例,发现实际RNN的效果是0.409,而用了该方法后,它的效果是0.412.
这篇paper是干什么的呢?
Abstract
1. 用bi-directional 来预测将要诞生出来的词。
2. 通过lable,增加了label信息。
3. 在以前的方法中,都是在不变的方法处理一个事物,比如规则,启发式,pipelines ,而这篇文章不是的。
1. Introduction
在这篇文章中,条件LM产生单词做数据增强,提升的是RNN和CNN的效果,(注意:这里是放在CNN和RNN的场景下比对了)
这篇文章的立意是,它找到的词是那些paradigmatic的词。
他利用词周围环绕的那些在mask的词旁边。预测出paradigmatic的词,从而提供KG同义词方法不能带来的多样性(注意:这里也有些牵强,为什么带不来呢?)
接下来是无趣的介绍模型和topk,以及筛选权值的部分。
3. Experiment
在这个部分,我们发现LSTM和CNN的超参数,不同的实验用不同的seed.(这里的seed的选取会不会也有猫腻)
我们发现,probability都是用来做的。而(2,3)是有还是没有的label-conditional的对比。
首先pretrained的在WikiText-103上面,在pretraining的效果上再进行fine-tine;用label进行fine-tuning。
Incompatible 有冲突的。