2.4 排序算法
推荐系统排序模块将召回模块产生的标的物列表(一般有几百个标的物),通过排序算法做重排,以更好地反映用户的点击偏好,再通过排序优化用户的点击行为,将用户更可能点击的标的物(一般有几十个)取出来并推荐给用户,最终提升用户体验。
排序模块会用到很多特征,一般我们会基于这些特征构建排序模型,常用的特征可以抽象为如下5大类:
·用户侧的特征,如用户的性别、年龄、地域、购买力、家庭结构等。
·商品侧的特征,如商品描述信息、价格、标签等。
·上下文及场景特征,如位置、页面、是不是周末或者节假日等。
·交叉特征,如用户侧特征与商品侧特征的交叉等。
·用户的行为特征,如用户点击、收藏、购买、观看等。
排序框架需要充分利用上述五大类特征,以便更好地预测用户的点击行为。排序学习是机器学习中一个重要的研究领域,广泛应用于信息检索、搜索引擎、推荐系统、计算广告等排序任务中,有兴趣的读者可以参考微软亚洲研究院刘铁岩博士的专著Learning to Rank for Information Retrieval。常用的排序学习算法框架有pointwise、pairwise、listwise三类,如图2-12所示。
图2-12 三类排序学习算法框架
在图2-12中,x1、x2、…代表的是训练样本1、2、…的特征,y1、y12、s1、…是训练集的label(目标函数值)。pointwise学习单个样本,如果最终预测目标是一个实数值,就是回归问题;如果目标是概率预测,就是一个分类问题,例如CTR预估。pairwise和listwise分别学习一对有序对和一个有序序列的样本特征,考虑得更加精细。在推荐系统中常用pointwise方法来做排序,它更直观,易于理解,也更简单。
常用的排序学习算法有logistic回归、GBDT、Wide & Deep等,这里对这些算法的实现原理做一个简单描述。