利用用户的行为数据

基于用户行为的推荐算法,如协同过滤,分为用户和物品两种。UserCF通过相似用户喜好推荐,ItemCF基于物品相似性推荐。此外,隐语义模型通过隐含特征联系用户兴趣和物品。基于图的模型利用用户-物品二分图进行推荐,如PersonalRank算法。
摘要由CSDN通过智能技术生成

基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。

用户行为数据简介

  • 用户行为数据在网站上最简单的存在形式就是日志。
  • 用户行为分类
    • 显性反馈行为包括用户明确表示对物品喜好的行为。
    • 隐形反馈行为指的是那些不能明确反应用户喜好的行为。(比如页面浏览行为)
  • 显性反馈数据与隐性反馈数据的比较

    显性反馈数据 隐性反馈数据
    用户兴趣 明确 不明确
    数量 较少 庞大
    存储 数据库 分布式文件
    实时读取 实时 有延迟
    正负反馈 都有 只有正反馈

    显性反馈数据和隐性反馈数据实例:

    显性反馈 隐性反馈
    视频网站 用户对视频的评分 用户观看视频的日志、浏览页面的日志
    电子商务网站 用户对商品的评分 购买日志、浏览日志
    门户网站 用户对新闻的评分 阅读新闻的日志
    音乐网站 用户对音乐/歌手/专辑的评分 听歌的日志
  • 比较有代表性的数据集有下面几个

    • 无上下文信息的隐性反馈数据集:每一条行为记录仅仅包含用户ID和物品ID。
    • 无上下文信息的显性反馈数据集:每一条记录包含用户ID、物品ID和用户对物品的评分。
    • 有上下文信息的隐性反馈数据集:每一条记录包含用户ID、物品ID和用户对物品产生行
    • 有上下文信息的显性反馈数据集:每一条记录包含用户ID、物品ID、用户对物品的评分和评分行为发生的时间戳。

用户行为分析

用户活跃度和物品流行度的分布

很多关于互联网数据的研究发现,互联网上的很多数据分布都满足一种称为Power Law的分布,这个分布在互联网领域也称长尾分布。

f(x)=axk

很多研究人员发现,用户行为数据也蕴含着这种规律。令 fu(k) 为对 k 个物品产生过行为的用户
数,令 fi(k) 为被 k 个用户产生过行为的物品数。那么, fu(k) fi(k) 都满足长尾分布。也就是说:
fi(k)=αikβi

fu(k)=αukβu

用户活跃度和物品流行度的关系

  • 用户越活跃,越倾向于浏览冷门的物品
  • 仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法,有很多方法
    • 基于领域的方法(业界得到最广泛的应用)
      • 基于用户的协同过滤算法:这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。
      • 基于物品的协同过滤算法:这种算法给用户推荐和他之前喜欢的物品相似的物品。
    • 隐语义模型
    • 基于图的随机游走算法

基于领域的算法

基于用户的协同过滤算法(UserCF)

  1. 步骤
    1. 找到和目标用户兴趣相似的用户集合
    2. 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
  2. 计算两个用户的兴趣相似度

这里,协同过滤算法主要利用行为的相似度计算兴趣的相似度。给定用户 u 和用户 v ,令 N(u) 表示用户 u 曾经有过正反馈的物品集合,令 N(v) 为用户 v 曾经有过正反馈的物品集合。那么,我们可以通过如下的Jaccard公式简单地计算 u v 的兴趣相似度:

wuv=|N(u)N(v)N(u)N(v)

或者通过余弦相似度计算:

wuv=|N(u)N(v)|N(u)||N(v)|

  1. 优化
    该代码对两两用户都利用余弦相似度计算相似度。这种方法的时间复杂度是 O(|U||U|) ,这在用户数很大时非常耗时。事实上,很多用户相互之间并没有对同样的物品产生过行为。所以可以先建立物品到用户的倒排表,对于每个物品都保存对该物品产生过行为的用户列表。
  2. 计算用户对物品的感兴趣程度

    得到用户之间的兴趣相似度后,UserCF算法会给用户推荐和他兴趣最相似的 K 个用户喜欢的物品。如下的公式度量了UserCF算法中用户 u 对物品 i 的感兴趣程度:

    p(u,i)=v
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值