在探讨排序算法的发展历程之前,我们先了解一下推荐系统中数据的独特性质,正是这些数据特点促使了推荐算法的进步。
推荐系统中数据的主要特点包括:
推荐系统的排序算法自90年代以来经历了以下几个发展阶段:
第一阶段(2010年以前):人工特征+线性模型阶段 这个阶段被称为“专家系统”。其主要特点包括: 1. 输入特征的数量级在百到万之间。 2. 经过处理后的特征数量级达到万、十万、百万甚至千万级别。 3. 尽管模型较为简单,但参数空间较小,功能强大,效果良好。 4. 效果提升依赖于人工特征构建,需要深入了解业务并进行大量的人工经验和数据分析来发现有效的特征组合。
第二阶段(2010年-2015年):自动特征交叉+线性模型阶段 这一时期的特点是“增强记忆”。代表性方法包括: 1. 2010年提出的因子分解机(FM) 2. 2014年提出的特征交叉因子分解机(FFM) 3. 2014年提出的梯度提升决策树(GBDT)与逻辑回归(LR)结合 4. 2014年提出的极端梯度提升(XGBoost)
该阶段的主要特点是: 1. 自动进行有监督的二阶和高阶特征交叉,从而记忆有效的特征组合。 2. 通过参数控制特征交叉的空间,如控制FM隐向量的长度、树模型的棵数和深度。 3. 结合学习过程,利用低阶、二阶和高阶特征进行联合训练,主要目的是在同一空间内强化特征对预测结果的正向或负向影响权重。 4. 效果显著提升,只需对少数超参数进行人工调整即可实现简单高效的优化。
第三阶段(2016年至今):深度模型阶段 这个时期可以概括为“深度发展”。代表性方法包括: 1. 2016年提出的前馈神经网络(FNN)、产品神经网络(PNN)、神经因子分解机(NFM)、注意力因子机(AFM) 2. 2016年提出的Wide & Deep模型 3. 2016年YouTube提出的深度神经网络(DNN) 4. 2017年提出的深度因子分解机(DeepFM)
该阶段的主要特点是: 1. 离散特征处理转向嵌入空间,采用低维空间更好地表示特征(例如,休闲游戏、射击游戏、购物美妆可以用8维向量表示,且休闲游戏向量与射击游戏向量距离较近,而射击游戏向量与购物美妆向量距离较远)。这不仅压缩了特征空间,还合理地表示了离散特征。 2. 在各阶段通过降维减少参数空间规模,以应对有限样本下的数据规律挖掘。 3. 探索上下文与目标之间的关系,例如设计序列特征来发现与目标之间的相关性规律。 4. 利用深度神经网络进行高阶特征挖掘。 5. 结合低阶、二阶和高阶特征进行联合学习,低阶和二阶特征主要增强记忆能力,高阶特征则增强泛化能力。
总体而言,这三个阶段的发展可以总结为:从单一数据特征表示到多元数据特征表示,再到低维稠密向量空间表示。这一发展方向旨在将人、物、行为等数据转化为向量表示,并在此基础上学习它们与目标之间的相关性。