Recommendersystems-Anoverview王显峰-2012年12月目录•Introduction•Data•Algorithms•Coldstartproblem•Systemarchitecture王显峰wxf0701@msn.com什么是推荐系统InformationoverloadForusersForitems本质:通过一定的方式联系用户和物品王显峰wxf0701@msn.com推荐VS搜索搜索应用场景:适合目的性比较明确的情况算法理念:注重结果之间的关系和排序,强调内容关联服务方式:有用户主导,包括输入查询词、选择结果、修改查询词等推荐应用场景:适合无法明确描述需求的情况算法理念:还需要研究用户模型和用户喜好,基于社会网络的个性化计算,强调个性化服务方式:有系统主导用户浏览顺序,引导用户发现需要的结果王显峰wxf0701@msn.com应用领域王显峰wxf0701@msn.com系统评测推荐系统用户内容提供商网站1.满意度Satisfaction•调查问卷;•点击率、停留时间、转化率2.精确度Accuracy•评分预测:RMSE/MAE•Top-N推荐:Precision/recall3.覆盖率Coverage•推荐出来的物品占总物品的比例•信息熵/基尼系数4.多样性Diversity•满足用户兴趣的广泛性•推荐列表中物品两两之间不相似的程度推荐系统需要兼顾所有参与者的利益推荐系统的利益相关方?王显峰wxf0701@msn.com新颖性Novelty•新颖的推荐是指给用户推荐那些他们以前未听说过的物品•用户调查法/推荐结果的平均流行度6.惊喜度Serendipity•高惊喜度意味着推荐结果和用户的历史兴趣不相似,但却让用户满意7.信任度Trust•用户相信推荐系统的程度,影响用户和推荐系统的交互性(调查问卷)•提供推荐系统的透明度,提供推荐解释/考虑用户的社交网络信息8.实时性Real-time•实时更新推荐列表来满足用户新的行为变化•能够将新加入系统的物品推荐给用户(冷启动问题)9.健壮度Robust•推荐系统抗击作弊的能力•尽量使用代价比较高的用户行为/进行攻击检测10.商业目标Business-objectives:销售额系统评测王显峰wxf0701@msn.com•Introduction•Data•Algorithms•Coldstartproblem•Systemarchitecture目录王显峰wxf0701@msn.com用户行为数据显性反馈数据隐性反馈数据用户兴趣明确不明确数量较少庞大存储数据库分布式文件系统实时读取实时有延迟正负反馈都有只有正反馈显性数据VS隐性数据NameNoteUser_id产生行为用户的唯一标识Item_id产生行为物品的唯一标识Behavior_type行为的类型(如购买、浏览)Context产生行为的上下文(如时间、地点、心情)Behavior_weight行为的权重(如时长、分数)Behavior_content行为的内容(评论文本、标签)用户行为数据的统一表示数据的重要性行为的普遍性准确性行为的成本反映兴趣的能力王显峰wxf0701@msn.com目录•Introduction•Data•Algorithms•Coldstartproblem•Systemarchitecture王显峰wxf0701@msn.com相关推荐算法•基于内容的推荐•基于用户的协同过滤•基于项目的协同过滤•SlopeOne•隐语义模型•基于图的模型•组合推荐王显峰wxf0701@msn.com基于内容(Content-based)的推荐1.使用特征提取方法得到物品的特征表示2.为每一个客户建立用户兴趣库,记录用户所喜好对象的特征3.通过匹配算法推荐具有类似特征的物品给用户优点无需依赖用户对物品的评价意见简单,解决部分冷启动问题不受评分稀疏性的约束能推荐新出现的产品和非流行产品问题受到信息获取技术的约束难以区分物品信息的品质无法产生跨种类的推荐,推荐缺乏新颖性王显峰wxf0701@msn.com协同过滤:基本思想协同过滤:用户齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,越来越满足自己的需求。(1)基于用户的协同过滤(User-basedCollaborativeFiltering)核心思想:给用户推荐和他兴趣相似的其他用户喜欢的物品a)找到和目标用户兴趣相似的用户集合b)找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户(2)基于项目的协同过滤(Item-basedCollaborativeFiltering)核心思想:给用户推荐和他之前喜欢物品相似的物品a)计算物品之间的相似度b)根据物品的相似度和用户的历史行为给用户生成推荐列表收集用户对物品的评分计算最近距离产生推荐结果王显峰wxf0701@msn.com协同过滤:构建用户-评分矩阵I1I2I3I4I5……InU1U2U3U4U5……Un显示评分:冷启动问题隐式评分:不确定性问题优点具有推荐新信息能力,可以发现用户潜在但自己尚未察觉的兴趣爱好能够推荐艺术品、音乐、电影等难以进行内容分析的产品问题冷启动问题评分稀疏性问题算法可扩展性问题王显峰wxf0701@msn.com协同过滤:计算最近邻居计算相似度欧几里德距离:Euclideandistance相关相似性:correlation-basedsimilarity余弦相似度:cosinesimilarity修正余弦相似度:adjustedcosinesimilarity确定最近邻的数量•相似度最高的前k个邻居•设定相似度阀值•两者的结合王显峰wxf0701@msn.com相似度计算性能优化:倒排表Aa,b,dBb,c,eCc,dDb,c,dEa,dAabcdea11b1cd1eBabcdeab11c1de1Cabcdeabc1d1eDabcdeab11c11d11eEabcdea1bcd1eabcdea12b1211c22d212e1王显峰wxf0701@msn.com协同过滤:产生推荐结果1.TOP-N推荐透过对用户A的最近邻用户进行统计,选择出现频率高且在A使用者的评分项目中不存在的,作为推荐结果2.关联推荐对最近邻用户的购买记录进行关联规则挖掘3.相似度加权根据邻居的相似度和对物品的评分,得到用户对评价值王显峰wxf0701@msn.com协同过滤:UserCFVSItemCF•应用领域:UserCF的推荐更加社会化,反映了用户所在小型群体中物品的热门程度,适用于时效性强,用户个性化兴趣不太明显的情况(新闻推荐);ItemCF的推荐更加个性化,反映了用户自己的兴趣传承,适用于长尾物品丰富,用户个性化需求强烈的情况(商品)•性能:UserCF适用于用户较少的场合,否则计算用户相似度矩阵的代价很大;而ItemCF正好相反,适用于物品数明显小于用户数的情况•实时性:UserCF用户有新行为,不一定造成推荐结果的立即变化;ItemCF正好相反,一定会导致推荐结果的实时变化•推荐理由:与UserCF相比,ItemCF利用用户的历史行为给用户做推荐解释,更容易让用户信服王显峰wxf0701@msn.com简单高效的SlopeOne对物品A的评分对物品B的评分用户134用户224用户34?平均值可以代替某两个未知个体之间的打分差异•事物A对事物B的平均差是:((3-4)+(2-4))/2=-1.5•用户3对物品B的评分:4–(-1.5)=5.5加权算法:𝑅𝐵=𝑚∗𝑅𝐴−𝑟𝐴→𝐵+𝑛∗(𝑅𝐶−𝑟𝐶→𝐵)𝑚+𝑛易于实现和维护运行时可更新高效率的查询响应对初次访问者的要求更少合理的准确性王显峰wxf0701@msn.com哈利波特问题在使用ItemCF算法进行推荐时,《哈利波特》这类特别热门的物品经常和几乎所有的书一起出现而被推荐给所有人。但这样的推荐是没有意义的,我们需要在推荐结果中清除太受欢迎的这类项目。ItemCF中计算物品相似度的公式𝑤𝑖𝑗=|𝑁(𝑖)∩𝑁(𝑗)||𝑁(𝑖)||𝑁(𝑗)|•加大对热门物品的惩罚𝑤𝑖𝑗=|𝑁(𝑖)∩𝑁(𝑗)||𝑁(𝑖)|1−𝛼|𝑁(𝑗)|𝛼;𝛼∈[0.5,1]•对不同领域的物品降低权重两个不同领域的最热门物品往往具有较高的“相似性”王显峰wxf0701@msn.com隐含语义模型通过隐含特征(LatentFactor)联系用户兴趣和物品a)得到用户的兴趣分类•如何给物品分类?•如何确定用户对那些类的物品感兴趣?兴趣程度如何?b)从用户兴趣分类中挑选他可能喜欢的物品•对于给定兴趣类,物品在其中的权重如何确定?•对于给定的兴趣类,选择那些物品推荐给用户?BACD1234XYZ王显峰wxf0701@msn.com基于图的模型用户行为数据的二分图表示BACDabdacbecdeBACDabcde•度量用户顶点X和与X没有直接相连的物品节点在图上的相关性•相关性越高的物品在推荐列表中的权重就越高王显峰wxf0701@msn.com基于图的模型相关性高的一对顶点一般具有的特征:•两个顶点有很多路径相连•连接两个顶点的路径长度都比较短•连接两个顶点的路径不会经过出度比较大的顶点顶点A与e之间的相关性要高于顶点A与c之间的相关性(A,d,D,e)对顶点A与e之间相关性的贡献要小于(A,b,C,e)基于随机游走的PersonalRank算法BACDabcdeBACDabcdeBACDabcdeBACDabcde王显峰wxf0701@msn.com组合推荐(1)加权(weight):采用多种推荐技术得到对某一项目的预测评分,根据权重相加得到总评分,以此得出推荐结果。(2)变换(switch):随着问题背景和实际情况的变化,采用不同的推荐技术。(3)混合(mixed):同时采用多种推荐技术给出多种推荐结果,为用户提供参考。(4)层叠(cascade):先用一种推荐技术产生粗糙的推荐结果,再采用第二种推荐技术在此基础上进一步作更精确的推荐。更多……各种推荐方法都有优缺点,通过组合避免或弥补各种推荐技术的弱点王显峰wxf0701@msn.com目录•Introduction•Data•Algorithms•Coldstartproblem•Systemarchitecture王显峰wxf0701@msn.com