Unbiased PU learning.
该论文在之前PU learning中使用非凸函数作为loss的基础上,对正类样本和未标记样本使用不同的凸函数loss,从而将其转为凸优化问题。结果表明,该loss(double hinge loss)与非凸loss(ramp)精度几乎一致,但大大减少了计算量。
Introdution
Background
论文首先强调了PU问题的重要性,举了几个例子:
- Automatic face tagging
- 用户对自己的画像标记为正类,其余都是未标记数据,需要正确识别用户的照片
- Inlier-based outlier detection
- 需要在只有
inliers
和未标记数据中识别outliers
,这种方法比完全无监督学习的效果要好
- 需要在只有
- Class is too diverse
- 如果要识别的数据集中类别太多,也就是
one-vs-rest
classification
- 如果要识别的数据集中类别太多,也就是
- Negative-class dataset shift
- 由于训练数据和测试数据采集的实践差异导致负类样本的概率分布发生了变化,那么如果使用PU learning,可以减少重新标记的代价
Method
作者简单回顾了之前PU learning的常见做法:
- 直接在正类样本和未标记样本中训练一个分类器。但很显然这样的效果非常差,因为未标记样本中包含两类数据。
- 根据先验 π \pi π使用一个loss function来权衡每个样本的权重,目标是使得loss function最小化。但这样做的结果是会产生bias。
- 使用满足 l ( z ) + l ( − z ) = 1 l(z) + l(-z) = 1 l(z)+l(−z)=1条件的loss function可以消除这种bias,但对于
ramp loss
,是非凸函数,导致在优化过程中可能求导局部解。
因此,本文提出了一种新的凸函数的loss function,也就是double hinge loss
,不仅能够消除bias,同时也能保证凸性。关键点在于对未标记数据和正类数据使用不同的loss function。
Non-convex PU classification
作者回顾了在 Analysis of Learning from Positive and Unlabeled Data 这篇文章中的方法。
-
首先,根据
two-simple
的假设,我们可以认为正类样本和未标记样本是在两个数据集上分别进行采样得到的:- x i ∼ p ( x ∣ y = 1 ) x i ′ ∼ p ( x ) x_i \sim p(x|y = 1) \quad x^{'}_i \sim p(x) xi∼p(x∣y=1)xi′∼p(x)
- 对于未标记样本来说,边际概率可以表示为: p ( x ) = π p ( x ∣ y = 1 ) + ( 1 − π ) p ( x ∣ y = − 1 ) p(x) = \pi p(x|y=1) + (1-\pi ) p(x|y=-1) p(x)=πp(x∣y=1)+(1−π)p(x∣y=−1)
- 目标是训练一个分类器 g ( x ) g(x) g(x)
-
最佳的分类器是最小化01损失:
- J 0 − 1 ( g ) = π E 1 [ l 0 − 1 ( g ( X ) ) ] + ( 1 − π ) E − 1 [ l 0 − 1 ( − g ( X ) ) ] J_{0-1}(g) = \pi E_1[l_{0-1}(g(X))] + (1-\pi )E_{-1}[l_{0-1}(-g(X))] J0−1(g)=πE1[l0−1(g(X))]+(1−π)E−1[l0−1(−g(X))]
- 其中loss function为 l 0 − 1 ( z ) = 1 2 s i g n ( z ) + 1 2 l_{0-1}(z) = \frac{1}{2}sign(z) + \frac{1}{2} l0−1(z)=21sign(z)+21
-
但由于我们的数据集没有负类样本,因此没有办法估计 E − 1 E_{-1} E−1,所以可以将其转换为:
-
J 0 − 1 ( g ) = 2 π E 1 [ l 0 − 1 ( g ( X ) ) ] + E X [ l 0 − 1 ( − g ( X ) ) ] − π J_{0-1}(g) = 2 \pi E_1[l_{0-1}(g(X))] + E_{X}[l_{0-1}(-g(X))] -\pi J0−1(g)=2πE1[l0−1(g(X))]+EX[l0−1(−g(X))]−π
-
其中 E X E_X EX是在 p ( x ) p(x) p(x)上的期望: E X [ l 0 − 1 ( − g ( X ) ) ] = π E 1 [ l 0 − 1 ( − g ( X ) ) ] + ( 1 − π ) E − 1 [ l 0 − 1 ( − g ( X ) ) ] E_X[l_{0-1}(-g(X))] = \pi E_1[l_{0-1}(-g(X))] + (1-\pi)E_{-1}[l_{0-1}(-g(X))] EX[l0−1(−
-