《推荐系统实践》学习笔记(二)

时间:2022-12-07 14:12:38
第二章 利用用户行为数据
1.基于用户行为分析的推荐算法是个性化推荐系统的重要算法,即学术上的“协同过滤算法”。 2.用户行为数据在网站上最简单的存在形式就是日志:raw log->session log(通常存储在分布式数据仓库中)->impression log->click log 3.用户在系统的行为分为:显式反馈(评分)和隐性反馈(页面浏览) 4.用户行为的统一表示
[user id, item id, behavior type(购买还是浏览), context(时间地点), behavior weight, behavior content(文本或标签)]
5.数据集:    无上下文信息的隐性反馈数据集:Book-Crossing        用户ID、物品ID
   无上下文信息的显性反馈数据集:Movie-Lens               用户ID、物品ID、评分
   有上下文信息的隐性反馈数据集:LastFM数据集           用户ID、物品ID 、行为的时间戳
   有上下文信息的显性反馈数据集:Netflix Prize               用户ID、物品ID、评分、行为的时间戳
6.用户行为数据中蕴含的一般规律:
    1). 用户活跃度和物品流行度:都符合长尾理论,在一个双对数曲线上呈现为一条直线
    2). 用户越活跃,越倾向于阅览冷门的物品
基于邻域的算法

两大类:基于用户的协同过滤算法、基于物品的协同过滤算法

基于用户协同过滤算法-UseCF

s1:找到和目标用户兴趣相似的用户集合

         关键:计算两个用户的相似度  ,每个用户是一个向量,用向量的距离表示相似度

         算法:利用行为的相似度计算兴趣的相似度 cosine

         优化: 先建立物品到用户的倒排表,然后建立用户相似度矩阵W,最后得到用户兴趣相似度

s2: 找到这个集合中的用户喜欢的,但目标用户没有听说过的物品推荐给目标用户       

        根据相似度找到前K个用户,然后得到这K个用户喜欢的但目标用户没看过的,然后根据相似用户和目标用户的相似度以及相似用户对物品的评分,计算物品的ranking score,然后根据ranking score排名,将前N个推荐给用户。

UserCF中一个关键的参数就是K,可以看到随着K的增大,覆盖率下降,流行率上升,但某个K值,准确率和召回率先升后降。对于MovieLens,K取80比较好。
基于物品的协同过滤算法-ItemCF
s1:找到物品之间的相似度
s2:根据物品的相似度和用户的历史行为给用户生成推荐列表

ItemCF也受到K值的影响,MovieLen的数据上K是10比较好。
ItemCF的相似度矩阵应该进行归一化处理,这样可以避免不同类型物品相似度绝对值范围不同的问题,以提高推荐的准确率。
UserCF和ItemCFm的比较
UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF的推荐结果着重于维系用户的历史兴趣。
UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。
UserCF更加适合时效性强,用户个性化兴趣不明显的领域,比如个性化新闻,而ItemCF适合长尾物品丰富,用户个性化需求强烈的领域,比如图书,电子商务,电影。
UserCF需要维护一个用户相似度的矩阵,而ItemCF需要维护一个物品相似度矩阵。 
《推荐系统实践》学习笔记(二)

隐语义模型LFM: Latent Factor Mode

核心思想:通过隐含特征(latent factor)联系用户兴趣和物品。

过程:将物品映射到隐含分类;确定用户对隐含分类的兴趣;选择用户感兴趣的分类中的物品推荐给用户。