排序模型入门详解
https://yq.aliyun.com/articles/18
1. 排序模型的应用场景
当商家需要向用户提供多个商品供选择时,往往会遇到这个问题:如何将商品按照一定的顺序呈现给用户,以便使用户能够尽可能地完成购买流程?这就涉及到对商品的排序,用到的模型称排序模型。通常情况下,我们希望排在前面的商品是用户更大概率会点击的商品。
根据不同类型的训练数据,可以将排序模型可以分为三大类:
- 单点标注(point-wise)
- 两两标注(pair wise)
- 列表标注(list wise)
point-wise排序模型
输入特征向量集合表示为,其中是一个n维向量,各个维度的含义可以是商品的特征例如评分、小量、价格以及用户的特征例如性别、年龄、偏好等,以及用户和商品的关联特征例如是否点击过该商品、是否购买过该商品、对该商品的评价等,以及场景特征如时间、地点等;标签集合为,其中的取值集合是一个实数,例如用户没有点击过的商品为1,用户点击过但是没购买的商品为3,用户点击并购买过的商品为10.
在上述定义的基础上,我, 可以将point-wise排序模型转换为一个分类问题或者回归问题。如果将排序问题转换为分类问题,会导致输出只有预先定义的那几类(例如1,3,10),进而导致很多商品的label一样,无法进一步区分次序。因此,实际中往往将point-wise排序模型转换为回归问题。
point-wise模型的缺点是,没有考虑训练样本之间的相对顺序。例如,在某次点击事件中,用户点击了样本,在另一次点击事件中用于点击了样本(且此次事件中存在样本但是用户没有点击)。根据point-wise模型,和的标签一样,但这显然是不合理的(应该比更靠前才合理)。
pair-wise排序模型
在pair-wise模型汇总,我们不再从单文档的分类或者回归的角度去看待问题,而是从一个文档对来看待问题。如果用户点击了而没有点击,那么说明比更靠前,可以把的label设置为+1,的label设置为-1,对所有的文档pair进行这样标注,就得到了一系列用于二分类的训练样本。预测时,对测试集里面的所有pair进行分类,便可以得到测试集的一个偏序关系,从而实现排序。SVM Rank、RankNet、FRank、RankBoost等方法都是pair-wise模型。
Ranknet
https://www.cnblogs.com/genyuan/p/9788294.html
RankNet提出的时候是为了解决如下搜索排序问题:给定query集合,每个query都对应着一个文档集合,如何对每个query返回排序后的文档集合。
RankNet将输入query的特征向量映射为一个实数KaTeX parse error: Undefined control sequence: \inR at position 5: f(x)\̲i̲n̲R̲。