图解推荐系统算法向量

回顾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.基于协同过滤算法图书推荐系统的设计与实现.pdf论文题目:基于协同过滤算法的图书推荐系统的 设计与实现 摘要 随着网络和信息技术的飞速发展,电子图书资源的数量也在以惊人的速度增 长,越来越多的用户通过图书购买网站购买图书或在图书阅读网站上阅读电子书, 不管是网上购书还是网上读书都会面临一个相同的问题,如何从海量的图书资源 ...https://max.book118.com/html/2024/0217/7053136045006042.shtm
2.协同过滤(基于用户)的推荐系统.zip基于协同过滤的论文推荐系统协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前...https://www.iteye.com/resource/qq_44593353-12488115
3.基于Hadoop平台的个性化新闻推荐系统的设计AET基于用户的协同过滤推荐流程图如图1所示。当启动基于用户的协同过滤算法引擎后,指定一个用户为其推荐,系统将查询数据库中该用户浏览过的所有新闻,根据新闻中用户表查询浏览过的该新闻的相关用户,然后构建协同过滤算法用户的模型。整个过程封装在MyRecommender类的UserRecommender方法中,而在UserRecommender中封装了数据库的一...http://www.chinaaet.com/article/3000056950
4.推荐系统协同过滤算法基于用户的协同过滤(UserCF) 基本思想:找到用户 最相似的Top n的用户,然后综合相似用户对商品 的评价,得出用户 对商品 的评价; 用户相似度计算:可以采用余弦相似度、皮尔曼相关系数等;在对传统协同过滤改进的工作中,研究人员也是通过对相似度定义的改进来解决传统的协同过滤算法存在的一些缺陷。下式中, ...https://www.jianshu.com/p/0023df43622a
1.springboot毕设协同过滤推荐算法的图书推荐系统程序+论文协同过滤推荐算法作为一种有效的个性化推荐技术,能够根据用户的历史行为和其他用户的行为数据,智能地为用户推荐感兴趣的图书。然而,当前市场上的图书推荐系统仍存在推荐精准度不高、用户体验不佳等问题。因此,研究和开发基于协同过滤推荐算法的图书推荐系统,具有重要的现实意义和应用价值。 研究意义 本研究旨在通过改进和...https://blog.csdn.net/sheji308/article/details/143839311
2.基于协同过滤算法的高校图书馆图书推荐系统设计与实现基于协同过滤算法的高校图书馆图书推荐系统设计与实现,高校图书馆,个性化推荐,用户兴趣,协同过滤,推荐系统,自信息技术迅速发展以来,高校图书馆保存的图书信息不断增多,传统的信息检索技术已不能满足师生从海量藏书中快速查找、筛选感兴趣...https://wap.cnki.net/lunwen-1021021863.html
3.改进协同过滤算法的图书推荐系统设计与实现一种改进的协同过滤的商品推荐方法 薛亮等;计算机技术与发展; 基于改进协同过滤算法的推荐系统设计与实现 白林锋等;洛阳理工学院学报(自然科学版); 2021 用户协同过滤个性化图书推荐算法的改进与实现 刘军军;图书情报导刊; 季卡 - 期刊畅读卡 - ¥128 https://d.wanfangdata.com.cn/periodical/qbts202107007
4.基于机器学习与协同过滤的图书推荐系统(附python源码)基于机器学习与协同过滤的图书推荐系统 一、系统结构图 二、Demo示例 三、K-means聚类机器学习推荐算法 1、原理 从数据库中 1、首先获取书籍类别 2、获取用户注册时勾选喜欢的类别,勾选的为1,否则为0,得到一个样本数据 例:[1,0,1,0,0,...],[1,1,1,0,1,...],[0,0,1,0,0,...], ...https://blog.51cto.com/liangdongchang/5996937
5.GitHublist.jsp:主分类图书列表 info.jsp:图书详情页 serrchResult.jsp?:图书搜索结果页 /user(用户相关页面) login.jsp:用户登录 register.jsp:用户注册 home.jsp:用户喜爱分类选择 系统实现 算法(基于物品的协同过滤算法(ItemCF))设计与实现 基于物品的协同过滤算法主要有两步: ...http://www.github.com/Sicmatr1x/EMAN
6.武汉大学学报(理学版)推荐系统一直以来都是很活跃的研究方向。回顾了近5年来推荐系统涉及的数据集、算法、效果评估的研究发展状况,给出了推荐系统在互联网应用场景中的系统架构,从工业知识与经验以及工业生产工艺与工艺参数这两方面对推荐系统工业生产中的最新应用做了介绍。分析了推荐系统中http://xblx.whu.edu.cn/zh/article/20898290/
7.智能科学与技术智能信息系统开发方向专业方向介绍智能科学与技术专业智能信息系统开发方向旨在培养具备基于计算机技术、自动控制技术、智能系统方法、传感信息处理、大数据分析等科学与技术,能进行信息获取、传输、处理、优化、控制、组织等并完成系统集成的,具有相应智能系统工程实施能力,具备在机器人、智能信息系统等领域从事工程项目开发与应用设计、管理等工作的、具有宽口...https://www.greathiit.com/html/2021/direction_0507/1831.html