推荐系统原理与机遇Spark MLlib的推荐应用

上传人:门**** 文档编号:53682356 上传时间:2022-02-10 格式:PPT 页数:49 大小:2.44MB
收藏 版权申诉 举报 下载
推荐系统原理与机遇Spark MLlib的推荐应用_第1页
第1页 / 共49页
推荐系统原理与机遇Spark MLlib的推荐应用_第2页
第2页 / 共49页
推荐系统原理与机遇Spark MLlib的推荐应用_第3页
第3页 / 共49页
资源描述:

《推荐系统原理与机遇Spark MLlib的推荐应用》由会员分享,可在线阅读,更多相关《推荐系统原理与机遇Spark MLlib的推荐应用(49页珍藏版)》请在装配图网上搜索。

1、推荐系统原理与基于Spark MLlib的推荐应用报告人报告人: :白明白白明白分享提要分享提要p推荐系统简介p推荐系统工作原理p推荐系统分类p常见的推荐算法nApriorinCollaborative FilteringnUser BasednItem BasednModel Based(alternating least squares)p豆瓣音乐推荐p基于Spark MLlib的音乐推荐p推荐系统难点p参考资料推荐系统简介推荐系统简介 随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。推荐系统的任务就是联系用户和信息,

2、一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。 -推荐系统实践项亮推荐系统工作原理推荐系统工作原理 推荐系统数据来源推荐系统数据来源p要推荐物品信息,例如关键字,类别描述等p系统用户的信息,例如性别,年龄,职业等p用户对物品的偏好n显式的用户反馈:这类是指能明确表达用户好恶的行为数据,例如用户对物品的评分,投票,和评论。n隐式的用户反馈:这类是无法直接体现用户偏好的行为数据,例如用户在网站中的点击、浏览、停留、跳转等行为。推荐系统分类推荐系统分类p基于人口统计学的推荐(Demographic-based Recomme

3、ndation)根据系统用户的基本信息发现用户的相关性p基于内容的推荐(Content-based Recommendation)根据推荐物品的信息,发现物品的相关性p基于协同过滤的推荐(Collaborative Filtering-based Recommendation)根据用户对物品的偏好,发现物品本身的相关性,或者是发现用户的相关性n基于用户的协同过滤推荐n基于内容的协同过滤推荐基于人口统计学的推荐基于人口统计学的推荐简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户基于人口统计学的推荐基于人口统计学的推荐p优点n因为不使用当前用户对物品的喜好

4、历史数据,所以对于新用户来讲没有冷启动(Cold Start)的问题n这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)p缺点n这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。n这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。基于内容的推荐基于内容的推荐根据推荐物品的基本信息,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品基于内容的推荐基于内容的推荐p

5、优点n能够很好的建模用户的口味n能提够供更加精确的推荐p缺点n需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和准确程度n物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度n因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题基于用户的协同过滤的推荐基于用户的协同过滤的推荐根据所有用户对物品的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,基于这些邻居的历史偏好信息,为当前用户进行推荐。基于内容的协同过滤的推荐基于内容的协同过滤的推荐根据使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐

6、给用户基于协同过滤的推荐基于协同过滤的推荐p基于用户的协同过滤特点n适用用户较少的场合,否则用户相似度矩阵计算代价很大n适合时效性较强,用户个性化兴趣不太明显的领域n对新用户不友好,因为用户相似度矩阵不能实时计算n很难提供令用户信服的推荐解释p基于物品的协同过滤特点n适用于物品数明显小于用户数的场合,否则物品相似度矩阵计算代价很大n适合长尾物品丰富,用户个性化需求强的领域n对新物品不友好,物品相似度矩阵不需要很强的实时性n利用用户历史行为做推荐解释,比较令用户信服常见的推荐算法常见的推荐算法pApriori 是一种基于关联规则挖掘算法。关联规则的目的就是在一个数据集中找出项与项之间的关系,也被

7、称为购物蓝分析 (Market Basket analysis),因为“购物蓝分析”很贴切的表达了适用该算法情景中的一个子集。pCollaborative Filtering 协同过滤是利用集体智慧的一个典型方法。要理解它,首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴

8、漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘Apriori摘自大嘴巴漫谈数据挖掘摘自大嘴巴漫谈数据挖掘User Based协同过滤协同过滤p余弦相似度计算 Wuv 代表用户 u 与 v 之间的兴趣相似度,N(u)表示用户 u 曾经喜欢过的物品集合, N(v) 表示用户 v 曾经喜欢过的物品集合p算法步骤p建立物品-用户的倒排表p用户与用户之

9、间的共现矩阵 Cuv,表示用户u与v喜欢相同物品的个数p用户与用户之间的相似度矩阵 Wuv,根据上述相似度计算公式计算。p用上面的相似度矩阵来给用户推荐和他兴趣相似的用户喜欢的物品。用户 u 对物品 i 的兴趣程度可以估计为S(u,K) 为和用户 u 兴趣最接近的 K 个用户, N(i) 为对物品 i 有正反馈的用户集合, Wuv 为用户 u 和用户 v 的兴趣相似度,rvi 为用户 v 对物品 i 的兴趣。Item Based协同过滤协同过滤p余弦相似度计算 Wij代表物品 i 与 j 之间的兴趣相似度,N(i)表示喜欢物品i的用户集合, N(j) 表示喜欢物品j 的用户集合p算法步骤p建立

10、用户-物品的倒排表p物品与物品之间的共现矩阵 Cij,表示物品 i 与 j 共同被多少用户所喜欢p物品与物品之间的相似度矩阵 Wij , 根据上述相似度计算公式计算。p用上面的相似度矩阵来给用户推荐与他所喜欢的物品相似的其他物品。用户 u 对物品 j 的兴趣程度可以估计为S(j,K) 为和物品 j 最相似的前 K 个物品, N(u) 为对用户 u 所喜欢的物品集合, Wji 为物品 j 和物品 i 之间的相似度, rui 为用户 u 对物品 i 的兴趣Model Based协同过滤协同过滤p收集用户行为偏好用户行为用户行为类型类型特征特征作用作用评分 显式 整数量化的偏好,可能的取值是 0,

11、n;n 一般取值为 5 或者是 10 通过用户对物品的评分,可以精确的得到用户的偏好投票 显式 布尔量化的偏好,取值是 0 或 1 通过用户对物品的投票,可以较精确的得到用户的偏好转发 显式 布尔量化的偏好,取值是 0 或 1 通过用户对物品的转发,可以精确的得到用户的偏好。收藏显示 布尔量化的偏好,取值是 0 或 1 通过用户对物品的收藏,可以精确的得到用户的偏好。评论 显示 一段文字,需要进行文本分析,得到偏好 通过分析用户的评论,可以得到用户的情感:喜欢还是讨厌点击 隐式 一组用户的点击,用户对物品感兴趣,需要进行分析,得到偏好 用户的点击一定程度上反映了用户的注意力,所以它也可以从一定

12、程度上反映用户的喜好。购买 隐式 布尔量化的偏好,取值是 0 或 1 用户的购买是很明确的说明这个项目它感兴趣。Model Based协同过滤协同过滤p生成Users-Items矩阵Model Based协同过滤协同过滤p隐式因子摘自摘自Learning From Data_ A short courseModel Based协同过滤协同过滤p采用ALS求解模型协同过滤协同过滤p求解相似度并进行推荐n欧几里德距离(Euclidean Distance)nCosine 相似度(Cosine Similarity)n皮尔逊相关系数(Pearson Correlation Coefficient)协

13、同过滤协同过滤p优化函数扩展n1.基本预测公式n1.基本优化函数n2.带Bias预测公式n2.带Bias优化函数协同过滤协同过滤p优化函数扩展n3.带隐式反馈和用户属性信息预测公式u N(u)代表用户表达过隐身反馈的物品u A(u)代表用户自身属性信息:性别,年龄,地区,收入n4.带时间参数信息预测公式豆瓣音乐推荐豆瓣音乐推荐p新用户冷启动豆瓣音乐推荐豆瓣音乐推荐p热门推荐,专家推荐豆瓣音乐推荐豆瓣音乐推荐p用户行为数据收集豆瓣音乐推荐豆瓣音乐推荐p基于用户推荐豆瓣音乐推荐豆瓣音乐推荐p基于内容推荐基于基于Spark MLlib的音乐推荐的音乐推荐p数据获取p数据清理p模型建立p效果评估p参数

14、估计p内容推荐p性能评估基于基于Spark MLlib的音乐推荐的音乐推荐p数据获取nLast.fm用户收听歌曲数据http:/www-etud.iro.umontreal.ca/bergstrj/audioscrobbler_data.htmln数据内容n独立用户:141,000n独立歌手:1.6 millionn用户收听歌曲记录:24.2 million n数据格式nuser_artist_data.txt:(User Id,Artist Id,Play Count)nartist_data.txt:(Artist Id,Artist Name)nartist_alias.txt:(mis

15、spelling Artist Id,canonical Artist Id)基于基于Spark MLlib的音乐推荐的音乐推荐p数据清理nUserId ArtistId是否超过Integer限制n修正Artist别名错误n去除不存在Artist ID对应的数据n去除异常值:user 2064012 played artist 4468 an astonishing 439,771 timesn生成Rating对象(user: Int, product: Int, rating: Double)p模型建立n训练显式数据方法:ALS.trainnratings:Rating RDD数据集nran

16、k:是模型中隐语义因子的个数niterations:是迭代的次数nlambda:是ALS的正则化参数nalpha:是一个针对于隐性反馈 ALS 版本的参数,这个参数决定了偏好行为强度的基准nimplicitPrefs 决定了是用显性反馈ALS的版本还是用适用隐性反馈数据集的版本基于基于Spark MLlib的音乐推荐的音乐推荐p效果评估 将数据分为训练和验证测试集,基于训练测试集构建模型,基于验证测试集进行效果评估。n召回率(Recall)对用户u推荐N个物品R(u),令用户u在测试集上喜欢的物品集合为T(u)n精确率(Precision)nROC(Receiver Operating Cha

17、racteristic)曲线用来评价一个二值分类器的优劣,ROC曲线的横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)nAUC(Area Under Curve) 被定义为ROC曲线下的面积,AUC更大的分类器效果更好基于基于Spark MLlib的音乐推荐的音乐推荐pROCn真正例和假正例n真正率(TPR)=TP/(TP+FN)n真负率(FPR)=FP/(FP+TN) 预测类别预测类别yesno实际类实际类别别yes真正例(TP)假负例(FN)no假正例(FP)真负例(TN)基于基于Spark MLlib的音乐推荐的音乐推荐pA

18、UC计算n基于歌曲的ListenCount计算AUCn计算每首歌曲在训练数据集上被听的次数(ArtistId,ListenCount)n遍历测试数据集上的歌曲,基于上步数据生成Rating(UserId,ArtistId,ListenCount)n随机抽取同等数量的歌曲推荐给测试数据集上的所有用户Rating(UserId,ArtistId2,ListenCount2)n按照用户计算AUC:ListenCountListenCount2的数量/训练数据集上用户收听歌曲数n合并所有用户的AUC计算平均值(结果:0.93)n基于ALS训练出的模型计算AUC(结果:0.96)基于基于Spark ML

19、lib的音乐推荐的音乐推荐p参数估计n基于专家经验n基于参数组合nalpha:为40时,其表现都优于1nlambda:值越高,减少过拟合,模型泛化能力越强nrank:从结果看隐式特征的数量对模型的影响不明显,但从相关论文看其数量越高越好基于基于Spark MLlib的音乐推荐的音乐推荐p内容推荐(MatrixFactorizationModel)ndef recommendProducts(user: Int, num: Int): ArrayRating单用户推荐TopK内容ndef recommendProductsForUsers(num: Int): RDD(Int, ArrayRat

20、ing)所有用户推荐TopK内容ndef recommendUsers(product: Int, num: Int): ArrayRating单内容推荐TopK用户ndef recommendUsersForProducts(num: Int): RDD(Int, ArrayRating)所有内容推荐TopK用户基于基于Spark MLlib的音乐推荐的音乐推荐p性能评估nhttps:/ Node,100 Iteration ,100 copies of the Amazon Reviews dataset,# ratings# users# products time3.5 billion

21、660 million2.4 million40 mins推荐系统难点推荐系统难点p实时推荐p混合的推荐机制n加权的混合(Weighted Hybridization): 用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。n切换的混合(Switching Hybridization):前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。n分区的混合(Mixed Hybridiz

22、ation):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。n分层的混合(Meta-Level Hybridization): 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。参考资料参考资料pOReilly.Advanced.Analytics.with.Sparkp大嘴巴漫谈数据挖掘p探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探http:/ p探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤http:/ http:/wuchong.me/blog/2014/04/19/recsys-c

23、f-study/pLarge-scale Parallel Collaborative Filtering for the Netfli Prizehttp:/citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.173.2797&rep=rep1&type=pdf pCollaborative Filtering for Implicit Feedback Datasetshttp:/ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4781121 pMATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMShttp:/rakaposhi.eas.asu.edu/cse494/lsi-for-collab-filtering.pdf

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!