推荐系统实践 0x04 用户行为

用户行为数据

很多事情用户无法表述自己喜欢什么,所以需要推荐算法挖掘用户行为数据,从用户行为中推测用户兴趣,从而给用户推荐他们感兴趣的物品。啤酒与纸尿布的故事就不讲了,相信大家也都听说过。用户行为数据在网站上最简单的存在形式就是日志。这些日志记录了用户的各种行为,如在电子商务网站中这些行为主要包括网页浏览、购买、点击、评分和评论等。

用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。显性反馈行为如喜欢或者不喜欢,评分等等,隐性反馈行为如网页浏览等,数据量更大但是不明确。

按照反馈的明确性分,用户行为数据可以分为显性反馈和隐性反馈,但按照反馈的方向分,又可以分为正反馈和负反馈。正反馈指用户的行为倾向于指用户喜欢该物品,而负反馈指用户的行为倾向于指用户不喜欢该物品。

用户行为的表示方式

可以将用户行为表示为以下六部分,即产生行为的用户和行为的对象、行为的种类、产生行为的上下文、行为的内容和权重。

  • use id
    产生行为的用户的唯一标识
  • item id
    产生行为的对象的唯一标识
  • behavior type
    行为的种类(比如是购买还是浏览)
  • context
    产生行为的上下文,包括时间和地点等
  • behavior weight
    行为的权重(如果是观看视频的行为,那么这个权重可以是观看时长;如果是打分行为, 这个权重可以是分数)
  • behavior content
    行为的内容(如果是评论行为,那么就是评论的文本;如果是打标签的行为,就是标签)

不同的数据集包含不同的行为,如

  • 无上下文信息的隐性反馈数据集
  • 无上下文信息的显性反馈数据集
  • 有上下文信息的隐性反馈数据集
  • 有上下文信息的显性反馈数据集

用户行为分析

很多数据都是符合长尾分布的,用户行为数据也符合这种分布。

\[f(x) = \alpha(x)^k \]

长尾分布在双对数曲线上应该呈直线。不管是物品的流行度还是用户的活跃度,都近似于长尾分布,特别是物品流行度的双对数曲线,非常接近直线。一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。

基于用户行为数据设计的推荐算法一般称为协同过滤算法,如基于邻域的方法、隐语义模型、基于图的随机游走算法。最广泛使用的还是基于邻域的方法。而基于邻域主要包括基于用户的协同过滤算法和基于物品的协同过滤算法。

下一篇,我们将以MovieLens作为数据集开始对上面提到的所有算法进行讲解和实验,敬请期待!

posted @ 2020-11-23 21:11  NoMornings  阅读(239)  评论(0编辑  收藏  举报