推荐系统实践
2019-04-12 15:49:26 51 举报
AI智能生成
推荐系统实战总结
作者其他创作
大纲/内容
好的推荐系统
信息过载
当系统的输入量超过其处理能力时,会发生信息过载
无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息,是一件非常困难的事情。作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情
解决方法
分类目录
无法充分覆盖
搜索引擎
需用户提供准确关键词
推荐系统
不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息
解决的问题
解决信息过载问题方法之一,联系用户和信息(物品)
一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,实现信息消费者和信息生产者的双赢
充分研究用户兴趣,更好地发掘物品的长尾
个性化推荐成功的两个条件
存在信息过载
用户大部分时候没有特别明确的需求
分类
社会化推荐(social recommendation)
基于内容的推荐(content-based filtering)
基于协同过滤的推荐(collaborative filtering)
构成
前台展示页面
提供用户反馈
后台的日志系统
推荐算法系统
应用
电子商务
亚马逊的个性化推荐
电影和视频网站
Netflix
YouTube
个性化音乐网络电台
社交网络
利用用户的社交网络信息对用户进行个性化的物品推荐
信息流的会话推荐
给用户推荐好友
Facebook数据资源
用户之间的社交网络关系
用户的偏好信息
个性化阅读
基于位置的服务
基于位置给用户推荐离他最近的且他感兴趣的服务
基于位置从属或相关的信息
信息消费的位置和信息服务的位置
分类
信息消费的位置和信息服务的位置
信息消费者之间的位置
信息服务者之间的位置
指标
距离
所属地域
所在位置特殊信息
个性化广告
个性化广告投放
上下文广告
搜索广告
个性化展示广告
个性化广告投放和狭义个性化推荐的区别是,个性化推荐着重于帮助用花找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对它感兴趣的用户
推荐系统评测
用户,物品提供者,提供推荐系统的网站三者共赢
好的推荐系统不仅仅能够准确预测用户的行为,而且能够扩展用户的视野,帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西
推荐系统实验方法
离线实验
离线实验的指标和实际的商业指标存在差距
用户调查
解决预测准确率和用户满意度之间存在很大差别
在线实验
上线AB测试
通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法
切分流量防止测试干扰
评测指标
用户满意度
从不同的侧面询问用户对结果的不同感受,而非是否满意
购买率,用户反馈,点击率,用户停留时间,转化率等度量用户满意度
在线指标
预测准确率
推荐系统预测用户行为的能力,一种离线指标
评分预测
预测准确度:真实评分和预测评分之间的均方误差(RMSE)和平均误差(MAE)
RMSE加大了对预测不准的用户物品评分的惩罚,因而对系统的评测更加苛刻
TopN推荐
网站在提供推荐服务时,给用户一个个性化的推荐列表,这种推荐叫TopN推荐
预测准确度:通过准确率(precision)/召回率(recall)度量
召回率和准确率
为了全面评测TopN推荐的准确率和召回率,一般会选取不同的推荐列表长度N,计算出一组准确率/召回率曲线
评分预测和TopN的对比
覆盖率
描述一个推荐系统对物品长尾的发掘能力,覆盖率是一个内容提供商会关心的指标
通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力,分布较平,覆盖率高,分布陡峭,覆盖率低
信息熵
基尼系数
马太效应
多样性
多样性和相似性是对应的
如果用内容相似度描述物品间的相似性,我们就可以得到内容多样性函数,如果用协同过滤的相似度函数描述物品间的相似性,就可以得到协同过滤的多样性函数
新颖性
给用户推荐那些他们之前没有听说过的物品,实现新颖性最简答的方法:把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉,例如:他们已经看过的,打过分或者浏览过的视频等
评价新颖性最简答的方法是利用推荐结果的平均流行度,越不热门的物品越可能让用户觉得新颖
用户调查
惊喜度
推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高
提高惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣的相似度
信任度
用户对推荐结果的信任度
提高信任度方法:增加推荐系统的透明度;考虑用户的社交信息
评价只能通过问卷调查
实时性
针对物品(新闻,微博)具有很强的时效性
推荐系统需要实时地更新推荐列表来满足用户新的行为变化
推荐系统需要能够将新加入系统的物品推荐给用户
健壮性
衡量一个推荐系统抗击作弊的能力
算法健壮性的评测主要利用模拟攻击
设计推荐系统时尽量使用代价比较高的用户行为,如用户购买行为,用户浏览行为
商业目的
商业目的和网站的盈利模型息息相关
各个指标的总结
评测维度
用户维度
用户的人口统计学信息
活跃度
是不是新用户
物品维度
物品的属性信息
流行度
平均分
是不是新加入的物品
时间维度
季节
工作日还是周末
白天还是晚上
目的:从多个方面了解推荐系统性能
利用用户行为数据
基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法
用户行为数据简介
日志
原始日志
会话日志
展示日志
点击日志
会话日志记录了用户的各种行为,如在电子商务网站中这些行为主要包括网页浏览,购买,点击,评分和评论等
用户行为的分类
显性反馈行为
包括用户明确表示对物品喜好的行为,主要方式是评分和喜欢/不喜欢
隐性反馈行为
不能明确反应用户喜好的行为,例如网页浏览行为
很多情况下
用户行为的表示方式
user id
产生行为的用户的唯一标识
item id
产生行为的对象的唯一标识
behavior type
行为的种类(比如是购买还是浏览)
context
产生行为的上下文,包括时间和地点,用户所处的环境等
behavior weight
行为的权重(如果是观看视频的行为,那么这个权重可以是观看时常;如果是打分行为,这个权重可以是分数)
behavior content
行为的内容(如果是评论行为,那么就是评论的文本;如果是打标签的行为,就是标签)
以一个用户浏览新闻为例:user id就是该用户,item id为新闻网页,时间为2018/8/29 8:00,地点为地铁站,浏览的时间为1分钟,新闻内容为关于亚运会中国女足大战中国台湾队。采用上述方式能够完整描述一个用户行为。不同的应用场景以上信息会存在缺失
常用的数据集
无上下文信息的隐性反馈数据集
每一条记录仅仅包含用户ID、物品ID
无上下文信息的显性反馈数据集
每一条记录包含用户ID、物品ID和用户对物品的评分
有上下文信息的隐性反馈数据集
每一条记录包含用户ID、物品ID和用户对商品产生行为的时间戳
有上下文信息的显性反馈数据集
每一条记录包含用户ID、物品ID、用户对物品的评分和评分行为发生的时间戳
用户行为分析
在利用用户行为数据设计推荐算法之前,研究人员首先需要对用户行为数据进行分析,了解数据中蕴含的一般规律,对算法设计起指导作用
长尾分布(PowerLaw)规律
物品流行度分布
横坐标为物品的流行度K:对物品产生过行为的用户总数
纵坐标为流行度为K的物品的总数
用户活跃度分布
横坐标为用户活跃度K:用户产生过行为的物品总数
纵坐标为活跃度为K的用户总数
协同过滤算法
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法
方法分类
基于邻域的方法
基于用户的协同过滤算法(UserCF)
定义
在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,
然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A,这种方法称为基于用户的协同过滤算法
然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A,这种方法称为基于用户的协同过滤算法
实现步骤
1、找到和目标用户兴趣相似的用户集合。(用户相似度计算)
2、找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
相似性计算
物品-用户倒排表
相似度计算有不同的方法,有些增加了惩罚:用户u和用户v共同兴趣列表中热门物品对他们相似度的影响(UserCF-IIF)
生成推荐
UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品。K为一个重要的参数,即为每个用户选出K个和他兴趣最相似的用户,然后推荐那K个用户感兴趣的物品。对推荐性能会产生一定的影响
特点
计算复杂度较大,无法对推荐结果做出解释,实际使用中不多
基于物品的协同过滤算法(ItemCF)
定义
给用户推荐那些和他们之前喜欢的物品相似的物品
不过,ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度
物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B
实现步骤
1、计算物品之间的相似度
2、根据物品的相似度和用户的历史行为给用户生成推荐列表
相似度计算
相似度计算时增加对热门商品的惩罚
用户-物品倒排表(即对每个用户建立一个包含他喜欢的物品的列表),对每个用户,将他物品列表中的物品两两在共现矩阵C中加1
生成推荐列表
公式略
计算用户u对物品i的兴趣
公式含义:和用户历史上感兴趣的物品越相似的物品,越有可能在用户的推荐列表中获得比较高的排名
特点
对推荐结果可以进行解释
用户活跃度对物品相似性也会产生影响,可以增加惩罚项修正物品相似性计算公式
将ItemCF的相似度矩阵按最大值归一化,不但可以提高推荐的准确率,还可以提高推荐的覆盖率和多样性
对比
隐语义模型
LFM(潜在因子模型)
理解
隐语义模型核心思想是通过隐含特征联系用户兴趣和物品
对物品的兴趣进行分类。对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品
隐含语义分析技术因为采取了基于用户行为统计的自动聚类。较好地解决了很多人工分类的问题
常用模型
pLSA
LDA
隐含类别模型(latent class model)
隐含主题模型(latent topic model)
矩阵分解(matrix factorization)
LFM(潜在因子模型)
训练集中,对于每个用户u,训练集里都包含了用户u喜欢的物品和不感兴趣的物品
推荐系统的用户行为分为显性反馈和隐形反馈。对隐形反馈数据集,只有正样本(用户喜欢什么物品),而没有负样本(用户对什么物品不感兴趣),需要人为制定负样本
重要参数
隐特征的个数F
学习速率α
正则化参数λ
负样本/正样本比例 ratio
基于图的随机游走算法
将用户行为数据表示成图的形式:用户和物品之间通过边连接,边表示用户对物品产生过行为
实验设计和算法评测
推荐系统冷启动问题
如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统
冷启动问题分类
用户冷启动问题
解决如何给新用户做个性化推荐的问题
物品冷启动问题
解决如何将新的物品推荐给可能对它感兴趣的用户
系统冷启动问题
解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务
解决方法
提供非个性化的推荐
最简单例子:热门排行榜,可以给欧诺个户推荐热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐
利用用户注册信息
人口统计学信息:年龄,性别,职业,民族,学历,居住地等
用户兴趣的描述
从其他网站导入的用户站外行为数据
利用用户的社交账号,导入好友信息等
要求用户在登陆时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品
对新加入的物品,可以利用内容信息
引入专家的知识
利用用户标签数据
用户和物品的联系途径
标签
定义
标签是一种无层次化结构的,用来描述信息的关键词,可以用来描述物品的语义
分类
让作者或者专家给物品打标签
让普通用户给物品打标签(UGC)
UGC的标签一方面描述了用户的兴趣,另一方面则表示了物品的语义
代表网站
Delicious
CiteULike
Last.fm
豆瓣
Hulu
标签系统的作用
表达:标签系统帮助我表达对物品的看法(30%)
组织:打标签帮助我组织我喜欢的电影(23%)
学习:打标签帮助我增加对电影的了解(27%)
发现:标签系统使我更容易发现喜欢的电影(19%)
决策:标签系统帮助我判定是否看某一部电影(14%)
标签系统中的推荐问题
用户为什么进行标注
社会维度
给内容上传者使用
给广大用户使用
功能维度
更好地组织内容,方便用户将来的查找
传达某种信息,比如照片的拍摄时间和地点
用户如何打标签
用户打什么样的标签
表明物体是什么
表明物品的种类
表明谁拥有物品
表达用户的观点
用户相关的标签
用户的任务
类型,时间,人物,地点,语言,奖项,其他
基于标签的推荐系统
标签在推荐系统中的作用
标签是联系用户和物品的纽带,也是反应用户兴趣的重要数据源
用户标签行为数据的表示
三元集合表示:(u,i,b)表示用户u给物品i打上了标签b
用户真实标签行为数据远远比三元组表示的要复杂,比如用户打标签的时间,用户ID,网页URL,标签等
实验设计
数据稀疏性
标签清理
基于图的推荐算法
给用户推荐标签
为什么给用户推荐标签
方便用户输入标签
提高标签质量
如何给用户推荐标签
给用户u推荐整个系统里最热门的标签(PopularTags)
给用户u推荐物品i上最热门的标签(ItemPopularTags)
给用户u推荐他自己经常使用的标签(UserPopularTags)
前面两种的加权融合(HybridPopularTags)
实验设置
基于图的标签推荐系统
利用上下文信息
时间上下文信息
时间效应
时间信息对用户兴趣的影响表现
用户兴趣是变化的
物品也是有生命周期的
季节效应
节日也是一种季节效应
系统时间特性的分析
在给定时间信息后,推荐系统从一个静态系统变成了一个时变系统,而用户行为数据也变成了时间序列
统计信息量
数据集每天独立用户数的增长情况
系统的物品变化情况
用户访问情况
数据集的选择
物品的生存周期和系统的时效性
物品平均在线天数
相隔T天系统物品流行度向量的平均相似度
推荐系统的实时性
一个实时的推荐系统需要能够实时响应用户新的行为,让推荐列表不断变化,从而满足用户不断变化的兴趣
实时推荐系统
实时推荐系统不能每天都给所有用户离线计算推荐结果,然后在线展示昨天计算出来的结果。
所以,要求在每个用户访问推荐系统时,都根据用户这个时间点前的行为实时计算推荐列表
所以,要求在每个用户访问推荐系统时,都根据用户这个时间点前的行为实时计算推荐列表
推荐算法要平衡考虑用户的近期行为和长期行为,即要让推荐列表反应出用户近期行为所体现的兴趣变化,
又不能让推荐列表完全受用户近期行为的影响,要保证推荐列表对用户兴趣预测的延续性
又不能让推荐列表完全受用户近期行为的影响,要保证推荐列表对用户兴趣预测的延续性
推荐算法的时间多样性
推荐系统每天推荐结果的变化程度被定义为推荐系统的时间多样性。时间多样性高的推荐系统中用户会经常看到不同的推荐结果
提高推荐结果时间多样性方法
首先需要保证推荐系统能够在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣
其次,需要保证推荐系统在用户没有新的行为时也能够经常变化一下结果,具有一定的时间多样性
在生成推荐结果时加入一定的随机性
记录用户每天看到的推荐结果,然后在每天给用户进行推荐时,
对他前几天看到过很多次的推荐结果进行适当降权
对他前几天看到过很多次的推荐结果进行适当降权
每天给用户使用不同的推荐算法
时间上下文推荐算法
最近最热门
时间上下文相关的ItemCF算法
基本基于物品的个性化推荐
利用用户行为离线计算物品之间的相似度
根据用户的历史行为和物品相似度矩阵,给用户做在线个性化推荐
在相似度计算中加入时间相关的衰减
时间上下文相关的UserCF算法
基本UserCF算法:给用户推荐和他兴趣相似的其他用户喜欢的物品
用户兴趣相似度
利用时间信息改进,同时喜欢相似物品
相似兴趣用户的最近行为
给用户推荐和他兴趣相似的用户最近喜欢的物品
时间段图模型
离线实验
地点上下文信息
简介
地点作为一种重要的空间特征,也是一种重要的上下文信息
不同地区的用户兴趣有所不同,用户倒了不同的地方,兴趣也会有所不同
基于位置的推荐算法
将物品分为两类,一类是有空间属性的,比如餐厅,商店,旅游景点等,另一类是无空间属性的物品,比如图书和电影等
将用户分为两类,一类是有空间属性的,比如给出了用户现在的地址(国家,城市,邮编等),另一类用户并没有相关的空间属性
不同类型数据集
(用户,用户位置,物品,评分)
(用户,物品,物品位置,评分)
(用户,用户位置,物品,物品位置,评分)
用户兴趣和地点相关的两种特征
兴趣本地化
活动本地化
利用社交网络数据
获取社交网络数据的途径
电子邮件
用户注册信息
用户的位置数据
论坛和讨论组
即时聊天工具
社交网站
社会图谱(社交图谱)
Facebook
微信
双向关系,好友之间一般认识
兴趣图谱
Twitter
新浪
单向关系,基于兴趣关注,一般不认识
社交网络数据简介
社交网络
社交网络定义了用户之间的联系,因此可以用图定义社交网络
业界两种重要的社交网络
一种以Facebook为代表,它的朋友关系是需要双向确认的,因此在这种社交网络上可以用无向边连接有社交网络关系的用户
另一种以Twitter为代表,它的朋友关系是单向的,因此可以用有向边代表社交网络上的用户关系
社交网络数据的分类
双向确认的社交网络数据
单向关注的社交网络数据
基于社区的社交网络数据
社交网络中的长尾分布
用户入度
用户出度
基于社交网络的推荐
优点
好友推荐可以增加推荐的信任度
社交网络可以解决冷启动问题
基于邻域的社会化推荐算法
好友熟练程度
兴趣相似度
实际应用中很难操作,计算复杂
基于图的社会化推荐算法
结合社交网络图和用户物品二分图
社交网络图
用户和用户之间直接的社交网络关系(friendship)
两个用户属于同一个社区的社交网络关系(membership)
融合两种社交网络信息的图模型
实际系统中的社会化推荐算法
实际应用中存在的落地问题:数据库查询,缓存,计算复杂度
一种方式
首先,为每个用户维护一个消息队列,用于存储他的推荐列表
当一个用户喜欢一个物品时,就将(物品ID,用户ID和时间)这条记录写入关注该用户的推荐列表消息队列中
当用户访问推荐系统时,读出它的推荐列表消息队列,对于这个消息队列中的每个物品,重新计算该物品的权重。
计算权重时考虑物品在队列中出现的次数,物品对应的用户和当前用户的熟悉程度,物品时间戳等
计算权重时考虑物品在队列中出现的次数,物品对应的用户和当前用户的熟悉程度,物品时间戳等
社会化推荐系统和协同过滤推荐系统
社会化推荐系统很难通过离线实验评测,优势不在于增加精度,而在与增加用户对推荐结果的信任度
信息流推荐
给用户推荐好友
基于内容的匹配
用户人口统计学属性,包括年龄,性别,职业,毕业学校和工作单位等
用户的兴趣,包括用户喜欢的物品和发布过的言论等
用户的位置信息,包括用户的住址,IP地址和邮编等
基于共同兴趣的好友推荐
计算用户兴趣相似度
例如:两个用户曾经评论或转发同样的微博等来反映
基于社交网络图的好友推荐
基于用户调查的好友推荐算法对比
InterestBased
SocialBased
Interest+Social
SONA
概述
六度原理
社会中任意两个人都可以通过不超过6个人的路径相互认识
社交网络中两个最著名的问题
第一个是如何度量人的重要性
如何度量社交网络中人与人之间的关系
推荐系统实例
外围架构
主要依赖两个条件:界面展示和用户行为数据
页面展示
通过一定方式展示物品,主要包括物品的标题,缩略图和介绍等
提供推荐理由,理由可以增加用户对推荐结果的信任度
提供一些按钮让用户对推荐结果进行反馈,让推荐算法不断改善用户的个性化推荐体验
数据搜集和存储
电子商务网站中典型行为
不同的行为数据将被存储在不同的媒介中,一般来说,需要实时存取的数据存储在数据库和缓存中,
而大规模的非实时地存储数据存储在分布式系统(HDFS)中
而大规模的非实时地存储数据存储在分布式系统(HDFS)中
推荐系统架构
基于特征的推荐系统架构
架构图
用户特征的种类
用户特征
人口统计学特征
用户的行为特征
浏览过什么物品,收藏过什么物品,给什么物品打过什么样的分数等
用户行为从时间上也可以分为用户近期的行为和长期的行为
用户的话题特征
建立话题模型(topic model)
推荐任务
将新加入的物品推荐给用户
将商业上需要宣传的物品推荐给用户
给用户推荐不同种类的物品
给用户混合推荐
对于不同的产品推荐不同新颖度的物品
考虑用户访问推荐系统的上下文
推荐系统架构
以上特征和任务统筹考虑,系统将会非常复杂,因而推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务
推荐系统的任务是将推荐引擎的结果按照一定的权重或者优先级合并,排序然后返回
推荐系统的架构
推荐引擎的架构
推荐引擎使用一种或多种用户特征,按照一种推荐策略生成一种类型物品的推荐列表
架构
生成用户特征向量
用户特征分类
用户的注册信息中可以直接提取
从用户的行为中计算
用户特征计算
一个特征向量由特征以及特征的权重组成
考虑因素
用户行为的种类
用户行为产生的时间
用户行为的次数
物品的热门程度
特征-物品相关推荐
相关表
特征-物品相关推荐模块除了给用户返回物品推荐类表,还需要给推荐列表中的每个推荐结果产生一个解释列表
过滤模块
过滤掉以下物品
用户已经产生过行为的物品
候选物品以外的物品
某些质量很差的物品
排名模块
一般排名模块需要包括很多不同的子模块,针对不同的功能排名
新颖性排名
多样性
时间多样性
用户反馈
评分预测问题
离线实验方法
评分预测问题基本都通过离线实验研究
评分预测算法
平均值
全局平均值
用户评分平均值
物品评分平均值
用户分类对物品分类的平均值
基于邻域的方法
相似度
普通的余弦相似度
皮尔逊系数
修正的余弦相似度
隐语义模型与矩阵分解模型
背景
用户的评分行为可以表示成一个评分矩阵R,其中R[u][i]就是用户u对物品i的评分。但是用户不会对所有的物品评分,所以这个矩阵里有很多元素都是空的,这些空的元素称为缺失值。因此,评分预测从某种意义上说就是填空,如果一个用户对一个物品没有评过分,那么推荐系统就要预测这个用户是否会对这个物品评分以及评几分
传统的SVD分解
对于如何补全一个矩阵,历史上有过很多的研究,一个空的矩阵有很多种补全方法,而我们要找的是一种对矩阵扰动最小的补全方法
如果补全后矩阵的特征值和补全之前矩阵的特征值相差不大,就算扰动比较小
特点
补全后,存储空间较大,实际应用中无法接受
计算复杂度较高
Simon Funk的SVD分解(LFM)
LFM,learningLFM
将评分矩阵分解为两个低维矩阵相乘
直接通过训练集中的观察值利用最小化RMSE学习P、Q矩阵
定义损失函数,通过随机梯度下降法求解
加入偏置项后的LFM(BiasSVD)
BiasSVD BiasLFM
实际情况下,一个评分系统有些固有属性和用户物品无关,而用户也有些属性和物品无关,物品也有些属性和用户无关。
增加三项偏置
μ 训练集中所有记录的评分的全局平均数
b(u) 用户偏置项
b(i) 物品偏置项
考虑邻域影响的LFM
SVD++
改进LFM模型中没有显式地考虑用户的历史行为对用户评分预测的影响
加入时间信息
基于邻域的模型融合时间信息
基于矩阵分解的模型融合时间信息
模型融合
模型级联融合
模型加权融合
推荐系统的十条经验和教训
确定你真的需要推荐系统。
推荐系统只有在用户遇到信息过载时才必要。如果你的网站物品不太多,或者用户兴趣都比较单一,那么也许并不需要推荐系统。所以不要纠结于推荐系统这个词,不要为了做推荐系统而做推荐系统,而是应该从用户的角度出发,设计出能够真正帮助用户发现内容的系统,无论这个系统算法是否复杂,只要能够真正帮助用户,就是一个好系统
确定商业目标和用户满意度之间的关系。
对用户好的推荐系统不代表商业上有用的推荐系统,因此要首先确定用户满意的推荐系统和商业上需求的差距。一般来说,有些时候用户满意和商业需求并不吻合。但是一般情况下,用户满意度总是符合企业的长期利益,平衡企业的长期利益和短期利益之间的关系
选择合适的开发人员
忘记冷启动问题
只要用户喜欢你们的产品,他们会不断贡献新的数据
平衡数据和算法之间的关系
使用正确的用户数据对推荐系统至关重要。对用户行为数据的深刻理解是设计好的推荐系统的必要条件。因此分析数据是设计系统中最重要的部分。数据分析决定了如何设计模型,而算法只是决定了最终如何优化模型
找到相关的物品很容易,但是何时以何种方式将它们展现给用户是很困难的。
不要为了推荐而推荐
不要浪费时间计算相似兴趣的用户,可以直接利用社会网络数据
需要不断地提升算法的扩展性
选择合适的用户反馈方式
设计合理的评测系统,时刻关注推荐系统各方面的性能
收藏
收藏
0 条评论
下一页