05 以物品与用户为基础个性化推荐算法的四大策略

《易经》:“九二:见龙在田,利见大人”。九二是指阳爻在卦中处于第二位,见龙指龙出现在地面上,开始崭露头角,但是仍须努力,应处于安于偏下的位置。

本节是模块二第一节,模块二讲解传统机器学习推荐算法,这部分是作为一名推荐算法工程师的基础,我们将一起学习和掌握传统经典推荐算法和传统推荐算法发展脉络。

个性化推荐系统之所以能迅速占领各大 APP 的首要版块,取代很多人工运营的坑位,核心原因在于它可以在短时间内通过很短的路径让用户找到自己想要的商品,拉近了用户与商品之间的距离,即优化了流量分发效率,而这些都与个性化推荐系统中的推荐算法息息相关。因此,接下来的模块我们将紧紧围绕推荐系统中最核心、最关键的内容——推荐算法进行介绍。

这一讲我们将重点聊聊推荐算法的简单推荐策略,先从推荐系统算法的架构开始讲解,再详细说明此架构下极具代表性的推荐策略。

推荐算法架构

推荐系统的算法架构,通常分为离线架构和在线架构这两种。

1.离线架构

离线架构主要用来构建物品画像和用户画像,因为数据是算法的基础,底层数据的丰富程度决定了推荐能力的天花板。

比如系统通常不了解未登录用户的行踪,通过合适的引导,可以让访问推荐系统的用户未登录占比更低,从而大幅提升推荐系统的掌控力。再比如参考更丰富的用户行为(曝光、点击、点赞、停留时长、下载时长等等)和更多的用户特征(用户年龄、性别、地域、商品店铺、价格、类目等),也能大幅增强推荐系统的掌控力,而且这些参考因素越多越好。

从本质上来讲,算法系统是用来预测未来,但是如果过去什么都没有发生,预测出来的结果也就可想而知了。

关于物品体系及用户体系的构建过程,之前我们已经详细介绍过了,这一讲我们就不提了,你可以前往回顾 02 讲和 03 讲的内容。

2.在线架构

在线架构主要用来从海量物品池中选择合适的推荐的对象匹配给对应用户。在这个架构中,我们主要依靠检索技术(如协同过滤、内容过滤、用户偏好等)建立索引,然后根据索引生成第一步的结果。其中涉及的工程技术主要是用来提升系统整体的响应速度、吞吐效率等,使得整个推荐系统能一次性查得更多、更快。

下面我们以 58 同城本地服务推荐流程和算法架构为例,一起来看看推荐算法的具体架构,如下图所示。

从图中可知,在线架构主要分为召回层、粗排层、精排层、融合和重排层这四大部分。

  • 召回层:从物品库中根据多个维度筛选出潜在物品候选集,并将候选集传递给排序环节。在召回供给池中,我们可以看到多个召回集,整个召回环节的输出量往往以万为单位。

  • 粗排层:利用规则或者简单模型对召回的物品进行排序,并根据配额进行截断,截取出 Top N 条数据输出给精排层,配额一般分业务场景,例如对 58 同城本地服务推荐分品类进行配额,整个粗排环节的输出量往往以千为单位。

  • 精排层:利用大量特征的复杂模型,对物品进行更精准的排序,然后输出给重排层(融合层),整个精排环节的输出量往往以百为单位。

  • 融合和重排层:以产品策略为导向进行融合和重排,例如 58 同城本地服务推荐将商品、SKU、帖子、标签等不同展示元素融合在一个列表中,并且经过去除已曝光、去重、打散等策略,并根据点击回退在列表中插入新的信息来提升体验,最后生成用户可见的推荐列表,整个融合和重排环节的输出量往往以几十为单位。

以上我们阐述了数据生成部分的推荐算法架构,接下来我们着重讨论推荐算法在以上各个环节中的应用。

简单推荐策略

在复杂的推荐系统中,推荐算法作为其最核心、最关键的部分,很大程度上决定了推荐系统性能的好坏,且重点体现在数据决策层。

所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。而个性化推荐算法实在是太多了,道德经中说”天下难事必作于易,天下大事必作于细”,所以这一讲我们先从简单推荐策略聊起。

在个性化推荐系统中,简单推荐策略主要分为:基于热门推荐推荐、基于基本信息推荐、基于内容推荐、基于关联规则推荐这几种,下面我们分别来看下。

1.基于热门推荐

热门推荐,顾名思义就是使用统计的方法将最热门的物品进行推荐,越热门的物品被点击的可能性越大。这个比较容易理解,因此我们就不过多赘述了。

2.基于基本信息推荐

基于基本信息推荐是根据用户的基本信息如:领域、职位、工作年龄、性别和所在地等给用户推荐感兴趣或者相关的内容,比如年龄-关联电影表、收入-关联商品类型表,性别-文章关联表等等。

因为基于热门推荐与基于基本信息推荐使用比较简单,所以这两个推荐策略应用比较广泛。

3.基于内容推荐

基于内容推荐是指(Content Based Recommandation)利用用户和物品的相关信息,例如前述用户和物品画像信息及用户对物品的行为构建的模型,例如浏览、点击、打电话、收藏、评论、下单等。内容推荐算法根据用户行为推断用户偏好,并为用户推荐相同偏好的物品。

基于内容推荐的计算过程一般分为四个步骤:

  • 找到用户历史感兴趣的物品集合;

  • 找到物品集合的具化属性;

  • 抽象具化属性的共性属性;

  • 由这些共性属性查找其他物品,并实施推荐。

下面我们以 58 本地服务推荐中的保姆 SKU 服务推荐详细描述这一过程。

假设用户访问过 3 个帖子的保姆 SKU 分别是保姆 A、保姆 B、保姆 C,我们可以直接从用户历史日志中得到访问集合(如地点、月薪、从业经验、学历等信息)。

再通过访问集合,我们可以得到保姆的相关具化信息,如下表所示:

由职位具化内容抽象出职位共性信息:例如,在上述表格中,我们可以抽象出保姆 A、保姆 B、保姆 C 共性职位信息为:保姆 SKU、地点为北京、月薪>5000。

通过共性信息检索其他职位并实现推荐:比如我们在 SKU 库中以“保姆 SKU 、地点为北京、月薪>5000”为检索条件,并按照一定规则进行排序(例如发布时间等)和截断,以此完成推荐。如果召回结果集过小,我们可以通过放宽条件召回,例如放宽检索条件为“保姆 SKU、地点为北京、月薪>2000”。

请注意:基于内容推荐的特征是推荐结果只与用户当前的行为有关,与用户的其他行为无关。

4.基于关联规则推荐

基于关联规则推荐(Association Rules)是通过数据挖掘的方法找到物品之间的相关关系,再进行标签推荐,比如大家所熟知的“啤酒”和“尿布”,就是某超市工作人员通过对顾客的购物清单进行分析后,才发现了啤酒和尿布之间的共现关系。

而衡量物品之间的关联性时,我们主要看支持度、置信度和提升度这三大指标。下面我们以 58 同城本地服务中的标签筛选为例,一起看下如何使用基于关联规则推荐策略推荐标签。

首先,我们在本地服务“保姆月嫂”品类下搜索“健康证”,这时推荐系统会提供精准的筛选结果,如下图所示。

当用户点击了其中一个标签“保姆”,就会生成新的“健康证”“保姆”的搜索结果,从而进一步对用户需求进行细化。

在APP 本地服务“保姆月嫂”品类下,我们通过分析常用用户搜索词,发现分词后的元素有“保姆”、“月嫂”、“育儿嫂”、“健康证”等,这些分词结果就是我们输入一个搜索词后需要推荐出来的标签的原料。

为了说明方便,我们只取 5 次搜索的搜索词(实际应用中以万为量级)为例,并把搜索词和分词结果单独列出来,如下表所示:

1)计算支持度

支持度表示 AB 共现情况占所有情况的比例,则有表达式 Support(A->B)=P(A&B),它往往用来评估搜索词当中该词出现的概率。

我们先来看一下单独词的支持度,比如“保姆”在 5 次搜索中出现 3 次,则单独“保姆”的支持度是 Support(保姆)=3/5,如下表所示。

下面再来看一下组合词的支持度,例如“保姆”和“月嫂”在 5 次搜索中共现 2 次,则组合词“保姆”->“月嫂”的支持度为 Support(保姆->月嫂)=2/5,如下表所示。

因此,在推荐系统中,我们会优先推荐支持度高的词,因为如果推荐支持度低的词,会使得转化率指标提升效果有限。

2)计算置信度

置信度表示 AB 共现情况占 A 情况的比例,其表达式为 Confidence(A->B)=P(A&B)/P(A)。通俗点说就是在搜索了“保姆”的情况下,有多大概率会继续点击“月嫂”,即“保姆”->“月嫂”的置信度是多少。

比如在下表中,我们可以看到“保姆”总共搜索了 3 次, “月嫂”出现了 2 次,则保姆”->“月嫂”的置信度为 Confidence(保姆->月嫂)=2/3。

需要注意的是,Confidence(A->B) 与 Confidence(B->A) 不一定相等,例如 Confidence(月嫂->健康证)=1,意味着只要搜索“月嫂”就会继续搜索“健康证”,因为“健康证”100% 出现(如下表所示);而 Confidence(健康证->月嫂)=3/5,意味着在搜索“健康证”的情况下只有 3/5 会继续搜索“月嫂”。

3)计算提升度

提升度表示以 A 为前提下 B 出现的情况与 B 情况的比例,表达式为 Lift(A->B)=P(B|A)/P(B) ,它往往用来评估推荐效果。

在计算 Lift(A->B) 时,主要出现以下三种情况:

  • Lift(A->B)>1 时,说明搜索 A 时推荐 B 比直接推荐 B 的效果更好;

  • Lift(A->B)=1 时,说明搜索 A 和搜素 B 属于独立事件,二者没什么关系;

  • Lift(A->B)<1 时,说明搜索 A 和搜索 B 负相关,搜索 A 还不如不去推荐 B。

这里我们也通过一个例子来说明下,比如在搜索“保姆”时推荐了“月嫂”,“保姆”总共搜索了 3 次,而“月嫂”出现了 2 次,则保姆”->“月嫂”的置信度为 Confidence(保姆->月嫂)=2/3;如果直接推荐“月嫂”,5 次搜索中出现了 3 次“月嫂”,则“月嫂”的支持度为 Support(月嫂)=3/5,即用户有 3/5 的概率点击“月嫂”,此时说明,使用关联规则算法后推荐效果变好了。

如果我们在搜索“月嫂”时推荐了“育儿嫂”,比如 含有“保姆”的总共搜索了 3 次,而这 3 次中只有 1 次含有“育儿嫂”,那么置信度 Confidence(保姆->育儿嫂)=1/3;如果直接推荐“育儿嫂”,5 次搜索中有 2 次出现“育儿嫂”,则“育儿嫂”的支持度为 Support(育儿嫂)=2/5,即用户有 2/5 的概率点击“育儿嫂”,此时说明,使用了关联规则推荐算法后,推荐效果反而更差了。

综上所述,我们可知使用 A->B 的关联规则推荐是为了取得更好的提升度,使得搜素 A 时推荐 B 比直接推荐 B 的效果要更好。

小结与预告

学到这里,首先恭喜你已经初步了解了推荐系统架构和简单推荐策略。这一讲讲解的简单推荐策略看起来比较简单,但是非常靠谱、实用,根据二八原则,使用简单推荐策略可以助力我们以 20% 的精力拿到 80% 的分数,并以此为基线向更高的分数冲击。06 讲我们将深入了解推荐算法中经典的算法——协同过滤算法。

道德经中说“图难于其易,为大于其细“,对于简单推荐策略,你是否有不同的见解?欢迎在留言区与我互动哦。

另外,如果你觉得此专栏有价值,欢迎分享给更多好友哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/377727.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux+git+Gitee+Jenkins]持续集成实验安装配置详细

首先理解持续集成原理&#xff0c;看懂并理解图 1。 图 1 持续集成原理结构 图 1 中&#xff0c;版本控制服务器指远程代码仓库&#xff0c;本实验使用 GitEE 作为远程代码仓库&#xff1b;Jenkins 自动化部署服务器为虚拟机&#xff0c;操作系统为 Linux &#xff1b…

人工智能与伦理挑战:多维度应对策略

人工智能技术近年来取得了迅猛发展&#xff0c;广泛应用于医疗诊断、金融分析、教育辅助、自动驾驶等各个领域&#xff0c;极大地提升了生产效率和服务质量&#xff0c;推动了科技进步和商业创新。然而&#xff0c;伴随其普及和应用的泛滥&#xff0c;AI也带来了数据隐私侵犯、…

C语言 | Leecode C语言题解之第229题多数元素II

题目&#xff1a; 题解&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*//*假定 num1&#xff0c;num2 为出现次数大于 nums.length / 3 的两个数。&#xff08;最多出现两个&#xff09;遍历 nums&#xff0c; 若出现 num1、num2…

2024年高职云计算实验室建设及云计算实训平台整体解决方案

随着云计算技术的飞速发展&#xff0c;高职院校亟需构建一个与行业需求紧密结合的云计算实验室和实训平台。以下是针对2024年高职院校云计算实验室建设的全面解决方案。 1、在高职云计算实验室的建设与规划中&#xff0c;首要任务是立足于云计算学科的精准定位&#xff0c;紧密…

如何通过SSH协议使用WinSCP实现Windows与Linux之间的远程公网文件传输

目录 ⛳️推荐 前言 1. Windows传输文件至Linux 2. WinSCP使用公网TCP地址连接 3. WinSCP使用固定公网TCP地址访问服务器 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 前…

2.5 计算机网络

声明&#xff1a;文章参考的《系统架构设计师教程&#xff08;第二版&#xff09;》&#xff0c;如有侵权&#xff0c;本人将立即修改和删除。 利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来&#xff0c;并依靠网络软件以及通信协议实现…

深入Python网络编程:基础、工具和实践

深入Python网络编程&#xff1a;基础、工具和实践 网络编程是Python应用领域中的一个强大且核心的部分&#xff0c;它为开发者提供了与互联网或其他网络设备进行交互的能力。无论是构建Web服务、APIs&#xff0c;还是创建网络客户端&#xff0c;Python都提供了丰富的库来简化这…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(九)-无人机服务区分离

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

Go语言--广播式并发聊天服务器

实现功能 每个客户端上线&#xff0c;服务端可以向其他客户端广播上线信息&#xff1b;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道&#xff0c;用户名以及网络地址信息 typ…

使用mybatis的statementHander拦截器监控表和字段并发送钉钉消息

新建mybatis的statementHander拦截器拦截器 类 面试题&#xff1a; 2.实现 解析Sql时引入JSqlParser JSqlParser 是一个 SQL 语句解析器。 它将 SQL转换为可遍历的 Java 类层次结构。 <dependency><groupId>com.github.jsqlparser</groupId><artifac…

正则表达式怎么控制匹配的字符串更近的一个

http((?!http).)*m3u8 正则表达式怎么控制匹配的字符串更近的一个 正则如何匹配最近的字符 正则如何匹配最近的两个字符 怎么控制只要离字符串b匹配更近一点的字符串a 解释 a.b&#xff0c;它将会匹配最长的以a开始&#xff0c;以b结束的字符串 a.?b匹配最短的&#xff…

7/13 - 7/15

vo.setId(rs.getLong("id"))什么意思&#xff1f; vo.setId(rs.getLong("id")); 这行代码是在Java中使用ResultSet对象&#xff08;通常用于从数据库中检索数据&#xff09;获取一个名为"id"的列&#xff0c;并将其作为long类型设置为一个对象…

【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例

国内很多城市目前划转至税务部门征收的非税收入项目已达 17 项&#xff0c;其征管方式为行政主管部门核定后交由税务 部门征收。涉税行政事业性收费受限于传统的管理模式&#xff0c;缴费人、业务主管部门、税务部门、财政部门四方处于 相对孤立的状态&#xff0c;信息的传递靠…

MySQL-日志-优化

目录 介绍一下mysql 的日志 redo log 和binlog 的区别及应用场景 redo log 和 binlog 在恢复数据库有什么区别? redo log 是怎么实现持久化的? redo log除了崩溃恢复还有什么其他作用? &#xff08;顺序写&#xff09; redo log 怎么刷入磁盘的知道吗&#xff1f; 两阶…

STM32+TMC2209控制步进电机正反转。

STM32F103ZET6TMC2209控制步进电机正反转 1. 步进电机介绍2 驱动器TMC2209介绍2.1 引脚图及其功能2.2 细分介绍2.3 TMC控制驱动器接法 3 控制器介绍3.1 确定控制引脚3.2 UBEMX配置3.2.1 GPIO配置3.2.2 NVIC配置3.2.3 RCC配置3.2.4 SYS配置3.2.5 USRAT2配置&#xff08;PS:没用上…

Ubuntu 22.04.4 LTS (linux) 安装certbot 免费ssl证书申请 letsencrypt

1 安装certbot sudo apt update sudo apt-get install certbot 2 申请letsencrypt证书 sudo certbot certonly --webroot -w 网站目录 -d daloradius.域名.com 3 修改nginx 配置ssl 证书 # 配置服务器证书 ssl_certificate /etc/letsencrypt/live/daloradius.域名.com/f…

Hadoop3:动态扩容之新增一台机器的初始化工作

一、需求描述 给Hadoop集群动态扩容一个节点 那么&#xff0c;这个节点是全新的&#xff0c;我们需要做哪些准备工作&#xff0c;才能将它融入集群了&#xff1f; 二、初始化配置 1、修改IP和hostname vim /etc/sysconfig/network-scripts/ifcfg-ens33 vim /etc/hostname2、…

电脑屏幕录制,分享3个方法,简单轻松录屏

相信您也经历过这种时刻&#xff0c;当您在浏览一个精彩绝伦的网页&#xff0c;或是观看一部实用的教学视频&#xff0c;突然&#xff0c;你发现了一个细节&#xff0c;想要分享给朋友或者留作日后回味。这时&#xff0c;电脑屏幕录制就像是一个神奇的相机&#xff0c;能够精准…

安全防御:防火墙基本模块

目录 一、接口 1.1 物理接口 1.2 虚拟接口 二、区域 三、模式 3.1 路由模式 3.2 透明模式 3.3 旁路检测模式 3.4 混合模式 四、安全策略 五、防火墙的状态检测和会话表技术 一、接口 1.1 物理接口 三层口 --- 可以配置IP地址的接口 二层口&#xff1a; 普通二层…

RHCA II之路---EX442-23

RHCA II之路---EX442-23 1. 题目2. 解题3. 确认 1. 题目 2. 解题 安装pcp yum install -y pcp解压日志包 tar xf recording.tar.gz cat localhost.localdomain/20141231.06.00.01.config 4. 确认哪个设备IO高 pmval -a localhost.localdomain/20141231.06.00.01.0 disk.de…