《推系统 第2版》 课件全套 刘宏志 Lec1 推系统-概述-Lec11 社交推_第1页
《推系统 第2版》 课件全套 刘宏志 Lec1 推系统-概述-Lec11 社交推_第2页
《推系统 第2版》 课件全套 刘宏志 Lec1 推系统-概述-Lec11 社交推_第3页
《推系统 第2版》 课件全套 刘宏志 Lec1 推系统-概述-Lec11 社交推_第4页
《推系统 第2版》 课件全套 刘宏志 Lec1 推系统-概述-Lec11 社交推_第5页
已阅读5页,还剩284页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

推荐系统推荐系统动机(为什么要学)利用推荐系统可以解决实际应用难题使得平台、用户、供应商等多方受益内容(主要讲什么)各种个性化推荐系统的框架与流程常用推荐算法的思想、原理和实现目标(能学到什么)理解常用推荐算法的原理、思想学会根据应用和场景选择或构造合适的推荐算法实践通过推荐系统解决实际应用问题信息爆炸:每分钟…数据摩尔定律:全球在2010年进入ZB(万亿GB)时代,数据量两年翻一番/learn/data-never-sleeps-8

信息超载多即是少少即是多推荐系统发展背景:互联网技术迅猛发展→信息爆炸→信息超载推荐系统:一种主动的信息过滤系统将信息过滤过程由“用户主动搜索”转变为“系统主动推送”一种个性化的双边匹配系统帮助用户发现其所喜好的或需要的小众、非主流商品帮助商户将其商品展现在对它们感兴趣的用户面前搜索:满足用户的主动需求用户知道自己要什么用户知道该如何描述推荐:挖掘并满足用户的潜在需求项目(Items)搜索推荐商品、电影、音乐、新闻、工作岗位、…推荐系统发展背景:互联网技术迅猛发展→信息爆炸→信息超载互联网上的物品普遍存在长尾(longtail)现象推荐系统:一种主动的信息过滤系统将信息过滤过程由“用户主动搜索”转变为“系统主动推送”一种个性化的双边匹配系统帮助用户发现其所喜好的或需要的小众、非主流商品帮助商户将其商品展现在对它们感兴趣的用户面前亚马逊销量的43%:传统实体店所售书籍亚马逊销量的57%:只在亚马逊上销售的书籍按销售量排序的物品种类销售量销量小但种类多的产品或服务由于总量巨大,累积总收益超过主流产品的现象推荐系统发展背景:互联网技术迅猛发展→信息爆炸→信息超载互联网上的物品普遍存在长尾(longtail)现象推荐系统:一种主动的信息过滤系统将信息过滤过程由“用户主动搜索”转变为“系统主动推送”一种个性化的双边匹配系统帮助用户发现其所喜好的或需要的小众、非主流商品帮助商户将其商品展现在对它们感兴趣的用户面前推荐系统“Weareleavingtheageofinformationandenteringtheageofrecommendation.”

—ChrisAndersonin“TheLongTail”推荐系统的价值Netflix:2/3的电影观看时长Amazon:35%的销售量GoogleNews:38%的新闻点击量……推荐系统的价值从平台的角度帮助其提高用户的满意度和忠诚度,同时给其带来丰厚的收益从用户的角度帮助其解决信息超载问题,提高其决策效率,提升其幸福感从供应商的角度帮助其进行精准的商品推销,提高销售量,降低营销成本从行业的角度帮助其更加多元化、健康的发展,帮助尾部商家得以生存和发展推荐系统动机(为什么要学)利用推荐系统可以解决实际应用难题使得平台、用户、供应商等多方受益内容(主要讲什么)个性化推荐系统的框架与流程常用推荐算法的思想、原理和实现目标(能学到什么)理解常用推荐算法的原理、思想学会根据应用和场景选择或构造合适的推荐算法实践通过推荐系统解决实际应用问题推荐系统的发展历史1992:Xerox公司开发出基于协同过滤的内部新闻组文档推荐系统Tapestry1994:MIT和明尼苏达大学推出基于协同过滤的跨网络新闻推荐GroupLens1998:Amazon推出基于项目的协同过滤算法,实现个性化的线上商品推荐2003:Google开创AdWords盈利模式,根据用户搜索关键词推荐相关广告2007:Google为AdWords添加了个性化元素2006~2009:Netflix主办百万美金大奖赛,将其电影推荐准确率提高10%

……个性化推荐在音乐、求职等诸多领域得到了成功应用,并慢慢成为各种互联网应用的一种标配“IfIhave3millioncustomersontheWeb,Ishouldhave3millionstoresontheWeb”--JeffBezos,AmazonCEO个性化推荐系统框架个性化推荐映射函数f:U×I→R输入:用户画像(U):评分、偏好、人口统计学资料、上下文等项目画像(I):项目描述(属性)、内容等计算:兴趣度或相关度(R),用于排序输出:针对每个用户,给出项目排序列表推荐系统用户画像对用户的特点和兴趣进行建模从用户相关的各种数据中挖掘或抽取出用户在不同属性上的标签例如:年龄、性别、职业、婚姻状态、兴趣、未来可能行为等主要过程:标签体系的建立:层次化结构,逐层细分标签的获取(赋值):事实标签:既定事实,可从原始数据中直接得到,如:性别模型标签:用户潜在特性,通过模型计算得出,如:用户兴趣预测标签:对用户未来行为的预测,例如:用户流失预测偏好品牌偏好主题购买频率消费水平收入状况学历婚否职业年龄性别基本属性消费特征兴趣偏好用户画像对用户的特点和兴趣进行建模从用户相关的各种数据中挖掘或抽取出用户在不同属性上的标签例如:年龄、性别、职业、婚姻状态、兴趣、未来可能行为等主要过程:标签体系的建立:层次化结构,逐层细分标签的获取(赋值):事实标签:既定事实,可从原始数据中直接得到,如:性别模型标签:用户潜在特性,通过模型计算得出,如:用户兴趣预测标签:对用户未来行为的预测,例如:用户流失预测项目画像对项目的特点进行建模从项目相关的各种数据中挖掘和抽取出项目在不同属性上的标签实现对项目(例如商品、服务等)的精准的定位项目画像的过程和用户画像相同标签体系的建立(需要领域知识)和标签的获取(赋值)项目标签:项目自身内容和属性相关的标签和用户(行为)相关的一些标签,例如:目标用户群推荐系统目标是将用户和项目进行匹配,因此用户画像和项目画像会相互影响推荐系统动机(为什么要学)利用推荐系统可以解决实际应用难题使得平台、用户、供应商等多方受益内容(主要讲什么)个性化推荐系统的框架与流程常用推荐算法的思想、原理和实现目标(能学到什么)理解常用推荐算法的原理、思想学会根据应用和场景选择或构造合适的推荐算法实践通过推荐系统解决实际应用问题推荐算法分类算法思想基于人口统计学、基于内容、协同过滤、基于知识、混合推荐应用问题评分预测vs.Top-N推荐目标函数点级排序学习vs.对级排序学习vs.列表级排序学习用户参与单边推荐vs.双边匹配数据表示矩阵表示vs.特征向量vs.图模型基于算法思想的分类基于人口统计学、基于内容、协同过滤、基于知识的推荐基于人口统计学:根据用户基本信息推荐相似用户喜爱的项目基于内容:根据用户过去喜好的项目推荐相似的项目协同过滤:根据用户行为信息推荐相似用户喜爱的项目基于关联规则:啤酒&尿布(数据挖掘)基于知识:基于(偏好)约束、本体推理基于算法思想的分类基于人口统计学、基于内容、协同过滤、基于知识的推荐基于人口统计学:根据用户基本信息推荐相似用户喜爱的项目基于内容:根据用户过去喜好的项目推荐相似的项目协同过滤:根据用户行为信息推荐相似用户喜爱的项目基于关联规则:啤酒&尿布(数据挖掘)基于知识:基于(偏好)约束、本体推理基于算法思想的分类基于人口统计学、基于内容、协同过滤、基于知识的推荐基于人口统计学:根据用户基本信息推荐相似用户喜爱的项目基于内容:根据用户过去喜好的项目推荐相似的项目协同过滤:根据用户行为信息推荐相似用户喜爱的项目基于算法思想的分类基于人口统计学、基于内容、协同过滤、基于知识的推荐基于人口统计学:根据用户基本信息推荐相似用户喜爱的项目基于内容:根据用户过去喜好的项目推荐相似的项目协同过滤:根据用户行为信息推荐相似用户喜爱的项目基于知识:根据用户的显式需求和专业领域知识进行推荐

匹配度度量:(Price:LIB;Size:CIB;RAM:MIB;GPU:0-1匹配)推荐方法优点缺点基于人口统计学不需要历史数据没有冷启动问题个性化程度低推荐效果一般基于内容结果直观,容易解释新用户问题推荐结果缺乏新颖性协同过滤发现新的兴趣点不需要领域知识个性化、自动化程度高数据稀疏问题新用户问题基于知识没有冷启动问题结果具有可解释性知识获取困难混合推荐:通过多种技术的组合来避免或弥补各自的弱点基于应用问题的分类评分预测目标:根据用户历史评分和其他相关数据,预测用户对候选项目评分值评价指标:预测评分和真实评分之间的偏差,例如:均方根误差

RMSETop-N推荐目标:根据用户历史行为(如:点击)和其他相关数据,预测用户对候选项目的感兴趣程度,并据此对项目排序以给出排在最前N个的项目列表评价指标:分类准确度和排序合理性,例如:精确度、召回率、AUC、nDCG等推荐系统动机(为什么要学)利用推荐系统可以解决实际应用难题使得平台、用户、供应商等多方受益内容(主要讲什么)各种个性化推荐系统的框架与流程常用推荐算法的思想、原理和实现目标(能学到什么)理解常用推荐算法的原理、思想学会根据应用和场景选择或构造合适的推荐算法实践通过推荐系统解决实际应用问题协同过滤基本思想协同过滤(CollaborativeFiltering,CF):利用集体智慧,借鉴相关人群的观点进行推荐基本假设:过去兴趣相似的用户在未来的兴趣也会相似相似的用户会产生相似的(历史)行为数据偏好相似推荐算法分类Top-N推荐vs.评分预测输入(输出):隐式的0-1偏好vs.显式的评分基于邻域的方法vs.基于模型的方法利用局部(邻域)信息vs.基于全局信息在内存中存储(记忆)整个数据集vs.训练出抽象模型协同过滤基于邻域(记忆)基于用户基于项目图扩散基于模型矩阵分解关联规则机器学习协同过滤的一般步骤收集数据目标:收集能反映用户偏好的数据寻找邻域:相似的用户(或项目)计算推荐结果:根据邻域信息计算推荐结果收集数据计算推荐结果寻找邻域训练模型显式反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作收集用户行为数据用户行为类型特征作用评分

显式整数,取值[0,n]精确的用户偏好点击流

隐式一组用户点击一定程度上反映用户的注意力和喜好

页面停留时间隐式一组时间信息一定程度上反映用户的注意力和喜好保存书签

隐式布尔值,取值0或1较精确的用户偏好标记标签(Tag)隐式一些词语可以分析出用户的情感和兴趣

购买

隐式布尔值,取值0或1明确的用户兴趣对比分析:

数量、质量基于用户的协同过滤:User-CF基于用户的CF(User-CF)基本思想:基于用户对项目的历史偏好找到相邻(相似)的用户将邻居(相似)用户喜欢的项目推荐给当前用户假设:与我兴趣相似的用户喜欢的项目,我也会喜欢关键:寻找相似用户用户相似度度量用户相似度

用户/项目项目a项目b项目c项目d项目e用户A?√?√?用户B√√√用户C√√√用户D√√用户相似度:示例计算假设:用户A购买过项目{b,d},用户B购买过{a,b,c},…

用户项目列表Ab,dBa,b,cCa,b,dDa,e

兴趣度预测

用户/项目项目a项目b项目c项目d项目e用户A?√√用户B√√√用户C√√√用户D√√假设:用户A购买过项目{b,d},用户B购买过{a,b,c},…目标:为用户A推荐项目

推荐排序:p(A,a)>p(A,c)>p(A,e)User-CF:计算推荐结果用户项目列表Ab,dBa,b,cCa,b,dDa,e项目a项目b项目c项目d项目e用户A?√?√用户B√√√用户C√√√用户D√√

基于User-CF的推荐系统

用户购买项目Ab,dBa,b,cCa,b,dDa,eABCDA11/42/30B1/411/21/4C2/31/211/4D01/41/41用户邻域AB,CBA,CCA,BDB,C历史行为数据用户相似度(Jaccard)用户邻域(K=2)用户相似度改进:IUF下面哪一组用户更相似?用户A和B都买过《新华字典》用户C和D都买过《RecommenderSystemsHandbook》逆用户频率(InverseUserFrequency)基本思想:惩罚热门项目两个用户对冷门项目有过同样行为更能说明他们兴趣相似计算:惩罚系数:fi

=

log

(n/ni)n表示总用户数;ni表示对项目i有过正反馈的用户数

User-CF的缺点难以形成有意义的邻域集合很多用户两两之间只有很少的共同反馈而仅有的共同反馈的项目,往往是热门项目(缺乏区分度)随着用户行为数据的增加,用户间相似度可能变化很快离线(offline)算法难以瞬间更新推荐结果

基于项目的协同过滤:Item-CF基于项目的CF(Item-CF)基本思想:基于用户对项目的反馈(偏好)寻找相似(相关)的项目根据用户的历史反馈(偏好)行为,给他推荐相似的项目假设:我过去喜欢某类项目,将来还会喜欢类似(相关)项目关键:寻找相似(相关)项目项目相似(相关)度度量项目相似度

假设:用户A购买过{b,d};用户B购买过项目{a,b,c};…依此构建用户-项目倒排表:项目a被用户B、C、D购买过,…项目相似度:示例计算项目相似度:用户项目列表Ab,dBa,b,cCa,b,dDa,e项目用户列表aB,C,DbA,B,CcBdA,CeDJaccardabcdea11/2b1/210c100d010e0001兴趣度预测

用户/项目项目a项目b项目c项目d项目e用户A?√√用户B√√√用户C√√√用户D√√基于Item-CF的推荐系统

项目相似度(Jaccard)abcdea11/21/31/41/3b1/211/32/30c1/31/3100d1/42/3010e1/30001项目用户列表aB,C,DbA,B,CcBdA,CeD用户-项目倒排表项目邻域(K=3)项目邻域ab,c,eba,c,dca,bda,bea项目相似度改进

基于邻域的评分预测评分预测

用户\项目abcdA533?B3112C3333协同过滤的一般步骤收集数据目标:收集能反映用户偏好的数据寻找邻域:相似的用户(或项目)计算推荐结果:根据邻域信息计算预测评分收集数据计算推荐结果寻找邻域训练模型User-CF:Item-CF:

用户u有过评分的项目集合用户u对项目i的评分余弦相似度(用户)用户u和v的余弦相似度:用户u和v都有过评分的项目集合用户abcdA533?B3112C3333

基于User-CF的评分预测

收集数据计算推荐结果寻找邻域用户abcdA533?B3112C3333

用户u和v都有过评分的项目集合用户u对项目i的评分用户u的评分平均值Pearson相似度(用户)用户u和v的Pearson相似度:

Pearson相似度(用户)

用户abcdA533?B3112C3333预测修正基于用户的CF基于项目的CF

用户\项目abcdA533?B3112C3333评分预测:示例

收集数据计算推荐结果寻找邻域用户\项目abcdA533?B3112C3333基于二部图的协同过滤传统邻域方法的缺点范围限制问题:只考虑和用户有过共同评价(或购买)项目的相邻用户计算空间复杂度较大:需在内存中保存整个用户-项目反馈(评分)集合(矩阵)数据稀疏/冷启动问题:用户一般只会评价(或购买)少量项目基于二部图的协同过滤

用户项目列表Ab,dBa,b,cCa,b,dDa,e激活扩散假设:用户反馈过的项目都具有用户偏好的某种属性用户偏好可以在图中节点间传递基本思想:根据用户偏好的传递性来挖掘用户潜在偏好信息标准的协同过滤:路径长度=3,UA-Ib-UB-Ic扩展路径长度,例如:路径长度=5,

UA-Ib-UB-Ic-UC-Ia用户/项目abcdA--1--1B--111C1--1--激活扩散:给定目标用户图扩散:从目标用户节点出发,沿图中边进行扩散直至达到给定的最大扩散步长确定候选项目集:扩散过程中到达过的所有项目,去除目标用户有过正反馈的项目项目排序:排序依据:首次到达步数和到达次数如果首次到达步数相同(设为k),则根据k步到达次数做进一步的排序激活扩散:系统角度

步数\用户ABCD3a,cd,ec,eb,c,d5a,c,ed,ec,eb,d,c用户项目列表Ab,dBa,b,cCa,b,dDa,e物质扩散假设:扩散过程中每条边的影响不完全相同可避免活跃用户或热门项目偏置的问题基本思想:将用户的偏好属性表示为节点所拥有的资源(或能量)每个节点平均地将自己拥有的物质分享给相邻的节点,满足守恒律物质扩散:系统角度

基于模型的协同过滤协同过滤算法分类基于邻域的方法vs.基于模型的方法利用局部(邻域)信息vs.基于全局信息在内存中存储(记忆)整个数据集vs.训练出抽象模型协同过滤基于邻域(记忆)基于用户基于项目图扩散基于模型矩阵分解关联规则机器学习基本思想:利用集体智慧,借鉴相关人群的观点进行推荐基于关联规则的协同过滤购买尿布的顾客两者都购买的顾客购买啤酒的顾客关联规则关联:自然界中两个事件同时或先后发生的一种联系可分为:简单关联、时序关联、因果关联关联规则描述在交易中项目之间同时出现的规律的知识模式通过量化的数字描述项目A的出现对项目B的出现有多大的影响形如

A

B的蕴含式,A和B为不相交的项集,例:{尿布}

{啤酒}

基本概念全项集事务关联规则事务数据集(如右图)事务标识TID:每一个事务关联着一个标识TIDItems1i1,i2,i32i1,i33i1,i44i2,i5,i6关联规则度量名称描述公式置信度

A出现的前提下,B出现的概率P(B|A)支持度

A、B同时出现的概率

P(A∪B)期望可信度

B出现的概率

P(B)改善度

置信度对期望可信度的比值

P(B|A)/P(B)规则:A

B购买尿布的顾客两者都购买的顾客购买啤酒的顾客{尿布}

{啤酒}?{牛奶}

{面包}?关联规则度量

关联规则度量:示例规则:规则:?

关联规则挖掘目标:给定一个交易数据集D产生支持度和置信度分别大于给定阈值的关联规则两个参数:最小支持度阈值:

min_support;最小置信度度阈值:

min_conf两个基本步骤找出频繁项集:支持度(S(I))大于最小支持度阈值的所有项集找出强关联规则由频繁项集生成关联规则保留置信度大于最小置信度阈值的关联规则

生成频繁项集Naïvealgorithm:Brute-forceapproach计算每个可能项集的支持度:O(n∙2m)把格结构中每个项集作为候选项集:O(2m),m表示总项数针对每个候选项集,和每个事务比较以确定支持度计数:O(n),n表示总事务数abdcabacadbcbdcdØabcabdbcdacdabcd{a,b,c,d}项目集的格结构Apriori算法基本思想:利用先验(Apriori)原理减少候选项集的数量

迭代搜索:由频繁(k-1)-项集构建候选k-项集先验原理(AprioriPrinciple)若A是一个频繁项集,则A的每一个子集都是一个频繁项集若A是非频繁项集,则A的所有超集都是非频繁项集方法:

逐层(level-wise)搜索初始化:找到所有的频繁1-项集迭代:扩展频繁(k-1)-项集得到候选k-项集剪枝:剪除不满足最小支持度的候选项集abdcabacadbcbdcdØabcabdbcdacdabcd基于支持度的剪枝:示例剪枝Apriori算法:示例事务数据集计算支持度C1L1L2C2C2计算支持度C3L3计算支持度TID项目1b,d2a,b,c3a,b,d4a,e项集支持度{a}3{b}3{c}1{d}2{e}1项集支持度{a}3{b}3{d}2项集{a,b}{a,d}{b,d}项集支持度{a,b}2{a,d}1{b,d}2项集支持度{a,b}2{b,d}2项集{a,b,d}项集支持度{a,b,d}1设min_support=2剪枝{a}

{b}{b}

{a}{b}

{d}{d}

{b}关联规则的相关分析强关联规则不一定有价值候选规则:{b}

{a}支持度=50%,置信度≈67%=>强关联规则规则的误导:整体购买{a}的可能性是75%(期望可信度),比67%还大事实:{b}和{a}是负相关的TID项目1b,d2a,b,c3a,b,d4a,e项集支持度{a}3{b}3{d}2项集支持度{a,b}2{b,d}2提升度与相关度

TID项目1b,d2a,b,c3a,b,d4a,e项集支持度{a}3{b}3{d}2项集支持度{a,b}2{b,d}2矩阵分解模型矩阵分解基本假设:基于观察到的所有用户历史行为数据可以推测出用户和项目的潜在特征表示(画像)基本思想:将历史行为数据表示为矩阵:隐式反馈矩阵vs评分矩阵通过矩阵分解挖掘(学习)用户和项目的潜在表示,降低数据维度理论依据:奇异值分解

(SingularValueDecomposition,SVD)1.3-1.31.6-0.5-2.41.72.5-0.10.51.2-2.1-1.10.9-1.9-0.31.5-1.41.00.80.10.30.8-0.61.00.41.11.92.30.3-2.0-1.5-1.7-1.7-1.1-1.5-0.5-0.3-1.60.20.10.3-0.52.21.1-.50.70.70.2~4531312445533212245452243442331隐语义模型LFM

隐语义空间:示例隐语义模型LFM:示例

1.3-1.31.6-0.5-2.41.72.5-0.10.51.2-2.1-1.10.9-1.9-0.31.5-1.41.00.80.10.30.8-0.61.00.41.11.92.30.3-2.0-1.5-1.7-1.7-1.1-1.5-0.5-0.3-1.60.20.10.3-0.52.21.1-.50.70.70.2~评分矩阵R用户隐特征矩阵P

重构评分矩阵R’45313124455332122454522434423315432452331312248345-16531302112621420534052233243406432443331隐语义模型LFM:目标函数

12…i…n12..u..m

....

....

R

≈×m×nm×kk×n4531312445533212245452243442331过拟合与正则化

引导一些不重要的参数被减少到0或可以被忽略,以降低模型的复杂度奥卡姆剃刀原理:"如无必要,勿增实体",即"简单有效原理"参数学习:随机梯度下降法

Lossx

参数学习:交替最小二乘法

概率矩阵分解模型概率矩阵分解模型(PMF)矩阵分解的困难:由于系统噪音存在,不可能做出完美的分解评分矩阵R中包含很多未知元素(稀疏矩阵)贝叶斯观点:评分矩阵R是系统观测值用户和项目隐特征矩阵U和V可看作系统内部特征,是需要估计的参数目标:根据观测得到的评分值R,推理系统隐藏的参数U和V概率分布假设

贝叶斯推理

参数估计:最大后验概率估计(MAP)

限制性PMF

限制性PMF

基于矩阵分解的Top-N推荐动机

基于正样本过采样的矩阵分解

基于负样本欠采样的矩阵分解基本思想:通过对负样本进行欠采样(undersampling)从未观测到反馈行为的样本中采样出一个和正样本集相当的集合作为负样本集采样策略:随机均匀:假设每个未观测到反馈的样本都是负样本且影响相同面向用户:某用户反馈过的项目越多,则其还未反馈过的项目越可能是负样本面向项目:项目越热门,用户越可能知道其存在,还未反馈就越可能是负样本采样策略

正反馈

权值“负”反馈

权重随机均匀采样面向用户采样面向项目采样基于负样本欠采样的矩阵分解

采样策略

正反馈

权值“负”反馈

权重随机均匀采样面向用户采样面向项目采样基于内容的推荐协同过滤的不足协同过滤的基本思想:利用集体智慧,根据相关人群的行为进行推荐协同过滤的不足:依赖于对用户和项目交互行为数据的挖掘项目冷启动:无法向用户推荐新项目(常见于新闻咨询、短视频等推荐)数据稀疏:难以(或无法)为不活跃的(反馈行为少的)用户进行推荐103基于内容的推荐基本思想:为用户推荐与他感兴趣(过去喜好)的项目内容相似的项目发掘用户曾经喜欢过(例如:购买过)项目的特性,并推荐类似的项目主要步骤:项目建模:构建描述项目的结构化特征用户建模:根据用户的历史行为和相关项目信息,刻画用户的偏好特征生成推荐列表:根据项目特征和用户偏好特征的匹配程度对项目进行排序基于内容的推荐系统框架基于记忆的推荐

关键:计算项目之间的(内容)相似度基于向量空间模型的文本相似度向量空间模型VSM向量空间模型(VectorSpaceModel,VSM)一种把文本内容表示为标识符向量的代数模型将非结构化文本描述数据进行向量化表示,使其具备可计算性词袋模型基本思想:BagofWords(BoW)将文档看作是由若干词构成的一个集合,即以词作为标识符示例:三个简单的文本文档:

文档d1:Johnlikestoplayfootball.

文档d2:Jacklikestoplaybasketball.

文档d3:Jackplanstotravel.Johnplanstotraveltoo.基于这三个文本文档(语料库),可构造一个词典,如下:Dictionary={1.“John”,2.

“likes”,3.“to”,4.“play”,5.“football”,6.“Jack”,7.

“basketball”,8.“plans”,9.“travel”,10.“too”}文本文档的词袋表示:(结构化表示)文档d1:[1,1,1,1,1,0,0,0,0,0]文档d2:[0,1,1,1,0,1,1,0,0,0]

文档d3:[1,0,2,0,0,1,0,2,2,1]t1t2t3TF-IDF模型

齐普夫定律TF-IDF模型

IDF值

词DF

(ni)IDF值t11000010t2500020.3t31010003t41100004TF-IDF模型:示例Frequencyd1d2d3d4car1040200auto520400football00820on5202010原始词频(Frequency)

d1d2d3d4car110.50auto0.50.510football000.21on0.50.50.50.5

IDFcar30.12auto30.12football20.30on40

d1d2d3d4car0.120.120.060auto0.060.060.120football000.060.3on0000模型改进动机:包含所有词的文档向量表示通常会非常长并且很稀疏简化词典:去停用词、词干还原、特征选择等去停用词:停用词是指不具备文档区分度的词语,这些几乎在所有文档中都会出现例如英文中的“a”、“the”、“on”等,中文中的“了”、“的”等词干还原:用单词的词干替换单词的变体,例如将“went”替换为“go”特征选择:选取n个最具代表性的(关键)词对文本进行表示,以去掉文本中的噪声

向量相似度度量

语义相似度基于语义的内容相似度动机:基于关键词的模型虽思想简单、实现容易,但其只关注词形,忽略了词义导致无法准确地计算一些文本的相似度例如,“番茄”和“西红柿”,词形上完全不同,但词义相同,即语义相同基于语义的文本相似度依赖于额外的语义知识基于知识库(Knowledge-Based)vs.基于语料库(Corpus-Based)基于显式语义的模型vs.基于隐式语义(用法)的模型WordNet基于本体的内容相似度

基于本体的相似度模型

基于网络知识的文本相似度本体库或语义信息网络存在实体(本体)不全、更新速度慢等问题网络知识(例如:维基百科、百度百科等)的覆盖范围更广、更新速度更快显式语义分析(ESA)显式语义分析ESA算法:示例

GlossaryofCueSportsAmericanFootballStrategyBaseballBostonRedSoxd1204.556d21.11.21.20.5基于语料库的文本相似度

基于知识的推荐动机传统推荐方法(基于内容和基于协同过滤)适合于推荐书籍、电影、新闻等高频、低成本的消费品不适合推荐房产、汽车、专业设备、金融服务等低频、高成本的项目原因:用户冷启动:无法向新用户(无历史行为数据的用户)推荐项目低频行为:历史行为年代久远,时间间隔长,缺乏参考意义风险高:购买房产、汽车、金融服务等项目的成本和风险都很高基于知识的推荐基本思想:利用用户的显式需求和项目的领域知识为用户进行推荐三种基本类型:基于约束的推荐vs.基于效用的推荐vs.基于实例的推荐基于约束的推荐基于约束的推荐基本思想:根据用户给定的显式需求(约束集)推荐合适的候选项目把推荐任务看作是一个解决约束满足问题的过程应用领域:不经常被购买且产品复杂的领域例如:房产、专业设备、金融服务等示例:购买笔记本电脑

用户总是希望能够以较低的成本(例如:价格)获得较高质量或性能的项目当用户对目标领域还不够了解时,给出的约束集通常不切实际,找不到合适的项目约束放宽算法:MinRlex

01100011100111001001111011001101项目-约束满足矩阵PQRS约束放宽算法:示例

01100011100111001001111011001101基于效用的推荐基于效用的推荐

基于效用的推荐:示例

取值性能经济性price01006size50100RAM40100GPUyes100no30

性能[40%]经济性[60%]效用值[排名]7.6

[4]8.5[1]7.6

[4]6.7[8]7.6[4]7.6

[4]8.4

[3]8.5

[1]评分规则项目效用基于实例的推荐基于实例的推荐

基于距离的匹配度度量

基于实例的推荐:示例

基于实例的推荐:示例

pricesizeRAMGPU匹配度排名1.00.50.81.00.2400.4620.42910.55040.9000.846010.70410.9650.615000.38670.65010.14300.38380.7200.3850.14310.614200.385110.60430.9150.7310.14300.423510.615000.3966混合推荐系统混合推荐目标:提升系统的准确度和稳定性动机:各种基础推荐算法虽然各有利弊,但相互之间存在互补现状:Netflix、Amazon、淘宝、头条等平台都采用混合推荐混合推荐:通过多种算法的组合来避免或弥补各自的弱点(取长补短)推荐方法优点缺点基于人口统计学能为新用户推荐个性化程度低协同过滤个性化程度高结果具有新颖性数据稀疏问题冷启动问题基于内容能推荐新项目容易解释用户冷启动结果缺乏新颖性基于知识没有冷启动问题结果具有可解释性需要人工交互

知识获取困难Netflix百万美金公开赛$1millionprizefora10%improvementoverNetflix’scurrentmovierecommender/classifier(MSE=0.9514)1个月,接近5%2个月,接近6%6个月,接近7%1年,接近8%3年,超过10%一个由工程师和统计学家组成的七人团队夺得了大奖理论依据与方法分类误差分析

不同推荐模型的信息源示意图只有模型组合才可能还原问题的全貌!混合/组合方法分类根据是否使用标注样本:有监督组合vs.无监督组合根据基模型之间的依赖关系:并行式混合vs.串行式混合vs.整体式混合混合/组合并行式串行式整体式混合/组合有监督无监督常见无监督组合模型包括:各种Bagging算法;例如随机森林(RandomForest)等无监督组合训练测试假设各个基模型的贡献相同常见有监督组合模型:各种Boosting和Stacking算法;例如AdaBoost、GBDT等有监督组合训练测试从标注数据中学习组合模型并行式vs.串行式vs.整体式并行式混合:各基模型可独立、并行地进行训练或构造串行式混合:后面基模型的训练或构造依赖于前面的基模型整体式混合:只包含一个推荐单元通过预处理和组合多个知识源将多模型整合在一起并行式混合并行式混合基本思想:直接对已有推荐器(基推荐器)的输出结果进行混合无需对现有基推荐器做任何修改方法分类:加权式混合vs.切换式混合vs.排序混合加权式混合

加权推荐(0.5:0.5)项目171项目24.52项目33.53项目40.54推荐器1项目161项目20项目332项目413推荐器2项目182项目291项目343项目40加权式混合

HongzhiLiu,YingpengDu,ZhonghaiWu.AEM:AttentionalEnsembleModelforPersonalizedClassifierWeightLearning,

PatternRecognition,96,10697:1-8,2019切换式混合(Switching)动机:在不同场景,针对不同用户,各基推荐器的性能表现可能有较大差异活跃用户、新用户(不活跃用户)、新项目(冷门项目)、热门项目基本思想:在不同的场景下选择不同的基推荐器切换式混合(Switching)

排序混合动机:加权式混合要求各基推荐器的输出在同一范围内并且采用相同的量纲基本思想:采用基于排序的方式来进行归一化处理对各基推荐器输出的推荐(排序)列表进行混合排序,以形成最终排序列表常用方法:波达计数(BordaCount)、凯梅尼优化(KemenyOptimization)、成对投票表决波达计数法(BordaCount)Borda

Count:

score(a)

=

4+

5+

3=12;

score(b)

=

3+3+5=11;

…基本思想:根据各排序列表对项目进行重新打分,并采用加和的方式计算最终得分;Top-N推荐:排在第1位的得N分,排在第2位的得N-1分,…,排在最后一位的得1分串行式混合串行式混合基本假设:基推荐器之间存在一定的依赖关系后面的基推荐器的构造或输出依赖于前面的基推荐器的输出方法分类:级联过滤

vs.级联学习级联过滤

级联过滤推荐结果项目181项目20项目342项目40推荐器1项目161项目20项目332项目413推荐器2项目182项目291项目343项目40后续推荐器不会引入额外项目

级联过滤基本思想:基推荐器按一定规则排序,后面的推荐器对前面推荐器的结果进行优化关键:基推荐器的选择和排序:算法效果、算法复杂度召回-排序框架就是典型的级联过滤方法级联学习动机:级联过滤是一种严格基于优先级的混合方法如果前面(高优先级)的推荐器出现错误(删除了一些相关项目),后面的推荐器将无法挽回基本思想:在应用或验证阶段和加权式混合类似不同之处在于训练阶段,级联学习依赖于串行(逐个)训练各基推荐器常用方法:Boosting集成模型,例如:AdaBoost、GBDT等级联学习:

Adaboost在每一轮基学习器训练完成后都会更新样本权重,再训练下一个基学习器;对于分类错误的样本,加大其对应权重;而对于分类正确的样本,降低其权重整体式混合整体式混合基本思想:通过对算法进行内部调整,将多个知识源或多种方法整合在一起整体上看只包含一个推荐单元常用方法:特征组合

vs.特征扩充

vs.基于图模型的混合特征组合

特征扩充MelvilleP,et

al.Content-boostedcollaborativefilteringforimprovedrecommendations,

AAAI2002:187-192.基于图模型的混合基于图模型的混合基本思想:利用图(Graph)将多种不同的信息整合在一起进行统一表示将推荐问题转化为一个图搜索(GraphSearch)或边预测问题目标:使推荐具有一个全面、统一的表示,能灵活支持多种推荐方法基于双层图模型的混合推荐基本思想:对用户-项目二部图进行扩展,得到一个双层图通过查找与目标用户节点高度关联的项目节点,进而得出推荐列表双层图:一层为用户层,另一层为项目层两层之间的边为层间连接(表示用户对项目的反馈)用户层中每个节点代表一个用户,用户节点之间的边表示用户之间的相似关系项目层中每个节点代表一个项目,项目节点之间的边表示项目之间的相似关系项目层(基于内容)用户层(基于人口统计学)用户反馈行为基于双层图模型的混合推荐基于内容的推荐:从与目标用户关联的项目节点开始,通过项目层的边探索其他相关项目基于用户的协同过滤:从目标用户节点开始,先在用户层搜索相似用户,再通过层之间的边探索相关项目混合推荐:从目标用户节点开始,通过利用图中所有(三种)类型的边探索相关项目项目层(基于内容)用户层(基于人口统计学)用户反馈行为基于内容推荐基于用户协同过滤目标用户协同用户推荐系统评测评测视角针对同一问题,不同推荐算法可能会生成不同的推荐列表这些推荐结果是否合理?哪个更好?从不同参与方的角度,需构建不同的评测方法和评价指标用户的角度、商家或平台的角度、算法研究员的角度等项目层(基于内容)用户层(基于人口统计学)用户反馈行为基于内容推荐基于用户协同过滤目标用户协同用户项目流行度头部长尾部从长尾部分推荐项目评测视角用户好的推荐系统应该能降低其信息获取的交互成本应该优先从“长尾”区域选择项目进行推荐,推荐用户可能真正喜欢的项目商家或平台好的推荐系统应能增加“用户点击率”、“用户转化率”、“平台活跃度”等能够为商家或平台带来收益或利润算法研究员好的推荐系统应该能够准确预测用户对项目的偏好程度并且在某些指标上表现得比现有的系统更好实验方法在线实验A/B测试(A/BTests):一种典型的在线实验方法,本质是分离式组间实验,也叫对照实验将具有相同特征的用户均匀分配到各实验组,以避免出现数据偏差优缺点:保证所有算法所处环境的一致性;实验结果客观、准确成本高、风险大,容易导致用户流失用户调查基本思想:通过寻找少量的真实用户或领域专家,对系统进行试用观测并记录用户的行为以及他们对系统满意度的反馈(问卷调查)分析试用用户的行为和反馈来了解被测系统的性能优缺点:不会因体验较差而导致真实用户流失能够了解真实用户对系统的评价时间周期相对较长,需要邀请用户、用户试用、用户反馈、反馈分析离线实验假设:收集到的用户历史行为与系统部署后的用户行为相似基本思想:通过用户的历史行为数据来模拟用户与系统的交互行为优点:不需要真实用户的参与,成本低、速度快过滤不合适算法,为成本高的用户调查和在线实验提供较小的算法候选集评价指标Top-N推荐评价指标通常采用分类准确度指标或是基于排序的指标例如:精确度、召回率、AUC、MAP、nDCG等评分预测评价指标基于预测评分和真实评分的误差来构建评价指标例如:平均绝对误差、平均平方误差(均方误差)、均方根误差等其他评价指标例如:多样性、新颖性、覆盖率等评价指标:分类准确率分类准确度

混淆矩阵真实值预测值分类准确度

混淆矩阵真实值预测值F1与F-Measure

ROC曲线

纵轴:横轴:0.01.01.0ROC曲线AUC真阳性率TPR假阳性率FPR混淆矩阵真实值正例(Positive)负例(Negative)预测值正例(Positive)负例(Negative)AUC值

评价指标:排序、评分及其他基于排序的评价指标

基于排序的评价指标:MAP

基于排序的评价指标:nDCG

基于排序的评价指标:nDCG

评分预测评价指标评分预测准确度

符号含义用户u对项目i的实际评分系统的预测评分测试数据集评分预测准确度:归一化

符号含义用户评分区间的最大值用户评分区间的最小值其它常用评价指标

公开数据集离线实验数据集动机:为离线验证一个算法或系统的性能,需在实验数据集上对其进行评测针对不同类型的算法,需要使用不同类型的数据集为验证算法的稳定性,通常还需在多个不同的数据集上对其进行评测数据来源:常用数据集:MovieLens、Netflix、Last.FM、AmazonProduct等各种数据竞赛平台,例如Kaggle、天池等MovieLens数据集推荐系统领域最为常用的实验数据集MovieLens:一个非商业性的、以研究为目的的实验性电影推荐网站允许用户对自己看过的电影进行评分,评分区间为1~5分根据用户历史评分信息,预测对未看电影的评分和并为其推荐电影目前该数据集有三个不同规模的子数据集(数据采样)MovieLens-100K:943个用户对1682部电影的十万条评分数据MovieLens-1M:6040个用户对3900部电影的一百万条评分数据MovieLens-10M:71567个用户对10681部电影的一千万条评分数据每个用户至少给20部电影评过分(删除评分过少用户,数据过滤)/datasets/movielens/消费者评论数据集Epinions数据集:E是一个知名的消费者评论网站用户可以在该网站上评价(评论、评分)自己使用过的商品其他用户可以查看这些打分和评论,并给出肯定或者反对的评价网站会为每个用户建立一个信任用户列表数据集特色:包含评分数据、评论文本、社交关系等下载地址:/epinions.htmlYelp数据集:Yelp是美国一个著名的商户点评网站囊括各地餐馆、购物中心、酒店、旅游等领域的商户用户可以在Yelp网站上给商户打分、提交评论、交流购物体验等数据集特色:包含用户评分、评论文本、商户属性等下载地址:/dataset电商数据集Amazonproduct数据集:电商评论数据集从亚马逊(Amazon)电商平台上爬取的用户-商品数据用户对商品的评论信息(评分、文本、投票等)商品的属性信息(描述、类别、价格、品牌和特性)包含多种产品数据(子集):书籍、电子产品、家居厨房等下载地址:/data/amazon/links.htmlRetailrocket数据集:电商用户行为数据集包含1407580个用户对商品的2756101次行为和对应的时间戳多种类型的行为:浏览、添加购物车、购买等包含商品属性信息:类别、有效性等下载地址:/retailrocket/ecommerce-dataset基于位置的社交数据集Foursquare和Gowalla为用户提供基于地理位置信息的社交网络服务允许用户通过手机与好友分享自己的位置由此产生大规模的基于位置的用户社交网络关系数据和用户轨迹数据每个用户信息包含:用户的社交关系,历史签到地点和对应的签到时间数据集特色:包含时空维度信息,为基于轨迹数据的推荐提供了验证数据源下载地址:Foursquare数据集:/datasets/FoursquareGowalla数据集:

/data/loc-Gowalla.html

其它常用数据集JesterJoke数据集JesterJoke是一个网上推荐和分享笑话的网站评分区间为-10~10的实数难度较低:数据稠密(稀疏度只有55.9%),包含的项目数少下载地址:/dataset/Netflix数据集来自于电影租赁网站Netflix大约10亿项评分(1~5分)以及每项评分对应的时间戳难度大:数据规模巨大,且包含大量的冷启动用户下载地址:/netflix-inc/netflix-prize-data其它:Last.FM音乐推荐、Book-Crossing图书社区、豆瓣点评社区等基于排序学习的推荐A=3.6B=2.6A=2.5B=2.6RMSE(S1)>RMSE(S2)A点级排序模型(Pointwise)

对级排序模型(Pairwise)

列表级排序模型(Listwise)

Pointwisevs.Pairwisevs.Listwise

点级排序学习对级排序学习列表级排序学习信息完全度不完全部分完全完全输入输出样本复杂度性能表现差中好对级排序学习模型基本思想排序模型:f(x)原始用户-项目相关度(评分)空间用户对项目对的相对偏好空间对级排序学习:基本框架

对级排序学习:基本框架

RankingSVM

RankBoost

RankNet

贝叶斯个性化排序

BayesianPersonalizedRanking

(BPR)隐反馈矩阵&用户相对偏好矩阵目标函数

目标函数

目标函数

参数学习

算法伪代码

协同对级排序学习CPLR

CollaborativePairwiseLearningtoRank动机与假设动机:BPR算法的不足对于给定用户u,所有未观测到反馈的项目都是负样本(即用户u不喜欢)且用户u对它们的偏好相同对于给定用户u,所有观测到反馈的项目都是正样本(即用户u喜欢)且用户u对它们的偏好相同用户之间相互独立,互不影响基本假设:借鉴协同过滤CF的思想用户将会偏好于与他有相同或相似兴趣的其他用户喜好的项目用户过去喜好过某项目,在将来也会喜欢相同或类似的项目基本思想

目标函数

目标函数

性能评估当β=0时,即不考虑协同集和剩余集之间的偏好关系时,CPLR退化为BPR列表级排序学习模型算法分类基本思想:直接对项目的排序列表进行优化有两种主要优化方式:排序指标优化vs排序损失优化直接对基于排序的评价指标进行优化例如CLiMF算法、P-Push算法、CofiRank算法等通过代理损失函数或是函数不等式放缩将其转化为连续函数构造针对排序的目标(损失)函数进行优化RankCosine算法使用正确排序与预测排序之间余弦相似度作为目标函数ListNet算法使用正确排序与预测排序之间的KL距离作为损失函数P-PushCR算法

指标平滑化

基于情境感知的推荐推荐系统的目标在恰当的时间、恰当的地点、恰当的场合,通过恰当的媒介,给用户推荐能满足用户偏好、需求和意图的信息情境信息能对某些事情产生影响的条件和环境没有形成统一的定义,刻画情感和环境的因素统称为情境信息除“用户-项目”评分信息外,影响推荐系统且能辅助预测的所有因素常用情境信息:物理:时间、地点(位置)、天气、温度、

用户行为等社交:和什么人在一起(同伴)交互媒体:访问设备

(PC、Pad)、正浏览的媒体类型(文本、图片、视频)情绪:用户当前的心情、用户意图(购买意图)、用户体验、认知情境=(内在)情感+(外部)环境情境信息获取与表示情境信息:获取显式获取通过直接问问题或引导性的方式显式获得这些信息例如,音乐推荐中通过提供带标签的音乐集引导用户自己选择当前的心情:轻松、伤感、安静、兴奋等,和当前的场景:散步、学习、驾驶、睡前等隐式获取隐式地从数据或环境中获得例如:通过手机GPS获得用户位置信息;利用事务时间戳获得时间情境信息推理获取通过统计或机器学习方法推断出情境信息例如:根据用户当前所处地点类型(公司vs家庭)和当前时间(工作时间vs休息时间)可推理出用户当前意图:工作需要还是生活所需情境信息表示:数据立方体数据立方体的每个维都有一个关系表与之相关联每类情境信息对应于数据立方体的一个维情境信息可以看成维表所有属性笛卡尔积的子集情境信息表示:树状层次结构

融合情境信息的推荐系统问题定义

情境预过滤基本过程:利用情境信息过滤掉无关的“用户-项目”评分数据从而构建符合当前情境的数据集然后采用传统推荐算法以过滤后的数据集为输入产生结果例如:基于时间预过滤的推荐D[Time=t](User,Item,Rating)表示过滤后的评分数据集称为情境化分片(contextualsegment)情境可以泛化:周一晚上10:00→周一晚上→工作日晚上→晚上→任意时间女朋友→朋友→熟人→任意伙伴情境后过滤基本过程:在推荐生成阶段不考虑情境信息的影响基于传统推荐模型生成Top-N推荐列表对Top-N推荐列表进行调整以生成符合情境的最终推荐结果两种调整方式:(在给定的情境下)从Top-N推荐列表中过滤掉无关的项目(基于给定的情境)调整Top-N推荐列表的排序情境化建模将情境信息融入推荐生成过程直接在推荐函数中把情境信息作为预测用户评分的显式因素来考虑生成的是真正的多维推荐函数与情境预过滤和情境后过滤相比:需处理高维数据,最为复杂却最能有效挖掘用户、项目、情境三者之间的关联关系适用于情境信息与用户偏好耦合度紧密的情况两种形式:基于邻域的方法vs.基于模型的方法基于邻域的情境化建模

基于模型的情境化建模一些传统模型可以扩展到多维空间中矩阵分解

=>张量分解、因子分解机(FactorizationMachines)基于机器学习算法的模型=>Bayes模型、逻辑回归、SVM、…随着维度的增加待估计参数将呈指数级增长=>马尔可夫链-蒙特卡罗模型(MCMC)基于张量分解的推荐基本思想:将传统的用户-项目二维模型s:User×Item→Rating扩展为包含情境的多维模型s:User×Item×Context→Rating基于张量表示模型,通过张量分解算法,得到用户在不同情境对项目的偏好程度张量:一个几何量,由在某参考坐标系中一定数目的分量的集合所规定向量Vector:秩为1的张量(有大小和一个方向)Dyad:秩为2的张量(有大小和两个方向)Triad:秩为3的张量(有大小和三个方向)因子分解机FM

基于FM的情境化建模

基于FM的情境化建模:示例

DeepFM算法动机:为了同时考虑高阶特征组合与低阶特征组合基本思想:将FM与DNN相结合,利用多层神经网络学习高阶特征之间的相互关系两部分组成:FM部分与DNN部分两者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论