1. 数据简介及分析
1.1 数据简介
行为数据
用户行为数据在网站上最简单的存在形式是日志。
网站在运行过程中产生大量原始日志(raw log) , 并将其存储在文件系统中。
很多互联网业务会将多种原始日志按照用户行为汇总为会话日志(session log) 。其中,每个会话表示一次用户行为和对应的服务。
例如, 在搜索引擎和搜索广告系统中:
服务会为每次查询生成一个展示日志(impression log) , 记录了查询和返回结果。
若用户点击了某个结果, 则该点击信息会被服务器截获并存储在点击日志(click log) 中。
一个并行程序会周期性地归并展示日志和点击日志,所得会话日志中的每个消息是一个用户提交
的查询、得到的结果以及点击。
类似地,推荐系统和电子商务网站也会汇总原始日志生成描述用户行为的会话日志。
会话日志通常存储在分布式数据仓库中, 如支持离线分析的Hadoop Hive和支持在线分析的Google Dremel。
这些日志记录了用户的各种行为,主要包括:网页浏览、购买、点击、评分和评论等。
行为分类
将用户在个性化推荐系统中的行为进行分类,存在以下两种方式:
(1) 按反馈的明确性
用户行为数据可以分为显性反馈(explicit feedback)和隐性反馈(implicit feedback) 。
显性反馈,指用户明确表示对物品的喜好;
隐性反馈,指不能明确反应用户喜好。
最具代表性的隐性反馈行为,是页面浏览行为。
用户浏览一个物品的页面并不代表用户一定喜欢这个页面展示的物品。(如,可能因为该页面链接显示在首页,用户更容易点击它而已。)
相比显性反馈,隐性反馈虽然不明确,但数据量更大。
在很多网站中,很多用户甚至只有隐性反馈数据,而没有显性反馈数据。
(2) 按反馈的方向
用户行为数据可以分为正反馈和负反馈。
正反馈,指用户的行为倾向于指用户喜欢该物品;
负反馈,指用户的行为倾向于指用户不喜欢该物品。
在显性反馈中,很容易区分一个用户行为是正反馈还是负反馈,
而在隐性反馈行为中,相对比较难以确定。
1.2 数据分析
- 用户的活跃度:用户产生过行为的物品总数。
- 物品的流行度:对物品产生过行为的用户总数。
用户活跃度和物品流行度的分布
互联网上的很多数据分布都满足一种称为PowerLaw的分布,该分布在互联网领域也称长尾分布。
f ( x ) = α x k f(x)=αx^k f(x)=αxk
用户行为数据也蕴含这种规律。
令
f
u
(
k
)
f_u(k)
fu(k)为对
k
k
k个物品产生过行为的用户数,
f
i
(
k
)
f_i(k)
fi(k)为被
k
k
k个用户产生过行为的物品数。
那么,
f
u
(
k
)
f_u(k)
fu(k)和
f
i
(
k
)
f_i(k)
fi(k)都满足长尾分布。即:
f u ( k ) = α u k β u f i ( k ) = α i k β i f_u(k)=α_uk^{\beta_u} \\ f_i(k)=α_ik^{\beta_i} fu(k)=αukβufi(k)=αikβi
为了说明用户行为的长尾分布, 该书的作者选择了Delicious和CiteULike数据集一个月的原始数据进行
了分析。
数据集中用户活跃度的分布曲线,如下图所示:
其中,横坐标是用户的活跃度 K K K, 纵坐标是活跃度为 K K K的用户总数。
数据集中物品流行度的分布曲线,如下图所示:
其中,横坐标是物品的流行度 K K K, 纵坐标是流行度为 K K K的物品的总数。
由上述两图的分析所示,用户的活跃度和物品的流行度,都近似长尾分布。
用户活跃度和物品流行度的关系
一般来说,不活跃的用户要么是新用户,要么是只来过网站一两次的老用户。
一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。
MovieLens数据集中用户活跃度和物品流行度之间的关系,如下图所示:
其中,横坐标是用户活跃度, 纵坐标是具有某个活跃度的所有用户评过分的物品的平均流行度。
图中曲线呈明显下降的趋势,表明用户越活跃,越倾向于浏览冷门的物品。
参考
《推荐系统实践》—— 2.1 用户行为数据简介
《推荐系统实践》—— 2.2 用户行为分析