当前位置 首页> 科易专栏> > 正文

「从零入门推荐系统」11:推荐系统排序算法之规则策略方法

智能技术 数据技术
数据与智能    2023-01-05    370

作者 | gongyouliu
编辑 | gongyouliu

我们在上面一篇文章中介绍了排序算法的一些基本概念和知识点。大家应该已经非常清楚排序算法可以解决什么问题,可以用在哪些推荐场景了。上一章也对排序算法做了一个简单的说明性介绍,从本章开始我们会花3章的篇幅来介绍具体的排序算法的实现原理。本章我们先介绍最简单、最没有机器学习含量的规则策略排序方法。

 

虽然规则策略算法没有用到复杂的机器学习模型,主要是基于人对业务的理解来定义的排序方法,但在某些场景(比如没有什么数据、需要满足一些运营目标等)是必要的一种方法。规则策略排序算法根据不同的业务场景可以有非常多的实现方案,下面我来介绍几种非常直接简单的实施方案。具体来说,我们会讲解随机打散排序、按序排列排序、得分归一化排序、匹配用户画像排序、代理算法排序及它们的混合使用的排序等6种规则策略排序算法。
 
本章的目的是给读者提供一些思路,大家也可以结合自己公司的具体业务来思考,看是否有更好、更有业务价值、更有特色的实现方案。
 
在讲解具体的排序策略之前,我们先假设我们已经有了k个召回结果,分别记为Recall_1、Recall_2、... 、Recall_k,我们的目标是利用规则策略排序算法来对这k个召回结果进行排序。
 
图1:k个召回结果
 

11.1 多种召回随机打散

这种排序方法是最简单的。就是将图1中k个召回结果合并,构成一个召回结果的合集,然后利用随机函数将这个并集随机打散,然后从打散的列表中取前面的topN作为最终的排序结果推荐给最终的用户,这个过程可以用公式表示如下:
 
 
这种实现方式非常简单高效,可以直接在推荐web服务端实现,不过个人还是建议实现一个排序算子或者排序服务,这样可以跟推荐web服务解耦(下面讲到的排序方法建议都采用类似的处理方式,要么做成一个算子,要么做成一个微服务,下面不再赘述)。为了让读者可以更直观地理解这种随机打散的排序方案,下面画一个示意图。
 
图2:随机打散的排序策略
 
这个排序策略非常简单粗暴。它的优势是非常简单,每次获得的结果都是不一样的,可以提供一定的新颖性和多样性,特别适合那种召回结果变化不大的召回场景(比如如果我们的推荐算法是T+1的,各个召回算法在前后两天的召回结果差别不大)。
 
这个排序算法最大的问题是没有一致性,也就是用户两次打开推荐系统获得的结果可能完全不一样。当然,这个缺点可以部分解决,可以先将排序结果缓存起来,设定一个缓存过期时间,在缓存过期时间内,每次用户请求推荐服务时,从缓存取推荐结果,这时推荐结果就一致了。
 

11.2 按照某种秩序排列

这种排序算法先将k种召回结果按照某种次序排定一个优先级,比如优先级排列如下(意思是A的优先级大于B):


排定了优先级后,我们按照优先级的高低,依次从 、... 、中选择1个来排列。第一轮选择好了之后,又开始按照 、... 、的顺序选择,直到选择的数量凑足N个就完成了,下面图3即说明了这个实现的过程。具体各个召回算法怎么排定优先级,可以有很多方式,比如基于业务的经验,基于运营需要,基于召回算法的效果(比如矩阵分解召回的效果好于item-based召回、item-based召回的效果好于热门召回)等。
 
图3:按照某种秩序排列的排序策略
 
这种实现方案可以做一些调整和推广。上面每个召回算法只选择了1个结果进行排列,其实我们可以从每个召回算法中选择多个进行排序(可以选择固定数量的,比如每个召回选择2个;也可以选择不一样的,比如第一个召回选择3个,第二个召回选择2个等等,具体每个召回选择多少可以基于经验或者业务规则来定)。下面图4就是先从每个召回中选择topM个结果,按照顺序拼接起来,当第一轮选择结束后,然后又从第一个召回选择topM个,依次类推,当凑足了最终需要推荐的topN个推荐结果就停止(当然不会刚好凑足N个,这时当第一次超过N个就可以停止了)。上面多个召回列表中可能存在某些物品出现在多个召回中,只要在排序过程中将重复的剔除掉就好了。
 
图4:每个召回算法选择topM,然后拼接获得最终的topN推荐结果
 
其实这个每组取topM的排序方法在现实生活中是可以找到原型的,我们的高考录取其实就是这种方式。每个省份的考生的成绩按照高低排列就是一个召回。清华北大每年进行招生它们是怎么做的呢?大家应该都知道清华北大在不同省份都有录取名额(当然不同省份名额不一样),这个招生过程的思路跟图4有异曲同工之妙。
 
一般各种召回算法的效果怎么样,我们是有一定的先验知识的,比如前面说到的矩阵分解召回的效果好于item-based召回,item-based召回的效果好于热门召回。有了这些先验知识,自然采用这种排序方式是一种不错的选择。虽然排在后面的召回算法的预期效果没有排在前面的召回好,但是它们是可以增加推荐的多样性和泛化能力的。
 

11.3 召回得分归一化排序

一般来说,某个召回算法本身是会对召回结果进行排序的,也就是每个召回结果中的物品是有序的,比如矩阵分解召回,每个召回的物品是有预测评分的,按照这个评分是可以给矩阵分解召回的物品按照得分高低排序的,实际召回时就是这么操作的。这个召回得分是可以被我们用于排序的,下面来讲解怎么使用。
 
如果我们的k个召回算法都有自己的排序,那么一种可行的综合排序方式是:先在每个召回算法内部将排序得分归一化到0到1之间,这样不同的召回算法的得分是在同一个区间范围(即0到1之间),那么它们之间就是可比较的了。我们可以将这些物品放在一起按照归一化的得分进行排序(这里存在一种情况,如果某个物品在多个召回算法中出现,那么就可以取它们的归一化得分的平均值),最终基于这个排序就可以选择归一化得分的topN作为最终的排序结果推荐给用户。下面图5可以非常直观地说明这个操作过程。
 
图5:每个召回算法先基于得分归一化,然后汇总排序取topN作为最终推荐结果
 
具体归一化的方法有很多,大家可以选择min-max归一化、分位数归一化或者正态分布归一化,下面分别简单介绍一下这3种归一化的方法:
  • min-max归一化
min-max归一化是通过求得该特征样本的最大值和最小值,采用如下公式来进行归一化,归一化后所有值分布在0-1之间。
 
 
  • 分位数归一化
分位数归一化是将该特征所有的值从小到大排序,假设一共有N个样本,某个值x排在第k位,那么我们用下式来表示x的新值。
 
 
  • 正态分布归一化
正态分布归一化是通过求出该特征所有样本值的均值和标准差,再采用下式来进行归一化。
 
 
召回得分归一化排序方法比较简单,有一定的合理性。作者之前在做视频的排行榜推荐时就采用了这个方法。我们先分别计算电影、电视剧、综艺、动漫、少儿等各种类型节目的top100(按照播放量),然后按照本节介绍的方法归一化取最终的top100作为综合的热门推荐结果,这个结果中就会包含各种类型的视频了。
 

11.4 匹配用户画像排序

如果我们的物品是有标签的,那么我们基于用户行为是可以给用户构建用户兴趣画像的,这些物品的标签就可以作为用户的兴趣画像标签。例如,如果用户看了一些科幻、恐怖、美国的电影,那么就可以给该用户打上科幻、恐怖、美国的兴趣标签,代表了该用户对科幻、恐怖、美国相关题材的电影感兴趣。
 
用户对每个兴趣标签是可以有权重的,这个权重代表的就是用户对该标签的兴趣度,怎么计算这个权重,作者已经在第7章7.2.2.2节“利用用户兴趣标签召回”中进行了说明,读者可以去那篇文章看看,这里不再赘述。
 
有了用户的兴趣标签,每个物品也是有标签的,那么我们就可以计算每个物品与用户兴趣画像的相似得分,然后基于相似得分降序排列,取topN作为最终的推荐结果,这个过程可以很好地用下面的图6来说明。
 
图6:基于物品跟用户画像的匹配度排序,然后取topN作为最终推荐
 
具体怎么计算用户U和某个物品W的标签匹配度,我们简单说明一下。首先我们先求出用户标签跟物品标签的交集。如果交集为空,那么它们的相似度为0。如果交集不为空,我们记交集为T,那么用户U的兴趣画像跟物品W的匹配度为 ,这里是用户U的兴趣标签t的权重,是物品W的标签t的权重(如果物品的标签没有权重,那么可以是1)。
 
上面是基于用户兴趣标签计算的用户跟物品的匹配度,如果用户或者物品可以嵌入到某个低维向量空间,那么也可以用向量的相似度(如cosine余弦相似度)来表示用户和物品的相似度。具体怎么嵌入,我们在第9章9.1.3.2节“个性化召回”中已经介绍了核心思想,这里不再赘述。
 
匹配用户画像的排序算法结合了用户的行为,是一种个性化的排序算法,所以是比较合理的一种排序方式。这种排序方式其实就是基于内容的推荐排序算法,只要用户有部分操作行为,这种排序算法就可以实施。它的缺点是可能给用户推荐的物品局限于用户比较有兴趣的类别中,容易产生信息茧房效应。

 

11.5 利用代理算法排序

如果我们有一个代理算法能够对物品进行排序,那么我们也可以基于这个排序算法来对多个召回结果进行综合排序。这里举一个例子说明一下:比如我们推荐的物品是文章,假设我们有一个文章质量的算法,能够基于文章的一些特征(比如标题、长度、里面图片、创作者等级、错别字多少、排版是否优美、点击率等特征)来给文章排序,那么这个文章质量算法就可以用来为多个召回结果进行排序。假设我们的代理排序算法为F,那么基于代理算法的排序可以用公式记为:
 
 
这种基于物品本身的代理排序算法最大的问题是非个性化的(即是没有包含用户特征的),所以排在前面的可能不一定是匹配用户兴趣的。为了让读者有更直观的理解,下面图7说明了利用代理算法的排序过程。
 
图7:基于某个代理算法对所有召回结果排序,然后取topN作为最终推荐
 
前面提到文章质量算法也是可以用到用户点击数据的(这些点击数据可能是通过爬虫爬取的外网数据),因此排序算法也代表了群体的一种行为偏好质量,所以代理排序算法是有一定科学性的。

 

11.6 几种策略的融合排序

上面我们讲到了5种可行的排序策略,这些排序策略是可以结合在一起使用的。比如我们可以先对每个召回列表按照11.4节介绍的方法对每个召回列表进行排序,那么这个排序后的召回列表中排在前面的就是与用户兴趣匹配度最高的,然后我们可以从排序好的召回结果中依次取1个按序排列(即上面11.2中的方法)获得最终的topN推荐结果,具体实现方案如下面图8所示。
 
图8:先基于用户画像对每个召回排序得到新的有序列表,然后每个排序后的召回列表选择1个按序排列
 
下面我们再介绍一种更复杂的混合策略。我们可以先将召回结果分为两组,一组利用前面介绍的匹配用户画像排序获得最终的排序结果,我们记为Recall_P,另外一组我们可以用代理算法进行排序,排序后的列表我们记为Recall_k` ,然后对Recall_P和Recall_k`这两组列表,我们可以采用11.2节介绍的方法从每个列表中选取topM,然后将他们按照顺序拼接起来形成最终的topN推荐结果,具体实现过程可以参考下面图9。
 
图9:召回算法先分组,每组用不同排序策略,最终再一次排序
 
上面只是举了两个混合排序的例子,其它各种可行的混合排序策略大家可以自行尝试。可以说,上面提到的任何两个策略都是可以混合使用的,具体怎么使用需要结合具体场景和业务来实施,这里不再赘述。

 

总结

本章我们介绍了5种非常简单的基于规则和策略的排序算法,这几种方法也是可以混合使用的。这5种排序算法的原理非常简单,比较适合在没有太多用户行为数据(比如某个产品刚推入市场,还在拓展用户阶段)的场景下使用。虽然这5个排序方法简单粗暴,但是还是非常有适用价值的,这些思想读者可以好好掌握。我们会在接下来的2章介绍真正的基于机器学习算法的排序模型,这些方法就是更加科学有效的排序方式了。
  本文来自微信公众号【数据与智能】,未经许可谢绝二次转载至其他网站,如需转载请联系微信liuq4360。

我要收藏
本文为专栏作者授权科易网发表,版权归原作者所有。文章系作者个人观点,不代表科易网立场,转载请联系原作者。如有任何疑问,请联系ky@1633.com。

想体验5个数量级的综合计算效能提升吗?试试这款离散域超多变量复杂最优化求解芯片吧!

相关推荐
电子内窥镜解决方案
公司电子内窥镜解决方案,针对临床痛点的解决方案,包括以下产品: 1、呼吸麻醉:可视喉镜系列产品,应对新冠疫情的可视化气道管理解决方案; 2、泌尿外科:硬质电子经皮肾镜;MPCNL术式,新型李逊镜肾结石清除解决方案; 3、肝胆外科:硬质电子胆道镜;PTCSL术式,新型电子硬镜(王平镜)肝内胆管结石及微创保胆解决方案。
领域:医学影像诊断技术
轻量化“数字孪生”3D引擎推动企业数字化转型发展
公司在 “数字孪生”核心支撑技术—3D轻量化领域已耕耘多年,形成了极具门槛的核心技术积累。截止目前,已为国内超过400家客户,涵盖制造业、工程建筑行业、高等院校,提供了3D轻量化产品及技术服务,应用于近500多个重大项目或系统平台建设。 主要产品与服务有: (1) 3D/BIM/GIS轻量化融合引擎(WebGL/服务器端渲染); (2) BIM/GIS施工管理平台; (3) CAD图纸轻量化引擎(WebGL); (4) 图模管理协同平台; (5) 汇报演示系统; (6) 图模查看工具; (7) 3D可视化沙盘搭建系统; (8) 搭建智慧工厂、化工、矿山、电力领域的3D设备模型交易平台。
领域:Web服务与集成软件
药物缓释鼻腔通气及术后支撑系统
国内首家专注鼻科医疗器械研发、生产和销售的科技公司,聚焦鼻腔领域的刚需,为更高效、舒适、安全、经济的临床解决方案提供支持。 核心产品是鼻腔支架,其有效性、舒适性、安全性 均远高于被替代器材。国内尚无厂家报批,门槛高,公司有更长的高利润窗口期。 智能镍钛记忆合金制成的中空填充鼻腔支架产品,即鼻腔微创支架,前鼻孔支架,后鼻孔支架。该系列支架在临床手术后可被安置到鼻腔,并牢固地附着在鼻腔所需位置,从而起到压迫、重塑、止血的作用,并保证顺畅通气,而目前临床常用的膨胀海绵之类的填充物会堵住鼻腔,鼻腔支架产品在有效鼻腔填塞压迫塑形的同时,可以在鼻腔中形成通气通道,不影响患者的通气。鼻腔支架是医疗耗材和治疗策略的改进,有并发症无法做鼻腔手术的病人,用一种新型的诊疗方式,替代手术方案。
领域:其他
植物精油芯片缓释技术在驱蚊手环中的应用与产业化
基于药用植物精油作为天然驱蚊剂的应用前景和存在的弊端分析,项目通过研究植物精油芯片缓释技术在驱蚊手环中的应用,从精油复配、浓度配比、包裹技术等方面进行研究测试,致力于生产自带舒适圈的植物精油驱蚊手环,实现长效保护、天然安全等功能,适用于不同场景不同人群。该技术充分利用药用植物精油的良好的环境相容性、怡人的香味、对人及哺乳动物无毒、无残留等优势,对日后研发出更多更稳定、高效、实用的驱蚊产品奠定了良好的基础。公司专业从事母婴驱蚊产品的研发和制造、分销和零售,具有全球视野,产品范围涵盖运用高分子缓释技术的纯植物驱蚊产品,及蚊虫叮后护理、灭蚊器等一系列产品。
领域:天然药物生物合成制备技术
激光质子刀关键技术突破及激光器产业化
质子疗法是肿瘤放射治疗的一种,该疗法将氢原子核中的质子通过粒子加速器释放高能量射线进行治疗。 由于质子束在组织中独特的吸收曲线(称为布拉格峰),它可以提供更好的剂量分布,允许在肿瘤部位沉积最大的破坏性能量,同时最大限度地减少沿路径对健康组织的损害。 全球首创激光驱动的离子加速:相比于目前质子疗法使用的传统加速器,激光驱动的离子束加速梯度高,能在很短的距离加速到很高的能量,具有源尺寸小、脉冲短、亮度高和能谱宽等特点,在等离子体电磁场诊断、核聚变质子快点火、质子照相、癌症治疗和温稠密物质产生等方面有着广阔的应用前景。 全国产化,全球顶尖的下一代小型化激光质子刀,既完成了对传统放疗的替代,又实现了对大型加速设备的源头创新,引发成本革命,是解决商业化痛点的终局方案。
领域:新型治疗、急救与康复技术
智慧林长制全面解决方案
林长制是以保护发展森林等生态资源为目标, 以压实地方党委政府领导干部责任为核心, 以制度体系建设为保障, 以监督考核为手段, 构建由地方党委政府主要领导担任总林长, 省、市、县、乡、村分级设立林(草)长, 聚焦森林草原资源保护发展重点难点工作, 实现党委领导、党政同责、属地负责、部门协同、全域覆盖、源头治理的长效责任体系。 公司的核心技术团队均有十余年从事“智慧城市”领域的经验,具备新型智慧林业顶层设计、全面解决方案、项目研发及实施的全过程管理能力;主导和参与的项目累计金额达数亿元。 公司具备测绘高级工程师、信息化中高级工程师、系统集成等中高级工程师数十人;具有地方标准和行业标准制定能力和丰富的经验;核心成员曾主导及参与出版发行行业信息化专著。 公司主营业务是智慧/数字林业,围绕林业系统的相关业务,是林业行业领域,提供智慧林长制全面解决方案的服务商。
领域:物联网应用软件
自拟中药汤是什么?
自拟中药汤是什么?
探讨自拟中药汤配合熏蒸推拿法治疗类风湿关节炎的临床效果。方法将52例类风湿关节炎患者分为观察组和治疗组各26例,实施自拟中药汤配合熏蒸推拿法治疗,对照组患者采用常规治疗,并比较两组患者的治疗效果。
关键词:临床效果,中药汤,类风湿关节炎,推拿法
波导耦合器专利申请
波导耦合器专利申请
波导耦合器是一种常用的微波器件,用于在不同波导系统之间传输微波信号。其工作原理基于电磁波在波导内的传输特性,通过特定的结构设计,实现不同波导之间的能量耦合和传输。波导耦合器的基本结构包括输入波导口、输出波导口和耦合部件。
关键词:平面弯曲,波导器件,波导耦合器
自动投切专利申请
自动投切专利申请
自动投切是通过自动装置来实现的。这种装置能够根据电网的运行状态,通过感应器对电容器的运行进行自动调控,并在需要时自动进行投切。自动投切装置在电力系统中有着广泛的应用,包括重要机房、计算机房等关键设备的电力保障,电力系统中重要设备、通信设备的备用电源,以及火灾、地震等紧急情况下的电力供应保障。
关键词:自动投切,实现方式,并联电容器
口令码变换算法的用途
口令码变换算法的用途
口令码变换算法通常涉及一系列的操作,用于将原始口令转换为另一种形式,以增强安全性或满足特定的应用需求。
关键词:保密,加解密,大型企业,财会
半刚性基层底拉应力研发方向
半刚性基层底拉应力研发方向
半刚性基层底拉应力是指半刚性路面基层底面在行车荷载作用下产生的拉应力。在路面结构中,半刚性基层起到提高整体承载能力并降低土基承受的荷载强度的作用。然而,半刚性基层本身的拉应力相对集中,若超过极限则可能导致路面结构损坏。
关键词:正交试验,底基层,半刚性基层,设计参数,拉应力,半刚性基层底拉应力
空压机组技术哪里有?
空压机组技术哪里有?
空压机组是一种将机械能转换成气体压力能的能源转换装备,主要由泵头组件、气罐组件和管阀组件等部分组成。泵头组件是空压机的核心部件,主要负责压缩空气,完成能量的转换;气罐组件是空压机的存储部件,负责储存压缩后的气体;管阀组件是空压机的输控部件,负责连接泵头和气罐输送气体,并控制气体流通。
关键词:城际动车组,实际应用,空压机组
直接横摆力矩控制技术哪里有?
直接横摆力矩控制技术哪里有?
直接横摆力矩控制(DYC)是一种车辆运动稳定的有效方法,它通过对车轮上纵向力的调节,直接构成对车辆质心的横摆力矩,以克服车辆的前轴或后轴侧滑,提高车辆的操纵稳定性。在车辆处于低附着系数路面、大侧向加速度等极限工况下行驶时,车轮上的侧偏力已处于饱和状态,此时无法单纯依靠转向控制来提高车辆的稳定性。然而,车轮上的纵向力往往还有很大的裕度可以被利用,DYC正是基于这一原理来提高车辆的操纵稳定性。
关键词:电机驱动,分布式驱动,横摆力矩,直接横摆力矩控制
碳酸盐含量的用途
碳酸盐含量的用途
碳酸盐含量主要指的是血液中的二氧化碳含量,这是人体新陈代谢产生的废气。通过测量呼气中的二氧化碳含量,可以确定碳酸盐含量,并用于计算氧合指数。在建筑材料、食品工业、医药和环保领域,碳酸盐都有着广泛的应用。
关键词:储层,岩心,体积分数,测井资料,塔拉,碳酸盐含量
服务精选
服务案例
官方社群
标签