5分钟带你了解个性化推荐系统
什么是推荐系统
推荐系统是用来联系用户和信息,解决信息过载,挖掘长尾信息的一种系统。
如何评价一个推荐系统
通常来说评价一个推荐系统好坏是通过以下指标来进行的:
准确度
召回率
覆盖率
新颖性
多样性
健壮性
信任度
实时性
联系用户和物品的推荐系统推荐系统的常用架构
所以对这三种推荐系统做一下抽象的话,推荐系统本质上都是一个用户—特征—物品的系统,所以推荐系统的任务只拆解成了两部分。一个是如何给用户生成特征,一个是如何根据特征找到物品。
推荐系统的常用方法
推荐系统有非常多的方法,比较基础比较通用的是以下几种:
1.基于内容的推荐
2.基于物品的协同过滤推荐
3.基于用户的协同过滤推荐
4.基于标签的推荐
1.基于内容的推荐:
基于内容的推荐是比较基础的一种推荐策略。如果你浏览或购买过某种类型的内容,则给你推荐这种类型下的其他内容。如果内容是文本信息类,就需要先通过自然语言技术抽取关键词,建立关键词向量。
计算内容相似度的方法:
将关键词计算空间向量模型,量化物品内容的相似度。
基于内容推荐的优点:
新颖性较高,当用户的行为强烈受某一内容属性影响时,内容过滤算法精度上可超过协同过滤算法
基于内容推荐的缺点:
内容过滤算法 忽视了用户行为,物品流行度及用户行为中包含的规律,精度比较低。
2.基于物品的协同过滤推荐
基于物品的协同过滤与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤会分析系统已有数据,并结合用户表现的数据,对该指定用户对此信息的喜好程度预测。
计算基于物品的协同过滤推荐的方法
这里N(u)表示用户有关联的商品的集合,Wji表示物品j和i的相似度,Rui表示用户u对物品i的打分。打分规则,往往由业务来确定即可,物品相似度规则往往是使用“对物品j发生正向反馈的用户和对物品i 发生正向反馈的用户交集除以对物品i发生正向反馈的用户”,但这里通常还需要对热门物品降权,活跃用户降权等等。
3.基于用户的协同过滤推荐
基于用户的协同过滤,通过用户对不同内容的行为,来评测用户之间的相似性,基于用户之间的相似性做出推荐。这部分推荐本质上是给相似的用户推荐其他用户喜欢的内容。
计算基于用户的协同过滤推荐的方法
公式这里N(i)表示对物品i有过行为的用户集合,Wuv使用用户u和用户v的相似度,Rvi表示用户v对物品i的打分。同理,打分规则由业务来确定即可,计算用户之间的相似度可以使用“用户u发生正反馈的物品与用户v发生正反馈的物品交集除以两者的并集”,同样需要考虑对热门物品,活跃用户降权的问题。
4.基于标签的推荐
基于标签的推荐,主要是通过标签这种特征形式去联系用户和物品,给用户推荐那些具有用户喜欢的特征的物品。所以计算标签推荐的方法是建立用户和标签之间的关联度,再计算标签与物品之间的关联度,两者相乘即为用户对某物品的感兴趣程度。
关于物品和用户的协同过滤对比
性能
userCF(基于用户的协同过滤) 适用于用户较少的场景,否则计算用户相似度矩阵代价很大
itemCF(基于物品的协同过滤) 物品数明显小于用户数的场合,否则物品相似度矩阵代价很大
领域
userCF 时效性较强,适用于用户个性化兴趣没有那么明显的领域。
itemCF 适合长尾物品丰富,用户个性化需求更强烈的领域
实时性
userCF用户有新行为,不一定使推荐结果立即变化
itemCF用户有新行为,一定会导致推荐结果的实时变化
冷启动
新物品上线:
userCF新物品上线后,只要有用户对其产生了行为,那该新物品就能够推荐给相似的用户
itemCF 不更新物品相似度表的情况下无法将新物品推荐给用户
新用户上线:
userCF 新用户一开始对物品产生行为,无法对其进行推荐
itemCF 新用户对物品产生行为,就能推荐跟该物品相似的其他物品给用户
写在最后
推荐系统的大概知识就介绍到这里了,还有一些基于时间上下文的协同过滤推荐,隐语义模型,基于社交网络的推荐等等就没再介绍。推荐系统是一个典型的知易行难的领域,不同的公司不同的业务在实际应用中会有各种各样的坑,这些坑不会写在书/论文里,通用的方法不经打磨很难在实际场景中应用,而建立个性化推荐系统也未必比部分的人工规则有多大的优势。