图解推荐系统算法向量

回顾20多年前推荐算法提出的90年代,也是中国互联网起步的时候,浏览门户网站即可满足我们对数字世界探索的大部分需求,彼时是‘人找物’,系统推荐的应用空间不大。

一、系统初探

那么推荐系统是如何运转的呢?为什么它知道我在某宝上要买的是咖啡而不是啤酒,然后在App的首页呈现?

回答这个问题,我们先从推荐系统流程的角度着手了解:系统将一个物品/内容推荐给用户主要经历两个步骤,即召回与排序。

在购物网站上会有很多与你兴趣相似的用户,你们有着类似的喜好,Ta喜欢的东西大概率你也会觉得不错,通过行为统计寻找你们的相似度就可以找到那些同类用户喜欢的而你还没有接触过的商品。

另外,商品之间也有相似的属性,比如《魔鬼经济学》与《牛奶可乐经济学》是有关行为经济学的著作,一般我们就会见到电子书网站会为看过《魔鬼经济学》的读者推荐《牛奶可乐经济学》。

如上描述的把相似的用户与相似的物品匹配起来,从而筛选出用户感兴趣物品的过程就是召回。

召回阶段取回的物品数量通常都比较大,可能在十万百万量级以上,进一步地,推荐引擎结合多种因素考量(比如业务特征、人工干预等),精细筛选出Top100款甚至更少的物品推荐给用户,这就是排序的过程。

从系统流程可以看出,相似度是推荐系统的核心环节。那么用户之间、物品之间的相似度怎么定义、如何计算呢?

二、找到相似的用户/物品1.相似度计算

对于推荐系统来说,通常是基于向量来确定两两用户或两个物品是否相似,即系统首先要把用户(用户属性或用户行为偏好)、物品(物品特征)向量化。

比如有5件商品:夹克、连衣裙、球鞋、网球拍、贝雷帽,1表示用户购买过该商品,0表示未购买过。用户P买过夹克、球鞋、网球拍,用户Q买过连衣裙、网球拍、贝雷帽,则用向量表示用户P和用户Q就是R(P)=(1,0,1,1,0),R(Q)=(0,1,0,1,1)。

那么如何计算两个用户是否相似呢?

让我们回忆一下中学关于两个向量u、v的余弦相似度公式:

利用公式,可以知道用户P(1,0,1,1,0)和用户Q(0,1,0,1,1)之间的相似度为:

2.最近的邻居

所谓物以类聚、人以群分,系统当然不需要按相似度遍历所有数据,一般推荐引擎只需要寻找一批与目标(用户/物品)最相似的‘邻居’组成一类群体进而做物品推荐。

接下来看看最近的邻居是如何确定的:以用户间的相似度举例,想象一个二维平面,每个用户代表一个点,用户(点与点)之间的距离就是相似度的大小;计算用户①的若干个最近邻,一种方案就是以目标用户①为圆心,设定一个距离K,落在半径K的圆中的所有用户就是①最近的‘邻居’。

三、推荐算法类型

上面介绍了如何计算相似度和寻找最相似的‘邻居’,接下来就要探寻推荐系统的核心——推荐算法。通常,推荐算法可以分为三类:基于属性相似度的推荐、基于协同过滤推荐、基于模型推荐。

1.基于属性相似度的推荐

基于属性相似度的推荐是一种基础的推荐算法,又可分为按用户属性的相似度推荐和按物品属性的相似度推荐。

用户属性的相似度推荐,即按用户的年龄、性别、地域等基础特征建模,计算用户之间的相似度,把用户A喜欢的物品推荐给与他类似的用户B。

物品属性的相似度推荐,即按物品的属性特征(以音乐举例,如音乐类型、歌手、播放时长等)建模,用户喜欢钢琴曲,而小提琴曲与钢琴曲都可以划分为轻音乐,则系统把小提琴曲推荐给用户。

上述基于属性相似度的推荐,好处是推荐解释性较强,易于理解,且不需要过多依赖用户行为的历史数据,对于长尾/上新的物品都能做到很好的曝光。

2.基于协同过滤推荐

协同过滤,顾名思义就是指由相似兴趣的用户们组成‘邻居’互相协作,通过不断的与系统发生交互从而持续过滤掉用户不感兴趣的内容,它是一种群体智慧效应的体现。

从用户与内容的角度又可划分为:基于用户的协同过滤(UserCF)和基于物品的协同过滤(ItemCF)。

1)基于用户的协同过滤(UserCF)

基于用户的协同过滤是通过用户的行为去寻找与其相似的用户进行推荐,与上一节基于用户属性的推荐对比,两者的核心区别是计算相似度的定义不同,基于用户属性推荐只考虑用户的静态特征,而UserCF是在用户的历史行为偏好中计算相似度。

基于用户协同过滤预测用户u对物品i的兴趣程度p(ui)的公式如下:

其中,S(u,K)是包含和用户u兴趣最接近的K个用户,N(i)是对物品i有过行为的用户集合,w(uv)是用户u与用户v的兴趣相似度,r(vi)代表用户v对物品i的行为兴趣评分。

从公式可以看出,基于用户的协同过滤算法主要有两步:一是用户之间的相似度,二是用户与内容之间的行为偏好分数,通过图形拆解算法的计算路径如下图。

2)基于物品的协同过滤(ItemCF)

基于物品的协同过滤是通过用户对物品的行为偏好找到与用户喜欢物品的相似物品进行推荐,简单理解即喜欢物品1的用户大多也喜欢物品2。

基于物品的协同过滤预测用户u对物品j的兴趣程度p(uj)的公式如下:

其中,N(u)是用户喜欢的物品的集合,S(j,K)是和物品j最相似的K个物品的集合,w(ji)是物品j和i的相似度,r(ui)是用户u对物品i的兴趣分数。

同UserCF,基于物品的协同算法主要也是两步:一是物品之间的相似度,二是用户产生过偏好行为的物品评价分数,图示计算路径如下。

3.基于模型的推荐

基于模型的推荐主要是利用机器学习的方法挖掘用户、物品、用户历史行为偏好之间的关系,从而找到用户可能感兴趣的物品进行推荐。

机器学习包括深度学习的推荐算法在业界已经提出了很多种,本文仅介绍一种经典的模型——基于隐语义的模型推荐(LFM)。如下图形式是把所有用户和物品按用户对物品的偏好程度画成一张表中,推荐系统的工作就是要预测那些表格中的空白值。

同样,物品也可以按这些用户偏好(品牌、尺寸、型号、价格)进行分类。

隐语义模型就是要找到用户-偏好、物品-偏好这两个关系矩阵(如下图),然后通过矩阵计算的方式合成用户-物品的完整矩阵,求得用户对物品的推荐分数。

系统求解的过程是随机生成初始矩阵,推荐结果要与原始数据矩阵中有值的项尽可能相近,这就转换成了机器学习求最优解的问题。

相比协同过滤,无论UserCF或ItemCF,能够影响推荐效果的往往是少部分的用户行为和物品,而隐语义模型则通过机器挖掘隐藏在数据中的偏好从而进行推荐,通常能更充分的探寻到数据中的信息,推荐效果也更准确。

但因为偏好信息没有具体物理意义,所以其缺点也同样明显,无法对推荐结果做出合理的解释。

四、谈信息茧房

至此,推荐系统的大致原理和算法模型已经介绍完毕了。

在结束之前,最后简单聊聊信息茧房问题。在当前的互联网世界中,无论图文信息流亦或短视频应用,到处充斥着个性化推荐算法,很多用户担心终将会被禁锢在由狭隘偏好所编制的茧牢中。

其实破解信息茧房就是在回答一个问题,即什么是好的推荐系统?

意料之外,情理之中,也许是对推荐系统最好的诠释。

作者:策略伽;公众号:策略伽

本文由@策略伽原创发布于人人都是产品经理,未经作者许可,禁止转载。

THE END
1.相关商品推荐:基于协同过滤的推荐算法二、 协同过滤推荐算法的实现步骤 数据收集 首先需要收集用户的行为数据,比如购买记录、产品评分、点击记录等,构建用户-商品的行为数据集。 相似度计算 接下来需要计算用户或商品之间的相似度,可以采用余弦相似度、Pearson相关系数、Jaccard相似系数等方法进行计算,以找出相似的用户或商品。 https://www.jianshu.com/p/396b7c403ee4
2.前深度学习时代基于物品相似度进行推荐的协同过滤算法 ItemCF 通过计算共现矩阵中物品列向量的相似度得到物品之间的相似矩阵,再找到用户的历史正反馈物品的相似物品进行进一步排序和推荐,ItemCF的具体步骤如下: (1)基于历史数据,构建以用户(假设用户总数为m mm)为行坐标,物品(物品总数为n nn)为列坐标的m × n {m\times n}m...http://www.kwrg.cn/news/121236.html
3.协同过滤推荐研究综述AET目前,应用于推荐系统的算法主要分三类:基于内容的过滤推荐算法、协同过滤推荐算法及混合推荐算法。 基于内容的过滤推荐算法[2]是对用户的兴趣进行分析,构成用户配置文件,并将其和文件集中的文件用共同的特征变量表示。最后比较两者的相似度来为用户进行推荐。随后,通过用户的反馈信息,不断更新用户配置文件,以此来动态地...http://www.chinaaet.com/article/212308
4.推荐算法——基于物品的协同过滤算法基于用户的协同过滤算法在用户增长的时候,相似度计算的计算会越来越困难。基于物品的算法给用户推荐他们之前喜欢的物品相似的物品。 算法步骤 计算物品之间的相似度 根据物品的相似度和用户的历史行为给用户生成推荐列表 相似度公式如下: wij=|N(i)∩N(j)||N(i)||N(j)|?...https://www.imooc.com/article/27099
5.基于协同过滤算法图书推荐系统的设计与实现.pdf本系统分前台管理和后台管理两部分。前台用户在登录后执行的操作有查看 个性化推荐列表、收藏图书、阅读图书、评论图书、修改个人信息等。其中个性 化图书推荐列表应用了协同过滤算法,该算法根据用户收藏的图书类型,利用余 弦相似度公式计算出图书类型之间的相似度,统计当前用户收藏列表中每种图书 ...https://max.book118.com/html/2024/0217/7053136045006042.shtm
1.推荐系统前深度学习时代推荐算法(1):协同过滤(CF)以上两者分类的的依据是它们如何计算相似度和依据相似度做推荐的部分。(听到这你可能还有点懵,先别急~,继续往后面看) 基本思想: 基于用户的协同过滤推荐:通过计算用户相似度,找到与目标用户行为相似的其他用户,推荐相似用户正反馈交互过的物品。 https://blog.csdn.net/qq_58872188/article/details/143798469
2.协同过滤算法腾讯云开发者社区混合型协同过滤结合了基于用户和基于物品的协同过滤算法,充分利用它们的优点,以提高推荐系统的准确性和鲁棒性。 3.2 算法步骤 通过用户-物品矩阵,同时计算用户相似度矩阵和物品相似度矩阵。 综合两个矩阵的信息,生成最终的推荐列表。 3.3 优缺点 优点:综合了基于用户和基于物品的优势,提高了推荐系统的性能。 https://cloud.tencent.com/developer/article/2389581
3.线性化数学模型11篇(全文)实现协同推荐主要有三个步骤:步骤1:收集用户偏好数据。步骤2:计算相似度,找到相似用户群或者物品。步骤3:依据推荐策略,进行推荐计算。协同过滤推荐算法根据相似度比较对象的不同,可分为基于用户的协同推荐和基于物品的协同推荐。 (1)基于用户的协同推荐算法。根据历史数据,计算所有用户对产品的喜好程度,并由此找到目标...https://www.99xueshu.com/w/ikey77ax5ud4.html
4.java商城实现协同过滤推荐商品代码实现协同过滤推荐算法代码...基于用户的协同过滤算法主要包含以下两个步骤: A. 搜集用户和物品的历史信息,计算用户u和其他用户的相似度,找到和目标用户Ui兴趣相似的用户集合N(u) B.找到这个集合中用户喜欢的,且目标用户还没有听说过的物品推荐给目标用户。 适用性 由于需计算用户相似度矩阵,基于用户的协同过滤算法适用于用户较少的场合; 由于...https://blog.51cto.com/u_12855/8559622
5.基于改进RFM模型的直播平台用户细分及个性化推荐方法研究用户-主播价值偏好,构建用户评分矩阵,结合协同过滤算法开展推荐实验.基 于国内某主流直播平台的后台数据进行研究,结果表明,基于RFMT Segmentation的用户细分方法更适 用于实际应用的推荐,细分后的各类群体推荐效果大幅提升.RFMT模型增加了对用户粘性和长期价值 的考虑,更适应直播平台的特点,所提出的基于直播平台的用户细分...http://ci1st.istis.sh.cn/CN/PDF/954
6.相似度检测(精选十篇)在实际应用中, SOM网络的识别率与初始权值、网络的神经元个数、学习样本集、邻域定义等诸多因素有关, 而且在网络竞争的过程中, 由于是无监督算法, 会出现样本类别划分过细等问题, 为此本文提出了基于相似度检测的SOM网络模型。该模型从模拟人脑的工作方式出发, 依据相似度检测准则, 设置了包含多个获胜神经元的“兴...https://www.360wenmi.com/f/cnkeyuf6k6cp.html
7.内容算法时代,如何引爆用户流量?基于用户的协同,即切合了上面的例子,其基础思路分为两步:找到那些与你在某一方面口味相似的人群(比如你们都是新手爸妈,倾向于同一种教育理念),将这一人群喜欢的新东西推荐给你。 基于物品的协同,其推荐的基础思路是:先确定你喜欢物品,再找到与之相似的物品推荐给你。只是物品与物品间的相似度不是从内容属性的角度...https://36kr.com/p/1722509279233