讨论 2022-01-06 = ###### tags: `tutorials` `Fudan` `2022` ### 取之不尽的数据 目前深度学习高度依赖于数据,而高质量的标注数据往往需要高昂的成本,数据规模十分受限。所以研究者们着眼于可以廉价地,大量地收集数据的方法,但随之而来的问题也十分明显,数据的标注可能有误,并且采集到的数据分布可能与真实数据分布不一致。换言之,如何应对数据中的噪声,特别是标签中的噪声。 ### distant learning distant learning通常需要人为提供的一些知识,比如在知识抽取领域中的著名假设,假设一句话中出现了两个特定的实体,这句话大概率体现了他们之间的关系。即给定三元组 (e1,r,e2),如果一句话包含e1,e2,则一定体现了r。 |Relation name |Size |Example| |-|-|-| |/people/person/nationality |281,107 |John Dugard, South Africa| |/location/location/contains| 253,223| Belgium, Nijlen| |/people/person/profession| 208,888| Dusa McDuff, Mathematician| |/people/person/place of birth |105,799| Edwin Hubble, Marshfield| |/dining/restaurant/cuisine |86,213| MacAyo’s Mexican Kitchen, Mexican| |/business/business chain/location |66,529| Apple Inc., Apple Inc., South Park, NC| 又或者在NER,entity linking等任务中,我们通过字典筛选出一部分数据,这些标注很大概率是有缺失的,比如只能找到一些有名的地方和人物,但知名度较低的就会错过。 ### 弱分类器标注 另一种更为通用的方法是对已有任务,先在一小部分有标注的数据上训练一个弱分类器,然后在通过这个分类器对大规模数据进行自动标注。比如在已有数据上训练一个NER模型,然后在整个wiki上进行标注。 对于这些有噪声的数据,我们可以将问题归为两类 - 数据标注有噪声 - 数据标注有缺失 标注有噪声指的是标注本身可能有误,打的标签可能是不对的。而标注有缺失是指很多标签没有被标出,或者说召回率太低。在实际操作中,标签的缺失往往占到了更大的比重,因为上述两种方法都更强调找到大概率正确的标签,而忽略那些莫能两可的标签。从而导致严重的缺失问题。 这两个问题分别对应了 Learning with noise 和 Positive-Unlabeled Learning 两个方向。 ### Learning with noise 首先我们要理解一个问题是什么是噪声抗性。它的定义是无噪声情况的最优解一定是有噪声情况下的最优解。也就是我们通过学习有噪声的样本可以找到无噪声的最优解,这是至关重要的性质,否则我们是在求解优化另一问题,而不是原问题。 函数f在loss L下的风险为$$R_L(f) = E_{x,y^*} L(f(x), y^*)$$ 另外噪声概率为n,共k类 假设有$$\sum_i^k L(f(x),i)=C$$,C为常数 \begin{align} R^n_L(f) =& E_{x,y} L(f(x), y) \\ =& \sum_x \sum_y P(x,y) L(f(x), y) \\ =& \sum_x \sum_y \sum_{y^*} P(x,y,y^*) L(f(x),y)\\ =& \sum_x \sum_y \sum_{y^*} P(x) P(y^*|x) P(y|x,y^*) L(f(x),y) \\ =& \sum_x \sum_{y^*} P(x) P(y^*|x) [(1-n) L(f(x),y^*) + \frac{n}{k-1} \sum_{i,i\neq y*} L(f(x),i)] \\ =& \sum_{x,y^*} P(x,y^*) [(1-n) L(f(x),y^*) + \frac{n}{k-1} \sum_{i,i\neq y*} L(f(x),i)] \\ =& (1-n) R_L(f) + \frac{n}{k-1} (C-R_L(f)) \\ =& \frac{Cn}{k-1} + (1-\frac{nk}{k-1}) R_L(f) \\ \end{align} 那么无噪声的最优解$f^*$和任意解$f$在噪声数据上有 $$R^n_L(f^*)-R^n_L(f) = (1-\frac{nk}{k-1})(R_L(f^*)-R_L(f)) $$ 所以$n<\frac{k-1}{k}$时,上式小于等于0,即无噪声最优解还是噪声数据上的最优解。 总loss为常数这一设定其实很好满足,对任意loss进行归一化即可,但原始的cross entropy不满足。 大家也可以尝试用CE推导,其他工作有提及CE是不能保证有噪声抗性的,即不一定满足无噪声最优还是有噪声最优。 不过,抗噪声的loss经常学习效率不高,一种最近提出的解释是这类loss通常可以再只少量提高或不提高正确类别置信的情况下减小一定量的loss ### Positive-Unlabeled Learning PU learning 有很多不同的方法和思路,同时也会借助各种各样的假设。这里只提及一种比较简单的方法,同时其假设是事先知道正负样本的比例。假设正负比例为$\pi_p : \pi_n$,我们可以把具有正负类样本的经验风险$R_{pn}$改写成只有正样本的经验风险$R_{pu}$,从而得到正确的loss形式。 \begin{gather} R^-_n(f) = \mathbb{E}_{x_n} L(f(x_n), -1) \\ R^+_p(f) = \mathbb{E}_{x_p} L(f(x_p), 1) \\ R^-_p(f) = \mathbb{E}_{x_p} L(f(x_p), -1) \\ R_{pn}(f) = \pi_p R^+_p(f) + \pi_n R^-_n(f) \\ \pi_n p_n (x) = p(x)-\pi_p p_p(x) \\ R_{pu} = \pi_p R^+_p (f)- \pi_p R^-_p(f) + R^-_u(f) \end{gather} ### Multi-Instance Learning 为了提高标签的质量,一种常用的做法是降低问题的难度,比如把识别句子中每个实体的情感变为识别整句话的情感,又或者把分类问题从100个细类改为10个粗类等。而这些化简往往会借助MIL进行学习。 ![](https://i.imgur.com/9nnZOKE.png =300x) MIL研究的问题是当标注信息是针对整体的,而我们知道这个整体的标签是由某些更小的标签(Instance-level)组合而成的。这时通过整体求组成个体标签的过程就成为MIL。其实MIL和解线性方程组挺像的,只不过我们不知道组合系数,并且允许取最大值等操作。 首先,我们把整体成为 bag,我们能获得的标签都是针对bag的,而bag里有若干个instance,我们需要通过bag的标签以及假设的bag和instance之间的关系来推理出instance的标签。从而完成下游任务。 只考虑正负两类,并且假设bag的标签为正当且仅当至少有一个instance标签为正,而bag标签为负当且仅当所有instance标签为负。这也是经典的MIL假设,可以通过最大值操作来建模。 至少存在一个正标签等价于标签最大值为正(设正标签大于负标签)。所以存在性问题很容易对应成取最大值。类似的,计数问题可以转化为1范数或2范数。 所以,其实MIL的通用解决方法很直接,假如bag为$B=\{s_1,s_2,\cdots,s_n\}$,由n个instance组成,我们有一个可学习的网络$f$ $$\hat{Y}_B = \max_i f(s_i)$$ 我们对bag的预测就可以转为对每个instance分类并取最大值。 ## 实例 https://www.aclweb.org/anthology/Q18-1002.pdf ![](https://i.imgur.com/Cg4L6HT.png) https://www.aclweb.org/anthology/2020.emnlp-main.287.pdf ![](https://i.imgur.com/vTxRO63.png)