数据挖掘技术在推荐系统的应用陈运文博士kddchen@gmail.com引言陈运文博士kddchen@gmail.com数据挖掘和推荐系统数据挖掘是利用各种分析方法和分析工具在大规模海量数据中建立模型和发现数据间关系的过程;挖掘得到的这些模型、关系和规律可以用来作出决策和预测数据挖掘的应用包括但不仅仅是报表、基础数据统计、BI、OLAP等面向应用系统,能更充分的体现价值推荐系统是数据挖掘的一个重要应用点个性化实时服务推荐系统概述推荐系统通过挖掘用户行为和关系数据,建立用户模型和偏好,对用户的个性化需求进行预测让用户更容易的发现其所感兴趣的信息,让信息更便捷的传达给其所适合的用户概念1:个性化的需求挖掘概念2:推荐和搜索用户明确想要什么,且能明确描述时搜索引擎用户需求不明确,或难以表达时推荐引擎搜索(主动)vs推荐(被动)大量技术相互借鉴(e.g.Learning-to-rank,pCTR)概念3:信息过载的处理信息过载(informationoverload)用户有越来越强的信息过滤(filter)需求用户需求的个性化推荐系统的应用信息的极大丰富候选的结果待挖掘的数据消费需求存在多样性单一/从众个性/品味需要增强用户粘性知心助手个性化服务视频书籍新闻…Apps游戏个性化营销电子商务公司个性化广告精准广告/情境广告应用条件常见场景推荐系统的研究对象item商品,视频,音乐,新闻,小说,游戏,Apps…user…user基础属性(demographic)社交关系…user-item关系显式反馈(explicitfeedbacks)隐式反馈(implicitfeedbacks)user-user关系显式关系(explicitrelations)隐式关系(implicitrelations)基础对象行为/关系常见推荐场景useritemsuserusers常见推荐场景2itemitems智能推荐的充分运用(LinkedIn)30+types智能推荐的巨大价值(LinkedIn)推荐挖掘方法介绍常用推荐算法Memory-basedItem-basedcollaborativefilteringUser-basedcollaborativefilteringAssociationrule…Model-basedGraph-basedmodel(RandomWalk)Latentfactormodels(SVD/SVD++,pLSA)…Content-baseditem/userprofilesCategorytag/keywords推荐相关的一些算法EnsembleModelsLogisticRegression(LR)GradientBoostDecisionTree(GBDT)RestrictedBoltzmannMachine(RBM)…OnlineReranking过滤/去重多样性补足策略商业逻辑各算法的思想:直观的例子用户“张三”看电影,候选A,B,C;怎样做?1Statistics-based2Content-based3User-based协同过滤4Item-based协同过滤5Slopeone6LatentfactorModel7……算法概要:协同过滤item-similaritypredictionuser-baseditem-baseduser-similarityprediction算法概要:LatentFactorModel算法概要:LatentFactorModel算法概要:LatentFactorModel算法概要:LatentFactorModeluser/itembiases:偏好信息的充分利用能充分利用用户、物品的profile等属性信息属性之间能方便的进行各种组合转化为求解优化问题:–常用方法:StochasticGradientDescent(SGD)算法概要:LatentFactorModel算法优点:将用户和物品用隐特征(latentfeature)连接在一起MatrixFactorization有明确的数学理论基础(singularvalue)和优化目标,容易逼近最优解对数据稀疏性(datasparsity)和抗噪音干扰的处理效果较好延展性(scalability)很好算法缺点可解释性弱难以实时更新(适合用于离线计算)常用推荐算法点评Item-basedcollaborativefiltering应用最为广泛的方法存在各种计算方法的改进;但Similarity计算随意性大Content-basedalgorithm实现简单、直观,常用于处理冷启动问题推荐精度低LatentFactorModel单一模型效果最好的方法;但难以实时更新模型KDD-Cup,NetflixPrize…Statistics-based简陋,直观,非个性化,被大量使用可用于补足策略常用推荐算法的应用User-basedcollaborativefilteringDigg,Last.fmItem-basedcollaborativefilteringAmazon,Netflix,Youtube…AssociationruleSomee-commercialsitesContent-basedalgorithmSomenewssites、SNSsitesLatentFactorModelNetflix,yahoomusicGraph-basedmodelYoutube(inthepast)实践中的一些关键点关键点之:数据预处理数据是王道数据是保证推荐结果质量的基石更多的有效数据更好的推荐效果Netflixprize:userratingnum/RMSE数据总是越多越好?数据是否有效是前提数据预处理实例•数据分布情况(腾讯微博好友推荐)7320wtrainingsamples负样本占92.82%•“负样本”的划分用户不喜欢被推荐的对象用户忽略推荐内容,没有点击•如何筛选样本?Session分析正负样本分布的时间特征•注:数据来自KDDCup2012Track1数据预处理之筛选方法Session切割根据正样本的分布,在有效session中挑选可靠负样本预处理的结果Negative:67,955,449-7,594,443(11.2%)Positive:5,253,828-4,999,118预处理的收益improveprecision(0.0037)reducecomputationalcomplexity数据预处理框架预处理过程(forpairwisetraining)关键点之:隐式反馈的使用显式反馈(explicitfeedbacks):购买、评分、接受推荐、点击喜欢。。。数量稀疏(用户是最懒的人)隐式反馈(implicitFeedbacks):浏览、收听、点击、下载。。。User/item相关的profile、keyword、tags反馈中占大多数(往往被忽略)如何利用好隐式反馈?对提高推荐精度有良好效果(SVD-SVD++)关键点之:隐式反馈的使用用于修正user/itemlatentvector有效补充了显式数据不足的问题MAP@3效果提升KDD-Cup-track1:上升7.89%232万user,6095item,7320万trainingsamples,3491万testingsamples更多数据可以使用(标签、keywords等)关键点之:SNS关系的使用SNS关系包括:user-userfollower/followee关系user-useractions(e.g.“retweet/at/comment…”)SNS关系是用户兴趣预测的很好补充移动应用中普遍存在SNS关系直接使用用于user之间关系计算(Graph-based)可解释性好,易于生成推荐理由缺少学习过程,难以获得最优解SNS关系作为隐式反馈MAP:0.3495-0.3688-0.3701关键点之:时间因素的使用user的行为受时间影响兴趣随时间的迁移用户的行为有周期性变化(e.g.世界杯、情人节…)短期兴趣影响短期行为item的状态也受时间影响物品的热门程度随时间会变化物品的推荐成功率也存在时间周期性Item如果是specificuser,则行为也受时间影响周期性统计:关键点之:利用地域信息特定的应用场景LBS、O2O(e.g.推荐一个饭店?)基于规则(Rule-based)附近XXX内的YYYY基于地域信息的关联规则挖掘Item-based协同过滤Itemsimilarity计算时加入距离属性LatentfactorUser-location作为隐式反馈使用关键点之:user冷启动的处理热门推荐(排行榜)永远都是一个可用的方案点击总量最多最近点击最多评分最高……充分利用任何用户信息性别、年龄来自其他应用的数据口味测试有代表性的选项热门/大部分用户熟知的选项有区分度的选项关键点之:item冷启动的处理Content-basedmethods永远都是一个可用方案CategoryTags……相关技术(NLP、ML)自动分类自动标签提取倒排索引的使用适用于item数量庞大索引的查询与合并关键点之:必须重视的外围因素DatafromChristianPosse,ChiefScientist,LinkedIn注:云中书城的实践推荐理由:主动收集负反馈:展现方式:挖掘与实践的一些知识点对性能的考虑分布式挖掘和在线系统的结合全量挖掘和增加挖掘NoSQL的使用Cache机制推荐算法的选择各取所长,互相补位算法没有好坏之分,只有是否合适用户数据的及时收集和整理正负反馈的平衡有效的预处理效果评估:从线下到线上MAP/nDCG:top-N推荐RMSE/MAE:评分预测问题A/BTesting:点击率、转化率推荐系统的现状和体会应用的现状需求强烈,应用面广泛研发的现状:初级阶段宽广天地,大有可为给同学们的建议持之以恒很重要空谈误国,实干兴邦内容回顾数据挖掘和智能推荐概述研究对象应用场景和其他系统的关系推荐算法常用算法举例适用场景评点业界状况实践中的一些关键注意点数据预处理隐式反馈的使用SNS关系时间&地域冷启动重要的外围因素现状评点总结和展望推荐是一个系统工程算法是数据挖掘重要的一环,但算法不是全部数据、架构、算法、人机交互都需要关注,才能形成合力好的系统是靠打磨出来的优化要持之以恒细节决定成败个性化数据挖掘是未来方向让数据创造出价值(数据坟墓金矿)个性化让生活更多彩,更美好!Thankyou!陈运文kddchen@gmail.com