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