推荐算法review

本文将按照作者学习的顺序,对推荐算法进行一个综述性的介绍,可能会有些跳跃性。一则供自己后续不时翻阅,二则分享给读者。传播知识是一件很快乐的事情。

1. 基于相似度的方法(协同过滤)

基于相似度的方法是一类最为成功的推荐算法的代表。其在学术上已被广泛研究,并且在电商领域广泛应用。该类方法又可以进一步分为两类:基于用户相似度的推荐算法和基于物品相似度的推荐算法。基于用户相似度的推荐算法的基本假设是:在之前的判断上更相似的用户倾向于在之后的判断上也更相似。因此,对于一个目标用户对某个商品的评分,可以通过同该用户相似的其他用户对该商品的评分来估计。不同于基于用户相似度的推荐算法,基于物品相似度的推荐算法,给用户推荐与该用户之前收集的物品,更相似的物品。有时候,来自不相似的用户或者负面评分的商品也可以在推荐算法中发挥重要的作用,特别是数据集比较稀疏的时候。

基于用户相似度的推荐算法可以选取和该用户相似度大于某个阈值,或者最相似的前k个用户,其对物品评分的加权和作为该用户对物品评分的估计。通常为了消除用户评分的偏向性,例如有的用户偏向于评分高,有的用户偏向于评分低,会做一个移除均值的操作。

基于物品相似度的推荐算法类似,选取该用户已评分物品中最相似的物品,加权求和。基于物品相似度的算法相比于基于用户相似度的算法,更加静态,因为物品之间的相似度随时间变化较小,这使得基于物品相似度的推荐算法可以离线计算,缩短推荐结果计算时间。Slope one算法是一个简单的基于物品相似度的算法。其主要思想是去预测用户评分过的商品{a1, a2, ...}和当前需要预测的商品b的评分之差。而商品a和商品b评分之差可以通过用户评分矩阵估计,最简单的方法便是将用户评分矩阵中,所有评价过商品a和b的用户评分之差,相加后再归一化。有了商品a和b评分之差的估计,则可以通过简单的加权操作,计算用户对商品b的评分。

混合式协同过滤算法,同时考虑用户和物品相似度,从使用结果来看,混合式协同过滤不仅能够提高预测的精确度,对于稀疏数据集还具有更强的鲁棒性。

在基于相似度的方法中,最关键的问题是如何度量用户或者物品之间的相似度。在有用户显式评分的情况,相似度可以采用某些相关性度量,例如pearson相关系数。在没有用户显式评分的情况下,相似度可以采用基于用户和商品二部图(bipartite graph)计算的相似度,也称为structural similarity。有文章发现基于用户商品二部图结构的相似度比皮尔逊相关系数,能产生更好的推荐结果,特别是在输入数据比较稀疏的情况。基于用户商品二部图结构的相似度可以细分为:基于节点的相似度、基于路径的相似度、基于随机游走的相似度。

基于节点的相似度:最简单的基于节点的相似度计算,a和b的相似度是二部图中,a和b的公共邻居数量(Common Neighbor),记为CN。可以通俗的理解为:两个用户之间的相似度就是二者共同购买过的商品数量,两个商品之间的相似度即为购买过二者的用户数量。稍微复杂一些,可以考虑a和b在二部图中的度(degree)。例如:Jaccard系数。更精细一些,可以考虑a和b公共邻居的度,给度较大的邻居更低的权值。

基于路径的相似度:其基本假设是节点a和b,如果有越多的路径相连,越相似。在二部图中,连通同类节点之间的路径长度只能是偶数。

基于随机游走的相似度:通过在网络中执行随机游走,计算节点之间的相似度。平均往返时间,是从节点a随机游走到达b的平均步程,加上从节点b随机游走返回节点a的平均步程。节点a和b之间的平均往返时间越小,认为节点a和b之间的相似度越大,节点a和b的相似度可以取为平均往返时间的倒数。

相似度计算过程中,除了传统的用户商品交互关系和评分之外,还可以加入用户属性,例如年龄、性别、国籍、地理位置、职业等。也可以考虑商品内容信息,在文献中这也通常被称为基于内容的推荐,该类方法通过分析目标用户过去评估过的商品内容信息给出推荐结果,因此在基于内容的推荐中,推荐问题就是去搜索和目标用户喜欢的商品内容最相近的商品,在信息检索和文本挖掘中,最常用的文本特征是TF和IDF。由于协同滤波没有显式包括商品的特征信息,因此其面临稀疏性和冷启动问题,然而基于内容的推荐却没有考虑用户之间的喜好相似度。多种基于内容的推荐和协同滤波的混合算法被提出,其可以主要分为以下几类:单独基于内容推荐和协同滤波,然后结合二者的推荐结果;将内容特征加入协同滤波模型中;将协同滤波的特征加入基于内容的推荐模型中;发展一个更好的结合内容特征和协同滤波模型的统一模型。然而基于内容的推荐,只有在商品具有丰富的可提取内容信息时,才能有效运用,例如推荐书籍、文章、书签,但是对于视频、音乐、图片,基于内容的推荐就不适用。也可以考虑标注信息,和传统的基于层次结构的分类不同,标注系统允许用户自由的添加关键词,来管理他们的物品集合,这些关键词通常被称为标注,标签。通过标注信息,算法可以很容易的通过标注向量,计算用户和物品的相似度。为了减弱垃圾信息的影响,增强个性化的用户偏好,通常会使用加权的方法去改变标注的重要程度。

时间: 2024-10-11 08:14:42

推荐算法review的相关文章

推荐算法学习笔记

推荐算法举个简单的例子,比如有个用户进来看了一堆内容,我们把他看的所有的历史行为,嵌入到推荐引擎当中去.这个推荐引擎就会生成个性化的频道,下次这个用户再登录,或者都不用下一次,过几分钟之后,他看到的内容就会根据他最近发生的历史行为发生变化,这就是推荐系统的基本逻辑.这种方法叫基于用户行为的推荐,当然是有一定局限性的.比如你只有一个用户行为的时候,你就不知道他会不会看一个从来没人看过的内容,这其实就是长尾问题.当你可以积累越来越多的用户,用户的历史行为会有助于你对长尾内容的理解. 推荐系统本质是在

SQL自连接(源于推荐算法中的反查表问题)

"基于用户的协同过滤算法"是推荐算法的一种,这类算法强调的是:把和你有相似爱好的其他的用户的物品推荐给你. 要实现该推荐算法,就需要计算和你有交集的用户,这就要用到物品到用户的反查表. 先举个例子说明下反查表:甲喜欢的物品有:A.B.C:乙喜欢的物品有:B.E.F:丙喜欢的物品有:A.J.K:而你喜欢的物品是:A.J.M.反查表就是喜欢A物品的有你.甲.丙,喜欢J物品的有你.丙,喜欢M物品的只有你,这就是和你喜欢的物品有联系的用户.有了这个反查表,我们就可以看出和你有关系的用户只有甲和

阿里天池大数据之移动推荐算法大赛总结及代码全公布

移动推荐算法比赛已经结束了一个多星期了,现在写一篇文章来回顾一下自己的参赛历程. 首先,对不了解这个比赛的同学们介绍一下这个比赛(引用自官网): 赛题简介 2014年是阿里巴巴集团移动电商业务快速发展的一年,例如2014双11大促中移动端成交占比达到42.6%,超过240亿元.相比PC时代,移动端网络的访问是随时随地的,具有更丰富的场景数据,比如用户的位置信息.用户访问的时间规律等. 本次大赛以阿里巴巴移动电商平台的真实用户-商品行为数据为基础,同时提供移动时代特有的位置信息,而参赛队伍则需要通

协同过滤推荐算法

协同过滤推荐算法分为基于用户的协同过滤推荐UserCF和基于物品的协同过滤推荐ItemCF.介绍见<协同过滤的实现步骤>

今日头条核心技术“个性推荐算法”揭秘

今日头条核心技术"个性推荐算法"揭秘 最近面试华兴资本, 他们比较关注今日头条算法的实现, 今天特转载网上 今日头条算法解密 [IT168 评论]互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,而通常解决 1月20日,新生代移动互联网企业今日头条在北京国家会议中心举办了"算数·年度数据发布会",数据发布会的主题名为"算数",实际上指的是&

基于用户的协同过滤推荐算法原理和实现

在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是推荐系统领域最著名的算法. 本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人. 基本思想 俗话说"物以类聚.人以群分",拿看电影这个例子来说,如果你喜欢<蝙蝠侠>.<碟中谍>.&l

一个简单的基于内容的推荐算法

最近闲下来又开始继续折腾推荐系统了,声明一下,本文只是介绍一下最基础的基于内容的推荐系统(Content-based recommender system)的工作原理,其实基于内容的推荐系统也分三六九等Orz,这里只是简单的较少一下最原始的.最基本的工作流程. 基于内容的推荐算法思路很简单,它的原理大概分为3步: 1.为每个物品(Item)构建一个物品的属性资料(Item Profile) 2.为每个用户(User)构建一个用户的喜好资料(User Profile) 3.计算用户喜好资料与物品属

【天池竞赛系列】阿里移动推荐算法思路解析

赛题地址:http://tianchi.aliyun.com/competition/information.htm?raceId=1 登录就可以下载数据 从4月到7月,学习了非常多也收获了非常多 题目就不多说了.一句话表达就是依据过去一个月的行为预測14年12月19号的购买情况. 看题目貌似推荐算法.自然就有队伍想到用协同过滤什么的.当然效果不好. 首先是特征的问题,然后是这是基于行为的相似,不太类似用户和商品类似的ItemCF.UserCF,还有非常多其它的原因.比方我买过一部手机,难道还要

推荐算法

目前,主要的推荐方法包括:基于内容的推荐.协同过滤推荐.基于关联规则的推荐.基于效用的推荐.基于知识的推荐和组合推荐. 基于内容的推荐 基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料.在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象的特征,学习用户的兴趣,考察用户