第二章 利用用户行为数据
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比较好。基于物品的协同过滤算法-ItemCFs1:找到物品之间的相似度s2:根据物品的相似度和用户的历史行为给用户生成推荐列表
ItemCF也受到K值的影响,MovieLen的数据上K是10比较好。ItemCF的相似度矩阵应该进行归一化处理,这样可以避免不同类型物品相似度绝对值范围不同的问题,以提高推荐的准确率。UserCF和ItemCFm的比较UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF的推荐结果着重于维系用户的历史兴趣。UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。UserCF更加适合时效性强,用户个性化兴趣不明显的领域,比如个性化新闻,而ItemCF适合长尾物品丰富,用户个性化需求强烈的领域,比如图书,电子商务,电影。UserCF需要维护一个用户相似度的矩阵,而ItemCF需要维护一个物品相似度矩阵。隐语义模型LFM: Latent Factor Mode
核心思想:通过隐含特征(latent factor)联系用户兴趣和物品。
过程:将物品映射到隐含分类;确定用户对隐含分类的兴趣;选择用户感兴趣的分类中的物品推荐给用户。
对于这个机器学习的方法,数据集是应该是:对每个用户,要保证正负样本的平衡,对每个用户采样负样本时,要选取那些很热门的,但用户却没有行为的物品。LFM的模型需要的参数,隐特征的个数F,学习速率,正则化参数,负样本/正样本的比例ratio(控制了推荐算法发掘长尾的能力)。