推荐系统实践
1 好的推荐系统
1.1 基本任务:联系用户和物品
与分类目录、搜索引擎一样解决信息过载问题。
解决无明确目的的物品需求,并能发掘物品长尾。
1.2 推荐应用
应用于电子商务、视频网站、音乐电台、社交网络、个性化阅读、LBS、个性化邮件、定向广告投放。
前端页面、后台日志和推荐算法三功能。
1.3 系统评测
1)实验方法:离线实验、用户调查、在线实验。
2)评测指标:
用户满意度(问卷)。
预测准确度(评分预测RMSE和MAE、TopN推荐准确率和召回率)。
覆盖率(信息熵和基尼系数)。
多样性、新颖性、惊喜度、信任度、实时性、健壮性、商业目标。
3)评测维度:用户、物品、时间。
2 利用用户行为数据
2.1用户行为数据:正、负反馈
无上下文信息的隐性反馈数据
无上下文信息的显性反馈数据
有上下文信息的隐性反馈数据
有上下文信息的显性反馈数据
2.2 用户行为分析
1)用户活跃度和物品流行度的分布:长尾分布
2)用户活跃度和物品流行度的关系:协同过滤推荐算法
基于领域的方法:UserCF和ItemCF
隐语义模型LFM
基于图的随机游走算法
2.3 算法及评测
训练集和测试集、召回率、准确率、覆盖率、流行度
UserCF:用户相似度矩阵和用户对物品的兴趣度
ItemCF:物品相似度矩阵和用户对物品的兴趣度
LFM:P、Q矩阵SVD求解以及用户对物品的兴趣度
基于图的模型(graph-based model):度量顶点间相关性的算法,基于随机游走的PersonalRank算法
3 推荐系统冷启动问题
3.1 冷启动问题
1)用户冷启动:解决新用户个性化推荐
2)物品冷启动:解决新物品推荐给感兴趣用户
3)系统冷启动:解决新系统向用户推荐物品
4)非个性化推荐:热门排行榜
3.2 利用用户注册信息
1)人口统计学信息:年龄、性别、职业、住址等
2)用户兴趣描述
3)用户站外行为数据:豆瓣、微博等社交网站的行为数据和社交数据
3.3 选择合适的物品启动用户的兴趣
1)热门
2)代表性和区分性
3)多样性
3.4 利用物品的内容信息
向量空间模型Vector Space Model,文本-分词-实体检测-关键词排名-关键词向量
LDA话题模型
ECML/PKDD 2011年物品冷启动比赛
3.5 发挥专家的作用:专家样本标注
音乐基因项目,标注400多个特征
电影基因项目,mood\plot\genres\time\period\praise\style\look\flag
4 利用用户标签数据
4.1 UGC标签系统的代表应用
Delicious:网页打标签
CiteULike:协同过滤collaborative-filtering和评测evaluate
Last.fm:标签云tag cloud
豆瓣:评论和社交网站,用户打标签
Hulu:视频网站,热门标签
4.2 标签系统中的推荐问题:标注时推荐和标签行为推荐
标注行为:蕴涵用户兴趣信息
标签流行度也符合长尾分布
标签内容:物品种类、用户观点等
4.3 基于标签的推荐系统
标签行为:三元组(u,i,b)
SimpleTagBased算法
统计每个用户常用的标签
统计每个标签标记最多的物品
先推荐常用再推荐相关标签热门物品
TagBasedTFIDF算法
借鉴TFIDF思想
TagBasedTFIDF++算法
适当惩罚热门标签和热门物品
数据稀疏性:计算标签相似度
标签清理
4.4 基于图的推荐算法
用户、物品、标签顶点,权重边
4.5 基于标签的推荐解释
豆瓣:标签云
用户对物品的兴趣
用户对标签的兴趣tag preference
IterPopularTags算法
UserPopularTags算法
标签与物品的相关度tag relevance
用户推荐标签
ECML/PKDD2008推荐比赛的算法
张量分解tensor factorization
基于LDA的算法
基于图的算法
5 利用上下文信息
Sourcetone音乐推荐系统
5.1 时间上下文信息
用户兴趣会变化、物品有生命周期、季节效应
系统时间特性分析,三元组(u,i,t)
推荐系统的实时性
推荐算法的时间多样性
时间上下文推荐算法
1)最近最热门RecentPopularity:物品i最近流行度
2)时间上下文的ItemCF
3)时间上下文的UserCF
时间段图模型SGM:路径融合算法
USGM:物品时间节点权重为0
ISGM:用户时间节点权重为0
5.2 地点上下文信息:LBS
Hotpot服务
基于位置的推荐算法LARS:具有空间属性的物品
兴趣本地化
活动本地化
6 利用社交网络数据
6.1 获取社交网络数据的途径
电子邮件:邮箱地址
用户注册信息
用户的位置数据
论坛和讨论组
即时聊天工具
社交网站:社会图谱和兴趣图谱
6.2 社交网络数据简介
双向确认的社交网络数据:Facebook和人人网,用户关系要双方确认
单向关注的社交网络数据:Twitte和微博
基于社区的社交网络数据:论坛
社交网络用户的入度和出度分布满足长尾分布
6.3 基于社交网络的推荐:ACM2010年推荐系统大会
基于领域的社会化推荐算法:用户之间社会熟悉度和对物品兴趣相似度
基于图的社会化推荐算法
大数据级别下内存不足问题:Twitter架构解决方案
社会化推荐系统的评测:Rashmi Sinha和Kirsten Swearingen对比协同推荐的论文
信息流推荐
Facebook和Twitter:用户信息墙
EdgeRank算法:综合信息流会话的时间、长度和用户兴趣相似度
6.4 给用户推荐好友:链接预测,Jon Kleinberg的文章
基于内容的匹配
基于共同兴趣的好友推荐
基于社交网络图的好友推荐:Slashdot社交网络数据集
好友推荐算法对比
InterestBased:兴趣相似
SocailBased:社交网络
SONA:IBM内部推荐算法
6.5 扩展要点
6度原理:任意两个人都可以通过不超过6个人的路径相互认识,即社交网络图的直径为6
六度原理的证明,均匀随机图,参考Random Graph书
社交网络研究的两个著名问题
如何度量人的重要性,即社交网络顶点的中心度(centrality)
如何度量社交网络中人与人之间的关系,即链接预测
Epinion数据集
Ma Hao矩阵分解的社会化推荐算法解决评分预测问题
矩阵分解模型中加入正则化项
具有社交关系的用户的隐语义向量具有较高相似度
ACM2010年社会推荐比赛
社交网络作为上下文
7 推荐系统实例
7.1 外围架构
UI系统:网页展示并与用户交互
日志系统:记录用户的UI行为
数据收集和存储
7.2 基于特征的推荐系统架构
特征种类
人口统计学特征
用户行为特征
用户话题特征
推荐系统架构图
每个推荐引擎负责一类特征或一类任务,代表一种推荐策略
7.3 推荐引擎的架构
生成用户的特征向量
用户行为的种类
用户行为产生的时间
用户行为的次数
物品的热门程度
特征-物品相关推荐
过滤模块
用户已经产生过行为的物品
候选物品以外的物品
质量很差的物品
排名模块
新颖性排名
推荐用户不知道的、长尾中的物品
多样性
时间多样性
用户反馈
MyMedia开源推荐系统架构
8 评分预测问题:三元组(u,i,r)
评分预测算法,Netflix Prize大赛
平均值
全局平均值
用户评分平均值
物品评分平均值
用户分类对物品分类的平均值
用户和物品的平均分
用户活跃度和物品流行度
基于领域的方法:结合用户兴趣相似的用户对物品的评分
余弦相似度
皮尔逊系数
Sarwar修正余弦相似度
隐语义模型和矩阵分解模型
降维补全矩评分矩阵
传统SVD分解
Simon Funk的SVD分解
加入偏置项后的LFM
考虑领域影响的LFM
加入时间信息
基于领域的模型融合时间信息
基于矩阵分解的模型融合时间信息
模型融合
模型级联联合
模型加权联合
