推荐系统实践-第二章-利用用户行为

本文是查看了此章节之后,对其中一些不理解和书中未深入涉及内容的扩展,而非书籍内容的忠实记录。

用户行为

线性反馈行为:如打分、点赞投币收藏。
隐形反馈行为:页面浏览行为。

召回率和准确率

准确率(Precision)和召回率(Recall)是评估分类模型(特别是在二元分类问题中)性能的两个关键指标。它们通常用于评估模型在预测正类(例如,预测一个邮件是否为垃圾邮件)方面的表现。理解这两个指标的区别对于评估模型的性能非常重要。

  1. 准确率 (Precision):准确率是指模型正确预测为正类的样本占所有预测为正类样本的比例。换句话说,它回答了这样一个问题:“在所有被模型标记为正类的样本中,有多少是真正的正类?” 准确率的计算公式为:

    Precision = True Positives (TP) True Positives (TP) + False Positives (FP) \text{Precision} = \frac{\text{True Positives (TP)}}{\text{True Positives (TP) + False Positives (FP)}} Precision=True Positives (TP) + False Positives (FP)True Positives (TP)

    其中,True Positives (TP)是模型正确预测为正类的样本数量,False Positives (FP)是模型错误预测为正类的样本数量。

  2. 召回率 (Recall):召回率是指模型正确预测为正类的样本占所有实际正类样本的比例。它关注于模型捕捉正类样本的能力。召回率的计算公式为:

    Recall = True Positives (TP) True Positives (TP) + False Negatives (FN) \text{Recall} = \frac{\text{True Positives (TP)}}{\text{True Positives (TP) + False Negatives (FN)}} Recall=True Positives (TP) + False Negatives (FN)True Positives (TP)

    其中,False Negatives (FN)是模型错误预测为负类的实际正类样本数量。

准确率和召回率之间通常存在一种折中关系(trade-off)。提高准确率通常会降低召回率,反之亦然。例如,一个非常严格的模型(只有在非常确定时才预测正类,因此预测较少)可能会有高准确率(因为它减少了错误预测正类的情况),但它可能错过很多实际的正类(因此有低召回率)。相反,一个更宽松的模型可能会有更高的召回率(因为它尽量捕捉所有可能的正类,预测的数量较多),但同时可能会增加错误预测为正类的情况(因此有低准确率)。

基于邻域的算法

基于用户的协同过滤算法

(1)找到和目标用户兴趣相似的用户集合。
(2)将该集合中用户喜欢的,但目标用户没有听说过的物品推荐给目标用户。
分为UserCF和User-IIF。

基于物品的协同过滤算法

(1)计算物品之间的相似度。
(2)根据物品的相似度和用户的历史行为给用户生成推荐列表。
分为ItemCF、ItemCF-IUF和ItemCF-norm。

Personal Rank

Personal Rank公式

PersonalRank算法是基于图的推荐算法,它是PageRank算法的一个变种,用于个性化推荐。在PageRank算法中,每个网页的重要性是通过网页之间的链接关系来确定的,而在PersonalRank算法中,给定一个用户,算法会从用户个人的角度出发,计算网络中每个物品对该用户的个性化重要性。

公式中的PR(v)代表顶点(可以是用户或物品)的PersonalRank值,即该顶点对特定用户的个性化重要性。公式的含义如下:

  • ( v ≠ v u ) ( v \neq v_u ) (v=vu) 时(即对于除了特定用户 v u v_u vu 外的所有顶点), ( P R ( v ) ) ( PR(v) ) (PR(v)) 的值是由邻居顶点(即直接链接到 v v v 的所有顶点)的PersonalRank值和其出度(即从邻居顶点出发的链接数)的倒数相乘后再乘以一个阻尼系数 α \alpha α 得来的。这个阻尼系数通常设置为0.85,模拟了一个随机网页浏览者继续点击下一个链接的概率。

  • ( v = v u ) ( v = v_u ) (v=vu) 时(即特定用户 $v_u $ 自己的顶点), P R ( v ) PR(v) PR(v) 除了上述的邻居顶点贡献外,还包括一个常数项 ( 1 − α ) ( 1 - \alpha ) (1α)。这个常数项代表了无论网络结构如何,用户自身都具有的基础重要性。

在个性化推荐系统中,PersonalRank算法可以模拟这样一个过程:从目标用户节点开始,以一定的概率随机游走到相邻的节点(如物品节点),然后继续游走或者以一定的概率跳回到初始的用户节点。算法迭代直到达到稳定状态,最终每个物品节点的PersonalRank值可以作为推荐的依据。

简单来说,PersonalRank算法通过模拟随机游走的方式来量化用户和物品节点的相关性,这样可以对每个物品进行排名,排名越高,物品就越可能被推荐给用户。

PersonalRank算法的公式可以通过矩阵运算来求解,这个过程与PageRank算法的求解相似。求解PersonalRank通常涉及到构建转移矩阵和随机游走的概念。

在图论中,我们可以构造一个转移矩阵 M M M,其中每个元素 M i j M_{ij} Mij 表示从节点 i i i 转移到节点 j j j 的概率。对于无向图, M M M是一个对称矩阵。对于有向图, M M M的每列的和为1,每个元素 M i j M_{ij} Mij 是节点 i i i的出度的倒数。

PersonalRank算法的迭代公式可以表示为:

P R = ( 1 − α ) ⋅ v + α ⋅ M ⋅ P R PR = (1-\alpha) \cdot v + \alpha \cdot M \cdot PR PR=(1α)v+αMPR

其中:

  • P R PR PR是一个列向量,其每个元素代表图中每个节点的PersonalRank值。
  • v v v是一个列向量,只有目标用户节点的位置是1,其余都是0。
  • α \alpha α是阻尼因子,通常设置为0.85,表示继续游走的概率。
  • M M M是转移矩阵,表示从一个节点到另一个节点游走的概率。

要求解 P R PR PR,我们需要解下面的方程:

P R = ( 1 − α ) ⋅ v + α ⋅ M ⋅ P R PR = (1-\alpha) \cdot v + \alpha \cdot M \cdot PR PR=(1α)v+αMPR
这个方程可以重写为:

P R = ( 1 − α ) ⋅ ( I − α ⋅ M ) − 1 ⋅ v PR = (1-\alpha) \cdot (I - \alpha \cdot M)^{-1} \cdot v PR=(1α)(IαM)1v

其中 ( I ) 是单位矩阵。这个方程可以看作是线性方程组:

( I − α ⋅ M ) ⋅ P R = ( 1 − α ) ⋅ v (I - \alpha \cdot M) \cdot PR = (1-\alpha) \cdot v (IαM)PR=(1α)v

这个线性方程组可以使用矩阵逆运算、迭代方法或者其他线性系统求解方法来求解 P R PR PR。在实际应用中,由于转移矩阵 M M M可能非常大,直接计算逆矩阵可能不切实际,因此通常使用迭代方法如幂迭代或雅可比迭代来求解 P R PR PR。这些方法从一个初始估计开始,逐渐逼近真实的 P R PR PR值,直到达到收敛条件为止。

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值