文章目录
基于用户行为分析的推荐算法
这种算法称为协同过滤算法,协同过滤是指用户可以齐心协力,通过不断的和网站互动,使自己的推荐列表能够过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。
用户行为数据简介
用户行为数据最简单的存在形式是日志。很多互联网业务会把原始日志按照用户行为汇总成为会话日志(session log),其中每个会话代表一次用户行为和对应的服务,如展示日志,点击日志。
用户行为在个性化推荐系统中一般分为显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。explicit feedback包括用户明确表示对物品的喜好的行为。implicit feedback 是指那些不能明确反应用户喜好的行为。与explicit feedback相比,隐性反馈虽然不明确,但是数量庞大。
显性反馈数据 | 隐性反馈数据 | |
---|---|---|
用户兴趣 | 明确 | 不明确 |
数量 | 很少 | 庞大 |
存储 | 数据库 | 分布式文件系统 |
实时读取 | 实时 | 有延迟 |
正负反馈 | 都有 | 只有正反馈 |
用户行为分析
在利用用户行为数据设计推荐算法之前,首先需要对用户行为数据进行分析,了解数据中蕴含的一般规律,这样才能对算法的设计起到指导作用。以下用户行为数据的普遍规律。
用户活跃度和物品流行度的分布
互联网上很多数据分布都满足power Law也称长尾分布。
f ( x ) = α x k f(x)=\alpha x^k f(x)=αxk
研究发现,用户行为数据也满足power law分布, f i ( k ) f_i (k) fi(k)为被k个用户产生行为的物品数, f u ( k ) f_u(k) fu(k)为对k个物品产生行为的用户数。即
f i ( k ) = α i k i β f_i(k)=\alpha_i k^\beta_i fi(k)=αikiβ f u ( k ) = α u k u β f_u(k)=\alpha_u k^\beta_u f