推荐系统关键技术与发展趋势推荐系统2目录背景介绍1应用场景与原理算法介绍总结和展望234讨论53目录背景介绍1应用场景与原理算法介绍总结和展望234讨论54背景介绍什么是推荐系统•互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网上信息量的大幅增长,用户在面对大量信息时无法获得对自己真正有用的部分,对信息的使用效率反而降低了,这就是所谓的信息超载问题。•推荐系统是解决信息超载问题一个非常有潜力的办法。•推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。同时学术界对推荐系统的研究热度一直很高,逐步形成了一门独立的学科。5什么是推荐系统(cont.)•推荐系统就是根据用户的历史行为、社交关系、兴趣点、所处上下文环境等信息去判断用户当前需要或感兴趣的物品/服务的一类应用;•这里的推荐是去预测用户对某个他未曾“使用”过的物品(item)的喜好程度。这里的物品可以是电影、书籍、音乐、新闻;•推荐系统的核心任务是联系用户和信息。对用户而言,推荐系统能帮助用户找到喜欢的物品/服务,帮忙进行决策,发现用户可能喜欢的新事物;对商家而言,推荐系统可以给用户提供个性化的服务,提高用户信任度和粘性,增加营收。背景介绍6推荐问题的发展历史•推荐问题本身追溯久远•1994,Minnesota,GroupLens研究组论文•提出“协同过滤”的概念•推荐问题的形式化•影响深远(AnOpenArchitecture)netnewsRecommendationSystem•Item-based•MatrixFactorization•Othernon-CFalgorithms•HybridMethodsGroupLens:user-basedcollaborativefiltering•背景介绍7推荐问题的发展历史(cont.)•目前已广泛集成到很多商业应用系统中•尤其是网络购物平台中•Amazon:•Amazon网络书城的推荐算法每年贡献30个百分点的创收•Forrester:•电子商务网站留意到推荐信息的顾客,约1/3会依据推荐购买商品•Netflix:2/3被观看的电影来自推荐•Google新闻:38%的点击量来自推荐背景介绍8推荐系统的输入User+Item+Review•User&UserProfile•描述一个user的“个性”•两种构建UserProfile的方式•与ItemProfile类似,如性别、年龄、国别、年收入、活跃时间⋯⋯•难以与Item建立具体的联系•隐私问题•很少直接使用•利用ItemProfile构建UserProfile•PersonalizedIRrelated•Item&ItemProfile•电影:类别、导演、主演、国家、⋯⋯•新闻:标题、本文、关键词、时间、⋯⋯背景介绍9推荐系统的输入(cont.)•Review(user对item的评价)•最简单的Review:打分(Rating)•一般是1~5的星级•其它Review•显式•评论•评分•标签背景介绍10推荐系统的输出•推荐列表(RecommendationList)•按照特定的排序给出对该用户的推荐•推荐理由•与IR系统的不同•举例•e.g.购买了某物品的用户有90%也购买了该物品•该物品在某类别中人气最高•……•重要性•解决推荐的合理性问题•受到越来越多的重视背景介绍11目录背景介绍1应用场景与原理算法介绍总结和展望234讨论512Facebook用户数据泄漏事件131.电子商务•亚马逊个性化推荐应用场景图2-1:亚马逊的个性化推荐列表141.电子商务•亚马逊相关推荐应用场景图2-2:亚马逊的相关推荐列表,购买过这个商品的用户经常购买的其他商品图2-3:亚马逊的打包销售界面152.电影和视频网站•优酷应用场景图2-4:优酷的电影推荐列表163.个性化音乐网络电台•网易云音乐应用场景图2-5:网易云音乐个性化歌曲推荐的用户界面174.社交网络•Facebook应用场景图2-5:基于Facebook好友的个性化推荐列表185.其他•个性化阅读•GoogleReader的社会化阅读•基于位置的服务•Foursquare的探索功能(LBS,Location-basedService)•个性化邮件•Gmail的优先级邮箱功能•个性化广告•Facebook广告定向投放,将广告投放给它的潜在客户群应用场景19利用用户行为数据•用户行为在个性化推荐系统中一般分两种•显性反馈行为•用户明确表示对物品喜好的行为•隐性反馈行为•指的是那些不能明确反应用户喜好的行为(eg.页面浏览)•协同过滤算法•协同过滤是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。•基于用户的协同过滤算法(UserCF):给用户推荐和他兴趣相似的其他用户喜欢的物品。•基于物品的协同过滤算法(ItemCF):给用户推荐和他之前喜欢的物品相似的物品基本原理20利用用户行为数据•UserCF推荐步骤1)先找到和他有相似兴趣的其他用户基本原理余弦相似度公式物品-用户倒排表21利用用户行为数据•UserCF推荐步骤2)UserCF算法会给用户推荐和她兴趣最相近的K个用户喜欢的物品基本原理S(u,K):包含和用户u兴趣最接近的K个用户N(i):对物品i有过行为的用户集合Wuv:用户u和v的兴趣相似度Rvi:代表用户v对物品i的兴趣22利用用户行为数据•基于图的推荐算法•二分图又称作二部图,是图论中的一种特殊模型。•设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(iinA,jinB),则称图G为一个二分图。用户行为很容易用二分图表示,因此很多图的算法都可以用到推荐系统中。•路径数、路径长度、经过的顶点基本原理用户物品二分图模型23利用用户标签数据•通过一些特征(feature)联系用户和物品,给用户推荐那些具有用户喜欢的特征的物品。利用上下文信息•用户所处的上下文(context),包括用户访问推荐系统的时间、地点、心情等,对于提高推荐系统的推荐效果是非常重要的。利用社交网络•基于社交网络的推荐可以很好地模拟现实社会•美国著名的第三方调查机构尼尔森调查了影响用户相信某个推荐的因素。调查结果显示,90%的用户相信朋友对他们的推荐,70%的用户相信网上其他用户对广告商品的评论。基本原理24目录背景介绍1应用场景与原理算法介绍总结与展望234讨论525算法介绍14基于内容的推荐算法协同过滤推荐基于启发式方法的协同过滤算法基于模型的协同过滤算法基于图的协同过滤算法26算法介绍14基于内容的协同过滤算法127基于内容的推荐算法(Content-basedRecommendations)算法模型介绍根据用户过去喜欢的产品(item),为用户推荐和他过去喜欢的产品相似的产品。例如,一个推荐饭店的系统可以依据某个用户之前喜欢很多的烤肉店而为他推荐烤肉店主要包括如下三个步骤算法介绍ItemRepresentation:为每个item抽取出一些特征,用来表示此item;ProfileLearning:利用一个用户过去喜欢(及不喜欢)的item的特征数据,来学习出此用户的喜好特征(profile);RecommendationGeneration:通过比较上一步得到的用户profile与候选item的特征,为此用户推荐一组相关性最大的item。28基于内容的推荐算法(Content-basedRecommendations)算法介绍CONTENTANALYZER-----ItemRepresentationPRO-----ProFILTERINGCOMPONENT-----RecommendationGeneration29基于内容的推荐算法(Content-basedRecommendations)算法介绍ItemRepresentation:从Item中获取特征的步骤Item的属性可以分为结构化属性和非结构化属性两种,结构化的属性例如颜色、价格等可以直接当作特征;对于非结构化的属性例如Item的描述文本,需要先转化为结构化数据。对于文本类的非结构化数据,为了将其转化为结构化的数据,常用的办法有TF-IDF、词向量等方法。TF-IDF(即词频-逆向文件频率)是一种自动提取关键词的算法,通过该算法可以将文本转化为特征向量。词频(termfrequency,tf)指的是某一个给定的词语在该文件中出现的频率逆向文件频率(inversedocumentfrequency,idf)是一个词语普遍重要性的度量30基于内容的推荐算法(Content-basedRecommendations)算法介绍Pro:学习用户的偏好K近邻算法:对于一个新的item,K近邻方法首先找用户u已经评判过并与此新item最相似的k个item,然后依据用户u对这k个item的喜好程度来判断其对此新item的喜好程度。决策树算法:当item的属性较少而且是结构化属性时,可以使用决策树算法来学习用户的喜好特征。这种情况下决策树可以产生简单直观、容易让人理解的结果。因为可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。Rocchio算法:基于用户的行为(例如点击行为)生成一个偏好向量,通过对比偏好向量和item向量的相似度来度量用户对于该item的喜爱程度。RecommendationGeneration:生成推荐结果根据Item的特征和用户特征生成推荐结果的过程31基于内容的推荐算法(Content-basedRecommendations)优点:用户之间的独立性(UserIndependence):每个用户的profile都是依据他本身对item的喜好获得的,与他人的行为无关。这种用户独立性带来的一个显著好处是别人不管对item如何作弊(比如利用多个账号把某个产品的排名刷上去)都不会影响到自己。可解释性强(Transparency):方便向用户解释为什么推荐了这些产品给他。新的item可以立刻得到推荐(NewItemProblem):只要一个新item加进item库,它就马上可以被推荐,被推荐的机会和老的item是一致的。算法介绍32基于内容的推荐算法(Content-basedRecommendations)缺点:item的特征抽取一般很难(LimitedContentAnalysis):如果系统中的item是文档,可以比较容易地使用信息检索里的方法来抽取出item的特征。但很多情况下我们很难从item中抽取出准确刻画item的特征。无法挖掘出用户的潜在兴趣(Over-specialization):推荐只依赖于用户过去对某些item的喜好,它产生的推荐也都会和用户过去喜欢的item相似。如果一个人以前只看与推荐有关的文章,那只会给他推荐更多与推荐相关的文章,它不会知道用户可能还喜欢数码。无法为新用户产生推荐(NewUserProblem):新用户没有喜好历史,自然无法获得他的profile,所以也就无法为他产生推荐了。算法介绍33算法介绍14基于启发式的协同过滤算法234基于启发式协同过滤的推荐算法(collaborativefiltering)基于用户的协同过滤推荐:核心思想:基于用户对物品的偏好找到相邻的邻居用户,然后将相邻用户喜欢的物品推荐给当前用户。算法介绍35基于启发式协同过滤的推荐算法(collaborativefiltering)基于项目的协同过滤推荐:核心思想:基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,为他推荐相似的物品。算法介绍36基于启发式协同过滤的推荐算法(collaborativefiltering)相似度计算方法:常用皮尔逊相似度或余弦相似度来度量相似度皮尔逊相似度:余弦相似度:算法介绍37算法介绍基于模型的协同过滤算法338基