数据挖掘技术在推荐系统的应用by陈运文

nnh7

贡献于2015-12-25

字数:0 关键词: 数据挖掘

数据挖掘技术在推荐系统的应用 陈运文 博士 kddchen@gmail.com 引言 陈运文 博士 kddchen@gmail.com 数据挖掘和推荐系统  数据挖掘是利用各种分析方法和分析工具在大规模海量数 据中建立模型和发现数据间关系的过程;挖掘得到的这些 模型、关系和规律可以用来作出决策和预测  数据挖掘的应用  包括但不仅仅是报表、基础数据统计、BI、OLAP等  面向应用系统,能更充分的体现价值  推荐系统是数据挖掘的一个重要应用点  个性化  实时服务 推荐系统概述  推荐系统通过挖掘用户行为和关系数据,建立用户模型和偏好,对用 户的个性化需求进行预测  让用户更容易的发现其所感兴趣的信息,让信息更便捷的传达给其所 适合的用户 概念1:个性化的需求挖掘 概念2:推荐和搜索  用户明确想要什么,且能明确描述时 搜索引擎  用户需求不明确,或难以表达时  推荐引擎  搜索(主动) vs 推荐(被动)  大量技术相互借鉴(e.g. Learning-to-rank , pCTR) 概念3:信息过载的处理  信息过载(information overload)  用户有越来越强的信息过滤 (filter)需求  用户需求的个性化 推荐系统的应用  信息的极大丰富  候选的结果  待挖掘的数据  消费需求存在多样性  单一/从众  个性/品味  需要增强用户粘性  知心助手  个性化服务  视频 书籍 新闻 …  Apps  游戏  个性化营销  电子商务公司  个性化广告  精准广告/情境广告 应用条件 常见场景 推荐系统的研究对象  item  商品,视频,音乐,新闻, 小说,游戏,Apps …  user …  user  基础属性(demographic)  社交关系 …  user-item关系  显式反馈(explicit feedbacks)  隐式反馈(implicit feedbacks)  user-user关系  显式关系(explicit relations)  隐式关系(implicit relations) 基础对象 行为/关系 常见推荐场景  user  items  user  users 常见推荐场景2  item  items 智能推荐的充分运用 (LinkedIn)  30+ types 智能推荐的巨大价值 (LinkedIn) 推荐挖掘方法介绍 常用推荐算法  Memory-based  Item-based collaborative filtering  User-based collaborative filtering  Association rule …  Model-based  Graph-based model (Random Walk)  Latent factor models (SVD/SVD++,pLSA) …  Content-based  item/user profiles  Category  tag/keywords 推荐相关的一些算法  Ensemble Models  Logistic Regression (LR)  Gradient Boost Decision Tree (GBDT)  Restricted Boltzmann Machine (RBM)  …  Online Reranking  过滤/去重  多样性  补足策略  商业逻辑 各算法的思想:直观的例子  用户“张三”看电影,候选A,B,C;怎样做?  1 Statistics-based  2 Content-based  3 User-based 协同过滤  4 Item-based 协同过滤  5 Slope one  6 Latent factor Model  7 …… 算法概要:协同过滤  item-similarity  prediction user-based item-based  user-similarity  prediction 算法概要:Latent Factor Model 算法概要:Latent Factor Model 算法概要:Latent Factor Model 算法概要:Latent Factor Model  user/item biases:  偏好信息的充分利用  能充分利用用户、物品的profile等属性信息  属性之间能方便的进行各种组合  转化为求解优化问题: – 常用方法:Stochastic Gradient Descent (SGD) 算法概要:Latent Factor Model  算法优点:  将用户和物品用隐特征(latent feature)连接在一起  Matrix Factorization有明确的数学理论基础(singular value)和优 化目标,容易逼近最优解  对数据稀疏性(data sparsity)和抗噪音干扰的处理效果较好  延展性(scalability)很好  算法缺点  可解释性弱  难以实时更新(适合用于离线计算) 常用推荐算法点评  Item-based collaborative filtering  应用最为广泛的方法  存在各种计算方法的改进;但Similarity计算随意性大  Content-based algorithm  实现简单、直观,常用于处理冷启动问题  推荐精度低  Latent Factor Model  单一模型效果最好的方法;但难以实时更新模型  KDD-Cup,Netflix Prize …  Statistics-based  简陋,直观,非个性化,被大量使用  可用于补足策略 常用推荐算法的应用  User-based collaborative filtering  Digg,Last.fm  Item-based collaborative filtering  Amazon, Netflix, Youtube …  Association rule  Some e-commercial sites  Content-based algorithm  Some news sites、SNS sites  Latent Factor Model  Netflix,yahoo music  Graph-based model  Youtube(in the past) 实践中的一些关键点 关键点之:数据预处理  数据是王道  数据是保证推荐结果质量的基石  更多的有效数据  更好的推荐效果  Netflix prize: user rating num/RMSE  数据总是越多越好?  数据是否有效是前提 数据预处理实例 • 数据分布情况(腾讯微博好友推荐)  7320w training samples  负样本占92.82% •“负样本”的划分  用户不喜欢被推荐的对象  用户忽略推荐内容,没有点击 • 如何筛选样本?  Session分析  正负样本分布的时间特征 • 注:数据来自KDD Cup 2012 Track1 数据预处理之筛选方法  Session切割  根据正样本的分布,在有效session中挑选可靠负样本  预处理的结果  Negative: 67,955,449 -> 7,594,443 (11.2%)  Positive: 5,253,828 ->4,999,118  预处理的收益  improve precision (0.0037)  reduce computational complexity 数据预处理框架  预处理过程(for pairwise training) 关键点之:隐式反馈的使用  显式反馈(explicit feedbacks):  购买、评分、接受推荐、点击喜欢。。。  数量稀疏(用户是最懒的人)  隐式反馈(implicit Feedbacks):  浏览、收听、点击、下载。。。  User/item相关的profile、keyword、tags  反馈中占大多数(往往被忽略)  如何利用好隐式反馈?  对提高推荐精度有良好效果(SVD->SVD++) 关键点之:隐式反馈的使用  用于修正user/item latent vector  有效补充了显式数据不足的问题  MAP@3效果提升  KDD-Cup-track1:上升7.89%  232万 user,6095item,7320万 training samples,3491万 testing samples  更多数据可以使用(标签、keywords等) 关键点之:SNS关系的使用  SNS关系包括:  user-user follower/followee 关系  user-user actions (e.g.“retweet/at/comment…”)  SNS关系是用户兴趣预测的很好补充  移动应用中普遍存在  SNS关系直接使用  用于user之间关系计算(Graph-based)  可解释性好,易于生成推荐理由  缺少学习过程,难以获得最优解  SNS关系作为隐式反馈  MAP: 0.3495 ->0.3688 ->0.3701 关键点之:时间因素的使用  user的行为受时间影响  兴趣随时间的迁移  用户的行为有周期性变化(e.g. 世界 杯、情人节…)  短期兴趣影响短期行为  item的状态也受时间影响  物品的热门程度随时间会变化  物品的推荐成功率也存在时间周期性  Item如果是specific user,则行为也 受时间影响 周期性统计: 关键点之:利用地域信息  特定的应用场景  LBS、O2O (e.g. 推荐一个饭店?)  基于规则(Rule-based)  附近XXX内的YYYY  基于地域信息的关联规则挖掘  Item-based协同过滤  Item similarity计算时加入距离属性  Latent factor  User-location作为隐式反馈使用 关键点之:user冷启动的处理  热门推荐(排行榜)永远都是一个可用的方案  点击总量最多  最近点击最多  评分最高  ……  充分利用任何用户信息  性别、年龄  来自其他应用的数据  口味测试  有代表性的选项  热门/大部分用户熟知的选项  有区分度的选项 关键点之:item冷启动的处理  Content-based methods永远都是一个可用方案  Category  Tags  ……  相关技术(NLP、ML)  自动分类  自动标签提取  倒排索引的使用  适用于item数量庞大  索引的查询与合并 关键点之:必须重视的外围因素  Data from Christian Posse, Chief Scientist, LinkedIn 注:云中书城的实践  推荐理由:  主动收集负反馈:  展现方式: 挖掘与实践的一些知识点  对性能的考虑  分布式挖掘和在线系统的结合  全量挖掘和增加挖掘  NoSQL的使用  Cache机制  推荐算法的选择  各取所长,互相补位  算法没有好坏之分,只有是否合适  用户数据的及时收集和整理  正负反馈的平衡  有效的预处理  效果评估:从线下到线上  MAP/nDCG:top-N推荐  RMSE/MAE:评分预测问题  A/B Testing:点击率、转化率 推荐系统的现状和体会  应用的现状  需求强烈,应用面广泛  研发的现状:初级阶段  宽广天地,大有可为  给同学们的建议  持之以恒很重要  空谈误国,实干兴邦 内容回顾  数据挖掘和智能推荐概述  研究对象  应用场景  和其他系统的关系  推荐算法  常用算法举例  适用场景评点  业界状况  实践中的一些关键注意点  数据预处理  隐式反馈的使用  SNS关系  时间&地域  冷启动  重要的外围因素  现状评点 总结和展望  推荐是一个系统工程  算法是数据挖掘重要的一环,但算法不是全部  数据、架构、算法、人机交互都需要关注,才能形成合力  好的系统是靠打磨出来的  优化要持之以恒  细节决定成败  个性化数据挖掘是未来方向  让数据创造出价值 (数据坟墓金矿)  个性化让生活更多彩,更美好! Thank you! 陈运文 kddchen@gmail.com

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档