38 | 矩阵(下):如何使用矩阵操作进行协同过滤推荐?
黄申
该思维导图由 AI 生成,仅供参考
你好,我是黄申。今天我们来聊聊矩阵操作和推荐算法的关系。
我这里说的推荐,是指为用户提供可靠的建议、并协助用户挑选物品的一种技术。一个好的推荐系统需要建立在海量数据挖掘基础之上,并根据用户所处的情景和兴趣特点,向用户推荐可能感兴趣的信息和商品。
协同过滤(Collaborative Filtering)是经典的推荐算法之一,它充分利用了用户和物品之间已知的关系,为用户提供新的推荐内容。我会从这种二元关系出发,给你讲讲如何使用矩阵计算,来实现协同过滤推荐算法。
用矩阵实现推荐系统的核心思想
矩阵中的二维关系,除了可以表达图的邻接关系,还可以表达推荐系统中用户和物品的关系。如果你不懂推荐系统,不用急,我这里先给你简单讲讲它的核心思想。
简单地理解就是,推荐系统会根据用户所处的场景和个人喜好,推荐他们可能感兴趣的信息和商品。比如,你在阅读一部电影的影评时,系统给你推荐了其他“你可能也感兴趣的电影”。可以看出来,推荐系统中至少有 2 个重要的角色:用户和物品。用户是系统的使用者,物品就是将要被推荐的候选对象。
例如,亚马逊网站的顾客就是用户,网站所销售的商品就是物品。需要注意的是,除了用户角色都是现实中的自然人,某些场景下被推荐的物品可能也是现实中的自然人。例如,一个招聘网站会给企业雇主推荐合适的人才,这时候应聘者承担的是物品角色。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
推荐系统中的矩阵操作在协同过滤推荐算法中的应用是本文的核心内容。文章首先介绍了推荐系统的基本思想,即通过挖掘用户和物品之间的关系,向用户推荐可能感兴趣的信息和商品。然后详细阐述了如何使用矩阵计算来实现协同过滤推荐算法,包括基于用户的过滤和基于物品的过滤。基于用户的过滤通过计算用户之间的相似度,利用近邻用户的访问记录来预测当前用户对物品的喜好度。而基于物品的过滤则是通过计算物品之间的相似度,来进行推荐。文章还通过具体的公式和矩阵操作示例,帮助读者理解了如何将算法转化为矩阵操作。此外,文章还提到了在基于用户的协同过滤中,用户喜好程度的可比性问题,并介绍了采用特征值变化对用户喜好度进行归一化或标准化处理的方法。总的来说,本文深入浅出地介绍了协同过滤推荐算法的原理和实现方法,对于理解推荐系统的技术特点具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》,新⼈⾸单¥68
《程序员的数学基础课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(14)
- 最新
- 精选
- 拉欧基于物品的相似度计算时,物品喜好度矩阵是用户喜好度矩阵的转置,是这样吗? 是选择基于用户的协同过滤还是基于物品的协同过滤,要考虑用户和物品哪一个维度数量比较少,相乘后产生的矩阵小,可以这样理解么?
作者回复: 第一个理解是对的。 第二个观点从效率的角度出发是合理的,不过也要结合具体实践中推荐的效果好坏来选择具体的算法,效率只是一方面。
2019-03-137 - 不熬夜爱益力多的小松这一章有较多东西不理解,其中基于用户的过滤中 X.X`得出的矩阵Y的意义是什么,是仅为为了余弦公式的分子吗?然后得出的Y如何使用,文章都是没有说到本质,很难理解
作者回复: 其中XX'主要是用于计算余弦,当然也可以直接调用编程库里所提供的函数。这里主要是让读者熟悉矩阵的操作。
2020-08-101 - teddytyy基于相似物品的推荐中,物品矩阵中存放的数据代表什么?值又是什么呢?
作者回复: 这里的物品矩阵具体是指哪个?
2019-12-2021 - Paul Shan先用夹角余弦计算两两用户之间的相似度,用这个相似度再重新计算用户i对某个物体j的喜好程度。即用所有用户对物品j的喜欢程度按照和用户i的相似度加权计算。今天的内容有点像马尔可夫过程,用户的喜好在原来的图中按照用户之间的相似度扩散了。
作者回复: 是的,有些类似,不过CF强调两种角色,user和item
2019-09-301 - 阿信刚又翻了下《数学之美》,基于物品相似度推荐,感觉可以借用信息量中“互信息”这个概念来描述。 “互信息”描述两个随机事件“相关性”的量化度量。这里用来描述物品的相关性。 如果物品A、B,被同一个用户购买的次数,在总购买次数中占比较大,则认为二者相关性高,可以作为彼此的候选推荐商品。 基于用户相似度推荐,计算用户对某个商品的喜好度,实践时选取哪些考量特征会是一个难点。如购买次数,针对快消品(如食品、饮料等),考量价值较大;但如果是家电之类的,可能需要考虑报障维修次数、回访调查满意度等信息。 如果是百货类的电商平台,基于物的相似度推荐,通用性是否更好?
作者回复: 这可能要看具体的推荐需求,比如是更想推荐同类商品、还是跨品类商品?
2019-07-201 - Geek_7bc035想问下,哪个pi,j公式里的m是啥意思,总人数嘛。
作者回复: 是的,m和n,一个是总人数,一个是总物品数
2022-02-10 - 常振华还是得复习一下线性代数才行,不然公式不好懂,原理倒是容易懂
作者回复: 确实如此,懂了基本原理,再来学习公式会相对容易
2020-11-19 - 米饭确实越来越难了,其中使用矩阵求解公式上看了很多遍,尤其是Y 来计算 US这部分,由于老师在图上的公式有笔误,所以看了很多遍才理解,希望老师尽快修改下图中的公式 正确的公式为: us(1, 2)=Σ x(1, j) * x(2, j) / ( sqrt( Σ pow(x(1, j), 2)) * sqrt(Σ pow(x(2, j), 2)) )
作者回复: 好的,我联系一下编辑
2020-08-242 - 弋轰使用 Y 来计算 US 的配图是不是有误?分子分母的其中一个 x_{1,j} 应为 x_{2,j} ?
作者回复: 编号有点问题,已经让编辑帮忙修改,多谢
2020-08-142 - qinggeouye基于物品的协同过滤矩阵操作: Y = X'·X 物品相似度: IS = [ [1.49655792, 0.04042765, 0. ], [0.04042765, 1.22789784, 1.10442966], [0. , 1.10442966, 1.49655792] ] 用户对物品对喜好度 归一化矩阵: P = [[0.26833698, 0.38846963, 0.34319338], [0.97369679, 0.0263032 , 0. ], [0.00886581, 0.47294886, 0.51818533], [0. , 0.42461935, 0.57538065]] 应该是这样。markdown 表示 https://github.com/qinggeouye/GeekTime/tree/master/MathematicProgrammer/38_Matrix2CollaborativeFiltering2019-03-2416
收起评论