推荐系统学习(一)推荐系统十四属性

综述

  • 在选择推荐系统进行推荐时需要考虑一系列属性;
  • 由于不同的需要,系统设计者必须决定对手头的具体应用的哪些重要属性进行评测;
  • 在某些情况下,一些属性改善时准确率会降低,所以一些属性必须进行折衷处理;
  • 对属性调整的时候,可以设置一个可变属性,物品通过这一属性的不同值进行推荐显示,然后评测参数对用户体验的影响。
  • 我们针对以下14种属性进行分别叙述:用户偏好、预测准确度、覆盖率、置信度、信任度、新颖度、惊喜度、多样性、效用、风险、健壮性、隐私、适应性和可扩展性。

用户偏好

 若要选择一个推荐算法,最普通的是通过用户调查,选择出一个得票最多的系统;然而,若要得到一个客观而公正的结果,我们必须考虑用户的权重大小问题和选择的无二义性:

  • 用户权重:在进行用户调查的时候我们不能忽视掉不同用户的影响与等级的不相同的,潜在利益更多的用户显然应该在调查时赋予更高的权重,已获得最大化的利益。
  • 选择非二义性:对于用户的调查问题,并不是简单的选择和拒绝问题,也不是简单的喜爱和不喜爱问题,不同的感情倾向能够代表用户对于推荐算法结果的更细微的评价。

 在比较推荐算法时,若一个推荐算法获得的评价优于其他,需要考察其获胜的原因,为了便于考察,应该将满意度分为较小的组件。

预测准确度

 对于推荐系统有一个基本的假设,即用户更喜欢推荐更精确的系统,因此寻找提供更精确预测的算法是许多研究人员的方向,以下三类是主要的预测准确度评测:

  1. 评分预测准确度评测

    均方根误差(RMSE),其中 r ^ u i \hat{r}_{ui} r^ui是根据真实评分 r u i r_{ui} rui而在测试集上生成的预测评分,公式如下:

    R M S E = ∑ ( u , i ) ∈ τ ( r ^ u i − r u i ) 2 ∣ τ ∣ RMSE=\sqrt{\frac{\sum_{(u, i)\in\tau}(\hat{r}_{ui} - r_{ui})^2}{|\tau|}} RMSE=τ(u,i)τ(r^uirui)2

    平均绝对误差(MAE)公式与均方根误差相比对大的误差惩罚较小,公式如下:

    M A E = ∑ ( u , i ) ∈ τ ∣ r ^ u i − r u i ∣ ∣ τ ∣ MAE=\sqrt{\frac{\sum_{(u, i)\in\tau}|\hat{r}_{ui} - r_{ui}|}{|\tau|}} MAE=τ(u,i)τr^uirui

    归一化均方根误差(NMRSE)和归一化平均绝对误差(NMAE)是在一定范围内归一的RMSE和MAE,其排序结果与未归一时相同。

  2. 使用预测准确度评测

对于推荐和隐藏的隐藏的物品,可能有如下四种情况:

被推荐未被推荐
使用真阳性数(tp)假阴性数(fn)
未被使用假阳性数(fp)真阴性数(tn)

我们可以计算如下数值:
P r e c i s i o n = t p t p + f p {Precision=\large{\frac{tp}{tp+fp}}} Precision=tp+fptp

R e c a l l ( T r u e P o s i t i v e R a t e ) = t p t p + f n Recall(True Positive Rate) = \large{\frac{tp}{tp+fn}} Recall(TruePositiveRate)=tp+fntp

F a l s e P o s i t i v e R a t e ( 1 − S p e c i f i c i t y ) = f p f p + f n False Positive Rate(1-Specificity)=\large{\frac{fp}{fp+fn}} FalsePositiveRate(1Specificity)=fp+fnfp

 我们可以考察查准率和查全率的比较曲线,或者ROC曲线,可以参考我的博文 ROC与AUC的定义与概念。查准率-查全率曲线和ROC曲线还是有一定的差别——前者着重于用户偏好物品的比率,而后者着重于被推荐但用户不喜欢的物品的比率。

 在为每个用户都指定固定数量推荐的应用中,我们可以为每个用户计算推荐列表长度为N 时的查准率和查全率或ROC曲线,然后在每个N上面计算正确度和查全率的平均值。这样得到的曲线为每个可达到的查准率和查全率规定了一个N值,其还可以用来评估在某一给定N值上的性能。这样得到的曲线为Customer ROC曲线(CROC)

  1. 排名方法
使用偏好排名

 为评估相对于参考排序的排序算法,首先需要获取这样一个参考。在用户对物品的显性评分可获得的情况下,可以将被评分的物品按照评分递减排序,且排名可相同,**归一化的基于距离的性能评测(NDPM)**方法适用于这种情况。
如果在用户 u u u n u n_u nu个物品 i i i上有参考排名 r u i r_{ui} rui和系统排名 r ^ u i \hat{r}_{ui} r^ui,那么我们作出如下定义:

C + = ∑ i j s g n ( r u i − r u j ) s g n ( r ^ u i − r ^ u j ) C^+=\sum_{ij}sgn(r_{ui}-r_{uj})sgn(\hat{r}_{ui}-\hat{r}_{uj}) C+=ijsgn(ruiruj)sgn(r^uir^uj)

C − = ∑ i j s g n ( r u i − r u j ) s g n ( r ^ u j − r ^ u i ) C^-=\sum_{ij}sgn(r_{ui}-r_{uj})sgn(\hat{r}_{uj}-\hat{r}_{ui}) C=ijsgn(ruiruj)sgn(r^ujr^ui)

C u = ∑ i j s g n 2 ( r u i − r u j ) C^u=\sum_{ij}sgn^2(r_{ui}-r_{uj}) Cu=ijsgn2(ruiruj)

C s = ∑ i j s g n 2 ( r ^ u i − r ^ u j ) C^s=\sum_{ij}sgn^2(\hat{r}_{ui}-\hat{r}_{uj}) Cs=ijsgn2(r^uir^uj)

C u 0 = C u − ( C + + C − ) C^{u0}=C^u-(C^++C^-) Cu0=Cu(C++C)

N D P M = C − + 0.5 C u 0 C u NDPM=\large{\frac{C^- + 0.5C^{u0}}{C^u}} NDPM=CuC+0.5Cu0

 当系统正确的预测参考中显示的每个偏好的关系时,NDPM会给出一个完美的0分,最差的分数1分赋给那些预测与每个参考偏好关系相矛盾的系统。

 在某些情况下,我们可能完全了解用户对某些物品集的真实喜好,这时一个物品对在参考排名中排序相同意味着用户对两个物品不关心,理想的系统应将两个物品赋予相同的排名。

 我们可以用Spearman的 ρ \rho ρ或者Kendall的 τ \tau τ来计算排名相关性:

τ = C + − C − C u C s \LARGE{\tau=\frac{C^+-C^-}{\sqrt{C^u}\sqrt{C^s}}} τ=Cu Cs C+C

ρ = 1 n u ∑ i ( r i , u − r ˉ ) ( r ^ i , u − r ^ ˉ ) σ ( r ) σ ( r ^ ) \LARGE{\rho=\frac{1}{n_u}\frac{\sum_i(r_{i,u}-\bar{r})(\hat{r}_{i,u}-\bar{\hat{r}})}{\sigma(r)\sigma({\hat{r})}}} ρ=nu1σ(r)σ(r^)i(ri,urˉ)(r^i,ur^ˉ)

基于可用性的排名

 我们可以假设推荐列表的效用是累积的,由个人的推荐效用之和给出,每个推荐的效用为该被推荐物品的效用基于其在推荐列表中的位置打一个折扣。若假设用户从头到尾地浏览推荐,则越往后推荐的效用折扣越大,我们使用R-Score度量来模拟推荐值沿着排名列表以指数形式递减:

R u = ∑ u ∑ j m a x ( r u i j − d , 0 ) 2 j − 1 α − 1 \large{R_u=}\LARGE{\sum_u\sum_j\frac{max(r_{ui_j}-d,0)}{2^\frac{j-1}{\alpha-1}}} Ru=uj2α1j1max(ruijd,0)

 其中, i j i_j ij是位置为 j j j的物品, r u i r_{ui} rui是用户u对物品 i i i的评分, d d d是任务相关的中立评分, α \alpha α是半衰期参数,控制排名列表中位置值的指数衰减。

 在其他应用中,用户乐意阅读很大一部分的列表,在此情况下位置折扣需要一个较低的衰减,我们使用归一化折扣累计效益(NDCG)评价折扣累计收益(DCG) 来模拟:

 假设用户u被推荐物品i会得到一个“收益” g u i g_{ui} gui,物品集合 J J J的平均折扣累计效益可以定义为:

D C G = 1 N ∑ u = 1 N ∑ j = 1 J g u i j m a x ( 1 , l o g b j ) \large{DCG=}\LARGE{\frac{1}{N}\sum^N_{u=1}\sum^J_{j=1}\frac{g_{ui_j}}{max(1,log_bj)}} DCG=N1u=1Nj=1Jmax(1,logbj)guij

N D C G = D C G D C G ∗ \large{NDCG=}\LARGE{\frac{DCG}{DCG^*}} NDCG=DCGDCG

在线排名评估

 在为评估推荐列表排名而设计的在线实验中,我们可以观察用户与系统的交互。在推荐列表展现在用户面前时,用户可能会从列表中选择一定量的物品,我们可以假设用户至少浏览到了最后选择的位置。

 交互结果可以分为三部分——感兴趣的物品,不感兴趣的物品和未知物品,我们可以用一个合适的参考排名来为原来的列表打分。参考列表有不同的形式,我们应牢记参考排名因离线评估的情况而不同。在离线评估中,我们有一个被假设为正确的参考排名,然后衡量每个推荐偏离“正确”排名有多少。

覆盖率

  1. 物品空间覆盖率

 最常见的物品覆盖率的定义为系统可以推荐的物品的比例,经常称为目录覆盖率,我们可以通过计算所以曾经被推荐过的物品的百分比来计算它。

 我们还可以计算离线、在线或用户调查实验中被推荐给用户的物品所占比例,有时需要为其加权重,如流行度或效用。

 我们还可以通过基尼系数 G G G和香农熵 H H H来计算分布的均等性,以衡量销售多样性,其中 p ( i ) p(i) p(i)是对于每个物品 i i i用户的选择概率:

G = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p ( i j ) \large{G = \frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j)} G=n11j=1n(2jn1)p(ij)
其中 i 1 , . . . , i n i_1, ..., i_n i1,...,in 为物品列表,按照 p ( i ) p(i) p(i)递增排序,所有物品被选择则它为0,只有一个物品被选择则为1;

H = − ∑ i = 1 n p ( i ) l o g p ( i ) \large{H=-\sum_{i=1}^np(i)\mathrm{log}p(i)} H=i=1np(i)logp(i)
当某个物品总是被选择或者推荐时,熵为0;当n个物品同时被选择和推荐时,熵为1。

  1. 用户空间覆盖率

 覆盖率也可以是用户或用户与可以推荐物品的系统交互所占比例。在许多应用中,推荐系统可能不会为某些用户进行推荐,即该用户的预测准确度置信度低。这种情况下我们比较喜欢可以为更广泛用户提供推荐的系统。

  1. 冷启动问题

 冷启动问题指系统在遇到新物品和新用户时的性能,可以看做覆盖率的子问题,因为它评估的是系统在特定物品集合用户集的覆盖率。除了计算冷启动物品和用户池,为这些物品和用户计算系统的准确度也是很重要的。

 针对物品冷启动,我们可以使用一个阈值来推断冷启动物品集,比如冷启动物品是没有评分或没有使用证据的物品,或者在系统中存在不超过某个时间的物品,又或者是证据数量不超过预定值的物品。

 一个系统要更好地推荐冷门物品可能要付出降低热门物品准确度的代价,在这种情形下我们需要权衡二者。

置信度

 置信度可以定义为系统在推荐和预测上的可信度。正如协同过滤推荐的准确度随着数据量的增加而增加,被预测属性的置信度一般也随着数据量的增加而增加。

 对于用户来说,当系统为推荐物品赋予一个低置信度时,用户可能会在下决定之前查看更多的物品。

 最常用的置信度度量方法是计算预测值为真实的概率,或者计算落于真实值预定义部分内(如95%)的区间。

 标准置信区间可以在常规的离线实验中直接估计出来,我们可以为每个特定的置信度类型设计一个分数,用来评估置信度估测方法与真正的错误预测的差距。

 置信区间的另一个应用是通过预测值的置信度低于某个阈值来过滤推荐物品,我们可以根据这个过滤设计一个实验,在两个算法过滤掉置信度物品后比较二者的准确度。

信任度

 信任度是指用户对系统推荐结果的信任程度。比如推荐用户已经知道或喜欢的物品也许会有益于系统,这样即使用户没有得到有价值的推荐内容,但他注意到系统提供的推荐是合理的,这样可以增加他对系统推荐的未知物品的信任。我们还可以通过解释系统提供的推荐来增加系统信任度。

 我们还可以通过在用户调查中询问用户该推荐系统是否合理,我们可以在其中将推荐的数量与信任度相结合,假设信任度越高被使用的推荐就会越多。我们还可以假设系统的信任度与重复用户有关。然而这样的方法还可能与用户满意度的其他因素有关。

新颖度

 新颖的推荐是指为用户推荐他们以前没有听说过的物品。在需要新颖性推荐的应用中,最明显简单的方法是过滤掉用户已经评分或使用过的物品。由于在许多情况下用户并不会提供他们过去使用过的所有物品,因此这个简单的方法并不足够过滤掉知道的物品。

 我们可以在用户调查中通过询问用户是否熟悉推荐物品来评测新颖度,同时我们也可以在一个实验中将数据通过时间进行分割,如隐藏所有在某个特定时间点出现的用户评分,以模拟用户熟悉但没有评分的物品。在进行推荐时,每个时间片之后评分的被推荐物品将受到奖励,时间片之前评分的被推荐物品将受到惩罚。我们应仔细构建隐藏过程,以模拟真实系统中偏好的发掘过程,这样我们可以处理已评分物品与用户熟悉物品的平均取样之间的偏差。

 通过用户调查我们发现人们并不倾向为他们没有强烈感觉的电影打分,偶尔也不会为他们喜欢或者不喜欢的电影评分。因此,我们以 1 − ∣ r − 3 ∣ 2 1-\large{\frac{|r-3|}{2}} 12r3的概率隐藏在分界点之前的电影评分,其中 r ∈ { 1 , 2 , 3 , 4 , 5 } r\in\{1,2,3,4,5\} r{1,2,3,4,5}是电影的评分, 3 3 3是中性评分。

 我们还可以假设流行的物品很少是新颖的,因此我们可以区分对流行商品的预测和对非流行商品的预测。

 我们还可以将推荐中新信息量与推荐物品之间的相关性一起评估,比如通过推荐物品的某个信息化方法乘以隐藏评分来生成新颖度分数。

惊喜度

 惊喜度可以认为是推荐中对用户来说比较新颖的相关信息的量,比如推荐用户喜欢的演员的一系列电影。在信息检索中,新奇度典型被认为是在文档中找到新的信息。我们可以手动对一些文件标记为冗余文件,然后通过比较算法避免推荐冗余的文档。

 为了避免人工估计,可以设计一红项目之间基于内容的距离测量方式,接着对成功的推荐进行评分,这种评分主要是通过之前的协同过滤系统或从基于内容推荐的用户模型中一系列先前评分项目的距离中计算出来的。

 我们可以认为惊喜度是“自然”预测推荐的一个偏离,即它们在一个有较高准确率的推荐引擎中显得有些太“明显”。因此我们会把预测引擎中认为不可能的成功推荐给予一个更高的惊喜度分数。

 我们可以通过让一个用户去标记它们认为非期望的推荐结果,来评估推荐的惊喜度,然后可以尝试发掘用户是否顺从这些推荐结果,这些推荐使得用户未期望的和成功的推荐被认为是惊喜度。

多样性

 多样性一般定义成相似度的相反面。在一些情况下推荐一系列相似的项目可能对于用户没有用,因为它可能需要更长的时间来探索范围。

 测量多样性经常的方法是使用物品-物品相似性。然后我们可以测量基于和、平均、最小和最大物品的列表的多样性,或者测量从已在列表中的物品,将每个物品加到推荐列表作为新物品的多样性的值。

 我们可以用代价更高的衡量标准评估,得到比快速近似方法得到的更精准的结果。

效用

 许多电子商务网站使用推荐系统是为了改善营销,这种情况下推荐系统的效果可以通过网站的收入来判断,在这种情况下衡量效用或者推荐的期望效用可能比衡量准确性还要重要。在这里效用定义为系统或用户从一次推荐中获取的价值。

 效用可以从推荐引擎或推荐系统本身的角度来衡量,因为用户效用或偏好是很难捕捉和建模的,而且汇总不同用户的效用去计算一个推荐分数是不清晰的。

 在一个用户评价物品的应用中,我们可以使用评分作为效用测量,高分数可以认为是高的效用。若某个推荐物品冒犯了用户,我们还可以对推荐分配一个负效用来惩罚该系统。

 对于任何推荐功能,推荐的标志评价是计算一个评价的期望效用。若推荐系统仅仅尝试预测一个单一物品,一个合适的推荐值应该是物品的效用;若推荐系统预测N个物品,则我们可以使用列表中正确的推荐效用总和。最后,我们可以基于最优的推荐列表使用最大可能效用来使得结果评分标准化。

风险

 在一些情况下,一个推荐可能是存在潜在风险的,如股票。在这种情况下我们不仅应该考虑推荐中产生的价值,而且还希望能够选择风险最小的。

 标准的评价风险敏感度的系统,不仅考虑期望效用,还考虑效用方差,比如我们可以用一个参数 q q q来比较两个系统的 E [ X ] + q ⋅ V a r ( x ) E[X]+q\cdot\mathrm{Var}(x) E[X]+qVar(x)。当 q q q是负的时,系统就会推荐规避风险的内容。

健壮性

 健壮性是指在出现虚假信息的情况下推荐的稳定性,尤其是被故意插入为了影响推荐的虚假信息。随着对推荐系统的愈发依赖,通过影响系统来更改某一物品的评级对利害关系人可能是有利可图的,比如为自己注入积极评价或消极评价竞争对手。

 这种影响推荐的企图通常称为攻击。当一个恶意用户有意地查询数据集或者注入虚假信息以了解一些用户的私人信息时,协同攻击就会发生。对于这类情况,提供一个完整的攻击协议书是十分重要的。

 通常无法创建一个能免除任何攻击的系统,所以估计影响推荐的成本是十分有用的,这样我们能够从攻击程度超过什么程度开始攻击者会得不偿失。我们可以通过向系统的数据集中导入虚假信息来模拟一组攻击,实证测量一次成功攻击的平均成本。

 另一种类型的稳健性是指在极端条件下的稳定性,如大量请求发生时,在这种情况下系统管理员必须避免系统故障的发生。这通常与基础设施和系统的可扩展性相关。

隐私

 在一个协同过滤系统中,用户愿意提供自己的物品偏好以期得到好的推荐,但保持隐私对许多用户来说也是很重要的。

 一般来讲,推荐系统泄露私人信息,甚至是个人隐私,都是不适当的。分析隐私一般趋向聚焦在不好的情景中,在用户隐私可能泄露的情况下说明一些事实;我们还可以通过评估那些隐私信息被泄露的用户的比例来比较算法。假设完全的隐私是不现实的,因此我们必须减少侵犯隐私。

 我们可以定义不同的隐私程度,比如k-匿名模型;或者对于不同程度的隐私侵犯比较算法敏感度。

 隐私的保护需要以推荐的准确性作为代价,因此必须在这两者之间寻求一个平衡,或者在隐私修正加到算法后重新评估准确性。

适应性

 现实中的推荐系统可以在那些物品集有很大变化的环境中或兴趣趋势经常改变的环境中运行。当未预料的新事件发生时,人们会对这类事件以及一些相关的旧事物感兴趣。

 这种类型的适应性可以通过分析推荐之前的信息数量来离线评价。一个算法可以快速适应推荐的物品,但是需要牺牲推荐的准确性。我们可以通过评估准确率和趋势改变的速度之间的平衡来比较两种算法。

 另一组适应性类型是适应用户的个人偏好进行评分,即对用户对某一物品的评分做出反应,我们可以通过测量推荐列表在增加新信息之前和之后的不同来评估算法。

可扩展性

 随着数据集的增长,许多算法会降低速度,或需要更多的资源,如计算能力和内存。在许多情况下,可以通过改变某些参数来降低复杂度,如模型的复杂度或样本大小。因此,记录系统在大数据集下的系统消耗是很有用的。

 在可扩展性的测量过程中,我们可以通过增长数据集的大小的实验显示速度和资源的消耗行为,以及准确度的变化。我们还可以通过测量系统的吞吐量或延迟时间来衡量系统的推荐速度。

参考资料

《推荐系统》(技术、评估及高效算法)豆瓣链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值