推荐系统自诞生之日起就是为解决海量物料如何高效分发给海量用户,一套高效的算法流程就是推荐系统的核心 。如今火热的各类机器学习、深度学习、强化学习等都可以在推荐系统中大显身手,推荐也是AI在工业界最广泛的落地场景之一 。推荐算法在推荐系统中的位置如图1所示,主要是通过离线或在线拿到特征及样本数据训练模型,将训练好的模型同步给召回或排序的预测服务,推荐引擎实时调用预测结果供召回及排序使用 。
文章插图
推荐算法在推荐系统中地位
如果更宽泛意义上,推荐内容的质量、类别、理解等都可通过各自AI算法计算,节省大量人工成本,通过NLP、音频、视频、图像理解等领域内的先进算法,丰富物料的正排信息进入资源池,如物料质量、物料类别、关键词提取,图像视频理解、音频转文本、物料属性的embedding向量等等 。
文章插图
各领域算法对用户与物料信息的丰富
推荐效果主要以提升ctr为目标,但转化率、完播率、停留时长等均可作为辅助指标,可以说只要能够抽象出问题并描述出要最优化的损失函数,有较丰富的特征及样本,那就一定能够用算法来解决问题 。这里我们先以精排阶段的算法为例说明如何构建起完整的排序算法通路 。
特征库/服务算法需要数据,数据需要特征,特征是模型训练数据中最重要的部分,各类算法的本质也是根据现有样本分布拟合出一个最接近真实情况的概率分布函数,需要拟合的参数就是各个特征,通过这个函数即可获取特定用户或物料的特征下用户对物料的感兴趣程度(点击的概率),因此特征工程也是推荐算法工程师的必备技能,人工智能圈广为人知的调侃“人工智能靠人工”,在推荐领域的重要体现就在于通过分析数据来获取重要特征 。
推荐系统连接的是人与物,特别是独特业务场景下的人与物,那么一定也会有独特的物料属性特征与用户行为特征,针对深入理解业务的基础上构造好的特征,那推荐算法出来的结果也就成功了一半以上 。从人和物的角度,特征也分为物料特征、用户特征及上下文特征,上下文也可算作用户特征的一种 。用户特征一般通过明确记录或统计挖掘得到,如用户的地理位置、访问时段、使用设备、性别年龄(可能通过填写资料获取)一般在访问时即可拿到;挖掘特征通过历史用户的操作行为,统计用户的画像偏好 。物料特征一般是物料自身属性及其统计数据,例如类别、关键词、主题等固有属性,以及历史一段时间窗口内的效果统计如曝光、点击、点赞、转发等 。从直观含义看可分为类别特征和数值型特征,对不同特征也要多种特征工程处理方式,这里推荐一份slide讲解特征工程,很香!原始出处要翻墙,为方便大家直接搬运了 。
特征工程是一项实践性很强的工作,基本的技术方法就那么几种,但真正用来调好模型的特征工程方法一般网上也很少,原因之一就在于是跟自己公司具体业务挂钩的,不具有普遍性,即使放出来也只适用于自己公司业务,无法放之四海而皆准,可以看下各大厂主要产品线的推荐系统特征工程是如何做的 。
这里用户特征,包括上下文特征,可以根据用户离线的行为日志统计,类似用户画像,假设此时用户属性类别、各维度偏好、对各行为的统计量等都已用特征工程处理完毕并结构化存入hive表,同理对物料在资源池获取属性类别特征,通过客户端日志获取物料各维度统计类信息,保存至hive表,再通过一个定时任务将hive内的特征数据整合,这样将离线计算的用户及物料维度特征保存至hive表,同时更新至redis供线上实时获取 。
文章插图
特征构建
有了特征就能方便地构建出模型训练样本数据,这时要针对推荐效果指标来构建样本,对于ctr指标来说一般是分类问题,使用用户对物料是否点击作为label,对于视频类播放时长指标一般可作为回归问题,用户对物料的播放时长作为样本y值,这里以ctr作为评价指标,正样本为用户点击物料,负样本为用户曝光未点击物料 。
训练数据说到算法并无太多神秘之处,如果了解基础的机器学习原理,各类算法只是针对大量样本数据的一个拟合过程,拟合出一个接近真实数据分布的概率分布函数,即所谓的“规律”,大量的样本正是这条规律的基础,算法只是用数学的方式来求解 。通过用户行为日志可获取全量用户曝光点击物料信息,通过用户及物料特征库抽取特征,从而构建出样本矩阵,通过离线计算保存到样本文件 。
推荐阅读
- 实时计算框架:Spark集群搭建与入门案例
- 女生从事什么职业比较好
- 减肥零食|今夏最火的男士发型,清爽有型很时尚,想帅你就来
- 耐寒零下30度的庭院花,最适合院子养的耐寒花
- 一任群芳妒,零落成泥碾作尘,只有香如故?以为是满城芳菲,却已经春色和烟老,落花委地凉
- 从乌江自刎看出项羽是个什么样的人?项羽被谁打败自刎乌江
- 高铁|官方揭秘:高铁动车的电从哪儿来?
- 如何挑选牛五花肉
- 吃薯片上火吗?薯片的营养价值有哪些?
- 从开始的喜欢到最后的平淡?平淡的喜欢最长久