摘要
这种方法通过优化排序表中第k点的精度,并且为图片和图片的注解学习了一个共同的嵌入空间。
这种方法训练起来比baseline的算法更快,并且占用的内存也更少。
这个模型能够学习语义,即使这个模型没有预测出正确的结果,它也能预测出较相近的那个结果。
(我的疑问:什么叫做优化排序表中第k点的精度?难道找到第k个violate点,计算完损失后再退出,就是top-k,那本文所说的k就是
不确定啊,因为你不知道采样的第几个会出现violate.)
WARP的思想
我们这种方法通过学习排序来训练它的参数,对列表中的顶级注释进行优化,例如在k处优化精度。
这种方法的厉害也是核心之处就是:WARP使用随机梯度下降和一种新的采样技巧来近似排序,从而产生一种高效的在线优化策略。
提出的算法
给出一个例子x,有排序标签i∈Y,给定标签的训练对,也是查询集(x,y),其中只有一个注释yi∈Y被标注为正确。
f(x)∈RY是一个矢量函数,为每个标签提供一个分数,fi(x)是x作为查询时,label i 获得的分数。
有以下几个公式:
(1)
Ranky (f(x))是f(x)的真标签y的排序,也就是通过打分机制,把y的位数整出来,正常情况下位数应该是1,多了就是不正常。
对应αj有两种取值方法,一种取值方法就是,另一种是
这种取值方法好,因为它给top的几个错误
一个较大的惩罚权重,而给较后面的几个top错误一个较小的惩罚权重。
在线的learning to rank方式
式子(1)可以写成以下的形式:
为了保留语义特征,将其改写成内积的形式:
两大遗留问题
- 计算fi(x)对于i=1,...,Y,去知道哪一个不正确的标签被误认为正确的,这对于较大的集合Y来说是费时的。
是未知的,当没有对每一个i ∈ Y计算fi(x)的时候。
解决方法:宝剑出鞘
作者通过blabla一堆看不懂的数学公式,得出了的近似:
其中Y-1是不同类样本的数目,N计算抽样步骤中找到误判的样本之前,试验的次数。
意义:有效降低了时间复杂度和空间复杂度,同时把listwise问题在某些程度了变成了pairwise的问题,因为只要找到一个
不行的样本就开始进行训练,并且接着就进行下一个样本的训练。