rank_loss
该OP实现了RankNet模型中的排序损失层。RankNet是一种文档对(pairwise)排序模型,训练样本由一对文档(假设用A、B来表示)组成。标签(假设用P来表示)表示A的排名是否高于B。更多详情请参考:
排序损失层有三个输入:
、
和
,输入分别表示RankNet模型对文档A、B的输出得分和标签P的值;排序损失层的输入是批输入数据(批大小大于等于1);标签P的取值可以为: {0, 1} 或 {0, 0.5, 1} ,其中,0.5表示输入文档对排序相同。输入数据的排序损失
计算过程如下:
参数:
label (Variable):维度为 [batch,1][batch,1] 的2-D
Tensor
,数据类型为float32。其中batch表示批数据的大小。表示A的排名是否高于B。right (Variable):维度为 [batch,1][batch,1] 的2-D ,数据类型为float32。其中batch表示批数据的大小。表示RankNet对文档B的输出得分。
返回:表示排序损失层输出值的 Tensor
,数据类型为float32,返回值维度为 [batch,1][batch,1] 。
返回类型:Variable
抛出异常:
ValueError
- 输入 ,left
,和right
至少有一个不是 类型。
代码示例