当前位置: 首页 > news >正文

基于物品的协同过滤(itemCF)

基于物品的协同过滤(itemCF)

ItemCF的原理

image-20250316113852758

ItemCF的实现

用户对物品的兴趣分根据点击,评论,收藏,转发来打分
用户对后续物品的兴趣值 = ∑ j l i k e ( u s e r , i t e m j ) × s i m ( i t e m j , i t e m ) 用户对后续物品的兴趣值 = \sum_{j} like(user, item_j)×sim(item_j, item) 用户对后续物品的兴趣值=jlike(user,itemj)×sim(itemj,item)
公式中的itemj是用户真实访问到的历史物品,item是潜在的想推荐给用户的物品
image-20250316114538091

物品的相似度

两个物品相似原理:两个物品的受众重合度越高,两个物品越相似。

例如:喜欢《射雕英雄传》和《神雕侠侣》的读者重合度高,可以认为《射雕英雄传》和《神雕侠侣》相似

image-20250316115508611

image-20250316115609423

计算两个物品相似度

喜欢物品i1的用户记作集合W1

喜欢物品i2的用户记作集合W2

交集V = W1 ∩ W2

两个物品相似度sim(i1,i2) , sim(i1,i2)结果在0~1内,越大表示越相似。

image-20250316120138198

注:上面该公式没有考虑用户对物品喜欢的程度,考虑喜欢程度的公式如下。

下面like(v,i1)表示用户v对物品i1的喜欢程度(1,2,3,4)。只喜欢i1或只喜欢i2的用户必有一方like为0。

所以该表达式实际上就是W1和W2的并集v(即喜欢i1也喜欢i2的用户)分别对物品i1和i2的喜欢程度。

分母相应也是W1中用户算上对物品i1的喜欢程度,W2中用户算上对物品i2的喜欢程度。

image-20250316151412580

小结

这里的itemj是用户真实访问到的历史记录,item是潜在相关的想推荐给用户的

image-20250316151909360

ItemCF召回的完整流程

事先做离线计算构建索引

离线计算主要建立“用户—>物品”及“物品—>物品”的索引

用户-物品索引主要功能:找到用户最近交互过的物品

物品-物品索引主要功能:根据用户交互过的物品找到与交互物品最相似的物品

image-20250316164535462

用户—>物品索引搭建

image-20250316164949819

物品—>物品索引搭建

image-20250316165332685

线上做召回

image-20250316165956496

为什么要用索引呢?数据库中有上亿个物品,如果挨个用公式计算用户对所有物品的兴趣分数再排序,那计算量太大了做不到实时,索引的意义就在于能避免枚举所有物品。

用了索引,只需要给2000个物品打分不需要给上亿个物品打分。

image-20250316170344579

ItemCF召回流程小结

image-20250316170854223

总结

ItemCF原理

image-20250316171107159

ItemCF召回通道是召回中最重要的召回通道之一

image-20250316171215027


http://www.mrgr.cn/news/94660.html

相关文章:

  • 编程题-第k个语法符号(中等)
  • RK3568 android11 基于PN7160的NXP NFC移植
  • 基于cat1的贵重物品的状态和位置小型监控系统特色解析
  • hot100算法刷题:二叉树的层序遍历
  • 解决 openeuler 系统 docker 下载慢,docker 镜像加速
  • 线性回归原理推导与应用(五):波士顿房价预测实战
  • Flux 文生图技术解析与部署实践
  • C++初阶——类和对象(三) 构造函数、析构函数
  • Prosys OPC UA Gateway:实现 OPC Classic 与 OPC UA 无缝连接
  • [Linux][经验总结]Ubuntu6.11.0 docker更换镜像源(实操可用的正确方法)
  • stl之string的详解
  • [设计模式]1_设计模式概览
  • 开发、科研、日常办公工具汇总(自用,持续更新)
  • {瞎掰} 手机安装app问题:app签名,手机 or OS官方商店 其他非官方app源,安全防护 突破限制
  • odoo, fireflyiii,akaunting财务软件全栈开发
  • 设计模式(行为型)-备忘录模式
  • 建筑兔零基础Arduino自学记录47|安装和实战小灯闪烁-1
  • 解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南
  • 深入剖析 MetaSpace OOM 问题:根因分析与高效解决策略
  • Linux与深入HTTP序列化和反序列化