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.mzph.cn/news/872311.shtml

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

相关文章

Python中的数据结构:五彩斑斓的糖果盒

在Python编程的世界里&#xff0c;数据结构就像是一个个五彩斑斓的糖果盒&#xff0c;每一种糖果都有其独特的味道和形状。这些多姿多彩&#xff0c;形状和味道各异的糖果盒子包括了&#xff1a;List&#xff08;列表&#xff09;、Tuple&#xff08;元组&#xff09;、Diction…

如何保证数据库和redis的数据一致性

1、简介 在客户端请求数据时&#xff0c;如果能在缓存中命中数据&#xff0c;那就查询缓存&#xff0c;不用在去查询数据库&#xff0c;从而减轻数据库的压力&#xff0c;提高服务器的性能。 2、问题如何保证两者的一致性 先更新数据库在删除缓存 难点&#xff1a;如何保证…

微信小程序,订阅消息

微信小程序&#xff0c;订阅消息&#xff0c;完整流程 1.选择需要的模版 2.前端调用订阅消息 注&#xff1a;tmplIds&#xff1a;模板ID模版id,这里也可以选多个 wx.requestSubscribeMessage({tmplIds: [7UezzOrfJg_NIYdE1p*******],success (res) { console.log(res);wx.g…

一款简单的音频剪辑工具

Hello&#xff0c;大家好呀&#xff0c;我是努力搬砖的小画。 今天小画给大伙分享一款强大的音频剪辑工具--【剪画】&#xff0c;无需下载就能使用&#xff0c;支持对MP3、M4A、AAC等多种格式文件进行剪辑、分割、拼接、混音、变声、淡入淡出、音频格式转换、视频转音频、消除…

Hive 函数

分类 Hive 的函数分为两大类&#xff1a;内置函数&#xff08;Built-in-Functions&#xff09;、用户自定义函数&#xff08;User-Defined-Functions&#xff09;&#xff1b;内置函数可分为&#xff1a;数值类型函数、日期类型函数、字符串类型函数、集合函数等&#xff1b;用…

基于粒子滤波和帧差法的目标跟踪matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 帧差法 4.2 粒子滤波 4.3 粒子滤波与帧差法的结合 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 原重采样方法&#xff1a; 改进重采样方法&#xff1a; 2.算法…

1.30、基于卷积神经网络的手写数字旋转角度预测(matlab)

1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下&#xff0c;我们可以通过构建一个卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;来实现该任务。以下…

铁威马教程丨如何收集NAS的日志

适用版本: 适用于TOS 5.0.xxx、TOS5.1.xxx版本。 适用机型&#xff1a; TNAS型号&#xff08;除F2-210、F4-210&#xff09; 故障现象&#xff1a; 当TNAS宕机导致网页不可访问且PC无法搜索到该设备时&#xff0c;重启后TOS网页的系统报告缺失相关日志&#xff0c;不利于异常…

第一百六十八节 Java IO教程 - Java Zip文件

Java IO教程 - Java Zip文件 Java对ZIP文件格式有直接支持。通常&#xff0c;我们将使用java.util.zip包中的以下四个类来处理ZIP文件格式&#xff1a; ZipEntryZipInputStreamZipOutputStreamZipFile ZipEntry对象表示ZIP文件格式的归档文件中的条目。 zip条目可以是压缩的…

大部分公司都是草台班子,甚至更水

我第一份实习是在一家咨询公司&#xff0c;我以为我们能够给我们的客户提供极具商业价值的战略指导&#xff0c;但其实开始干活了之后&#xff0c;发现我们就是PPT和调研报告的搬运工。后来我去了一家互联网大厂&#xff0c;我以为我的身边全都是逻辑超强的技术和产品大佬&…

先“精益”,还是先“信息化”

在当今这个快速变化、竞争激烈的制造业时代&#xff0c;工厂的高效运营与持续创新成为了企业脱颖而出的关键。而工厂精益管理与信息化系统&#xff0c;正是这两把推动企业转型升级的利器&#xff0c;它们相辅相成。 精益管理&#xff0c;作为一种以消除浪费、提升价值为核心的…

[ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议&#xff08;VRISP 2024&#xff09;将于2024年8月2-4日在中国厦门召开。 VRISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…

【Leetcode】二十一、前缀树 + 词典中最长的单词

文章目录 1、背景2、前缀树Trie3、leetcode208&#xff1a;实现Trie4、leetcode720&#xff1a;词典中最长的单词 1、背景 如上&#xff0c;以浏览器搜索时的自动匹配为例&#xff1a; 如果把所有搜索关键字放一个数组里&#xff0c;则&#xff1a;插入、搜索一个词条时&#x…

SEO:6个避免被搜索引擎惩罚的策略-华媒舍

在当今数字时代&#xff0c;搜索引擎成为了绝大多数人获取信息和产品的首选工具。为了在搜索结果中获得良好的排名&#xff0c;许多网站采用了各种优化策略。有些策略可能会适得其反&#xff0c;引发搜索引擎的惩罚。以下是彭博社发稿推广的6个避免被搜索引擎惩罚的策略。 1. 内…

一文带你看懂SAP-HANA的基本架构与原理

注&#xff1a;本篇主要对SAP HANA做了总结与论述&#xff0c;如有错误欢迎读者提出并补充 创作不易,希望大家一键三连支持!!!♥♥♥ 创作不易,希望大家一键三连支持!!!♥♥♥ 创作不易,希望大家一键三连支持!!!♥♥♥ 目录 一. 背景引入1.1 硬件与数据库系统1.2 行业现状 …

AES Android IOS H5 加密方案

前景&#xff1a; 1、本项目原有功能RSA客户端对敏感信息进行加密 2、本次漏洞说是服务端返回值有敏感信息&#xff0c;需要密文返回 方案&#xff1a; 本次方案不算完美&#xff0c;还是有被劫持篡改的风险&#xff0c;但基本https证书认证加持&#xff0c;风险相对较小 …

Camera XTS 处理笔记

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 常用测试步骤&#xff08;下面均以CTS为例&#xff09; 打开终端&#xff0c;进入 cts 包 tools目录下执行 ./cts-tradefed 进入cts测试 :~/XTS/CTS/14…

永磁同步电机高性能控制算法(14)—— 有源阻尼电流环

1.前言 在之前的之后中已经发过一篇复矢量电流环和我们平时用的比较多的前馈补偿的电流环的对比&#xff0c;感觉复矢量电流环的效果还是挺明显的。 https://zhuanlan.zhihu.com/p/682880365https://zhuanlan.zhihu.com/p/682880365 当时在看文献的时候&#xff0c;复矢量电…

AI算法17-贝叶斯岭回归算法Bayesian Ridge Regression | BRR

贝叶斯岭回归算法简介 贝叶斯岭回归&#xff08;Bayesian Ridge Regression&#xff09;是一种回归分析方法&#xff0c;它结合了岭回归&#xff08;Ridge Regression&#xff09;的正则化特性和贝叶斯统计的推断能力。这种方法在处理具有大量特征的数据集时特别有用&#xff…

13、Shell自动化运维编程基础

弋.目录 RHCE板块一、为什么学习和使用Shell编程二、Shell是什么1、shell起源2、查看当前系统支持的shell3、查看当前系统默认shell4、Shell 概念 三、Shell 程序设计语言1、Shell 也是一种脚本语言2、用途 四、如何学好shell1、熟练掌握shell编程基础知识2、建议 五、Shell脚本…