极限多标签学习之SwiftXML
原文:《Extreme Multi-label Learning with label features for warm-start tagging, Ranking & Recommendation》-WSDM
创新点:
- FastXML是对特征空间进行划分,本文进一步拓展了PfastreXML以同时支持特征空间和标签空间。
- 将标签空间表征为word2vec embedding.
动机:
- FastXML和PFastreXML只针对text features,但是没有利用tag features(有问题,FastXML是监督学习方法,自然要利用tag features)。
- 如果针对样本
x
i
,
x
j
\mathbf{x}_i,\mathbf{x}_j
xi,xj,其标签
y
i
,
y
j
\mathbf{y}_i,\mathbf{y}_j
yi,yj只share很少的tags,那么这两个样本将会被视为非常不同的。这里举了个Einstein和Newton的例子,本文说SwiftXML可以从word2vec embedding学习到Einstein和Newton这两篇文章是相似的(从标签空间来衡量,并不从文章角度衡量)。
Note. 什么是word2vec embedding? 将一个word(比如:“king”)转化为一个实数向量。 - SwiftXML可以学习标签之间的相关性,而已有的方法将每个标签视作独立?
核心工作
SwiftXML分别在特征空间和标签空间(文章里面说的是user/item feature space)学习两个决策边界,也是randomized trees和递归划分。
这里提到,标签特征编码了关于文章透露的标签偏好的语义信息。
没有直接使用标签向量,而是encode label vector以抽取标签特征。
第i个样本的标签特征定义如下:
z
i
=
∑
j
y
i
j
r
x
j
′
∣
∣
∑
j
y
i
j
r
x
j
′
∣
∣
\mathbf{z}_i = \frac{\sum_j y_{ij}^r \mathbf{x}_j'}{||\sum_j y_{ij}^r \mathbf{x}_j'||}
zi=∣∣∑jyijrxj′∣∣∑jyijrxj′
其中
y
i
r
=
[
y
i
1
r
,
…
,
y
i
L
r
]
\mathbf{y}_i^r = [y_{i1}^r, \dots, y_{iL}^r]
yir=[yi1r,…,yiLr],文中并没有解释这个为什么有个上标
r
r
r,推断就是一个denotion。
r
r
r是revealed
的缩写,就是被观测到的标签向量(含有missing labels)。关于被观测到的标签向量和真实的标签向量,可参考:https://blog.csdn.net/wuyanxue/article/details/126860961?spm=1001.2014.3001.5501
x
j
′
∈
R
D
′
\mathbf{x}_j' \in \mathbb{R}^{D'}
xj′∈RD′是第j个标签的特征向量(这个符号看的相当难受),后面根本就没有对
x
j
′
\mathbf{x}_j'
xj′的进一步解释。
推断
x
j
′
\mathbf{x}_j'
xj′其实就是第j个标签的word2vec embedding.
为什么要将标签特征按照上式进行定义?
保证具有重叠标签的样本在标签空间上是相似的。正好对应动机的第2点。
因为如果直接采用标签向量,那么即使两个标签向量有重叠,它们也不一定相似,采用了word2vec这种方法可以提取出标签向量之间的相似性。(这大概是本文的核心创新点了)。
拓展思考: z i \mathbf{z}_i zi可以利用一般的距离度量方法考查相似性。
优化过程就是在PfastReXML的基础上,加入 z i \mathbf{z}_i zi的决策边界的学习。
min
∣
∣
w
x
∣
∣
1
+
∑
i
C
x
log
(
1
+
exp
(
−
δ
i
w
x
T
x
i
)
)
+
∣
∣
w
z
∣
∣
1
+
∑
i
C
z
log
(
1
+
exp
(
−
δ
i
w
z
T
z
i
)
)
−
C
r
∑
i
1
2
(
1
+
δ
i
)
L
PSnDCG@
L
(
r
+
,
y
i
r
)
−
C
r
∑
i
1
2
(
1
−
δ
i
)
L
PSnDCG@
L
(
r
−
,
y
i
r
)
\begin{aligned} \min & \quad ||\mathbf{w}_x||_1 + \sum_i C_x \log(1 + \exp(-\delta_i\mathbf{w}_x^\text{T}\mathbf{x}_i)) \\ & + ||\mathbf{w}_z||_1 + \sum_i C_z \log(1 + \exp(-\delta_i\mathbf{w}_z^\text{T}\mathbf{z}_i)) \\ & - C_r \sum_i \frac{1}{2}(1 + \delta_i) \mathcal{L}_{\text{PSnDCG@}L}(\mathbf{r}^+, \mathbf{y}_i^r) \\ & - C_r \sum_i \frac{1}{2}(1 - \delta_i) \mathcal{L}_{\text{PSnDCG@}L}(\mathbf{r}^-, \mathbf{y}_i^r) \end{aligned}
min∣∣wx∣∣1+i∑Cxlog(1+exp(−δiwxTxi))+∣∣wz∣∣1+i∑Czlog(1+exp(−δiwzTzi))−Cri∑21(1+δi)LPSnDCG@L(r+,yir)−Cri∑21(1−δi)LPSnDCG@L(r−,yir)
Note:
x
i
\mathbf{x}_i
xi和
x
i
′
\mathbf{x}_i'
xi′不一样,前者表示第
i
i
i个文章(样本),后者表示第
i
i
i个标签的word2vec。
上述目标的优化过程和FastXML类似,不赘述。
问题:当学习器学到了
w
x
,
w
z
\mathbf{w}_x,\mathbf{w}_z
wx,wz之后,怎么预测样本
x
\mathbf{x}
x。
本文采用了一种常规方法,两个的线性组合作为划分超平面:
C
x
w
x
T
x
+
C
z
w
z
T
z
>
0
?
left
:
right
C_x\mathbf{w}_x^\text{T}\mathbf{x} + C_z\mathbf{w}_z^\text{T}\mathbf{z} > 0 ? \text{left} : \text{right}
CxwxTx+CzwzTz>0?left:right
我看不懂这里的
z
\mathbf{z}
z是怎么来的。
文中说到,预测是在test set上进行的,那么猜测也许大概maybe可能似乎这里的
z
\mathbf{z}
z就利用到了test set上的标签。
新来一个样本(无标签)怎么预测?不懂。
结论
本文的创新点在于:
- 利用word2vec表征一个标签,利用 z i \mathbf{z}_i zi重新表示样本 x i \mathbf{x}_i xi的标签空间。
- 将特征空间与标签空间的分类超平面进行线性组合以做预测。
有个地方不懂,它怎么预测?
Updating:
我不知道我的理解对不对,这篇文章标题有个关键字Warm-start
,两种场景(浅尝辄止):
- 推荐的都是老用户;or
- 针对一个新用户,先尝试做出某些推荐(这超出了本文探讨的范畴),然后在此基础上完备。
那预测过程就说的清楚了:本文的预测是基于测试集的,他利用到了测试集的标签。如果新来一篇文章,大概要预先打上一些标签(可能很少),然后再根据这个标签计算 z \mathbf{z} z,然后就可以预测出完备的标签集。