推荐系统从技术架构的层面来讲,分为两大部分:数据部分和模型部分。
数据部分完成的工作主要集中在数据收集、数据清洗与处理上,采用实时与离线的方式对用户、物品、场景三类数据数据处理与清洗,并以特定的格式提供给推荐系统中的使用方(文中提到的有三个:模型训练、模型预测、商业智能),可见数据的重要性,数据处理流程如果出现了问题,后面的工作可能均无法正常开展。 tips: 实时与离线数据处理架构即为当前常用的lambda架构。
模型部分完成的工作分别是:模型训练、模型评估、模型部署及模型在线推断。
“模型”这里,推荐系统一般存在三个阶段:召回、精排、重排,每个阶段都会存在一个到多个模型。不同的模型,会使得不同的阶段对最终的推荐结果产生改变。一般,算法工程师会把模型选型作为一个算法问题,如何对业务进行有效建模才能获得最大的收益。
其他的,“训练”、“评估”、“部署”、“在线推断”一般被看作一个工程问题,即如何将模型有效的apply。
首先,模型训练分为离线训练和在线更新。离线训练一般是取全量样本训练模型,为得到理论上的全局最优点;在线更新是实时构造样本,进而更新模型,这种方式容易使得模型收敛到局部最优点,一般学习到的是数据的趋势,例如热点等。
模型评估同样分为离线评估和线上A/B测试。离线评估应用于模型上线前评估模型效果,线上A/B测试则直接利用线上流量,效果更加直观准确。
模型部署和在线推断即为模型接受用户query后返回推荐item列表的过程。