推荐系统实践(项亮)第一章笔记

第一章 好的推荐系统

1.1 什么是推荐系统

以看电影为例:

社会化推荐:找朋友问,发布动态等待热心人评论。既让好友给自己推荐物品。

基于内容的推荐:输入喜欢的演员名,发现没看过的就去观看。这种方式是寻找和自己之前看过的在内容上相似的电影。推荐系统可以将上述过程自动化,通过分析用户的喜欢的导演、演员等,然后给用户推荐相关电影。

基于协同过滤的推荐:看看别人都在看什么,找一部广受好评的进行观看。即找到和自己历史兴趣相似的一群用户,这样的结果可能比宽泛的热门排行榜更能符合自己的兴趣。

因此,推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。如图1-2展示了三种方式。

图1-2 推荐系统常用的3种联系用户和物品的方式

1.2 个性化推荐系统的应用

与搜索引擎不同,个性化推荐系统组要依赖用户的行为数据,因此一般是作为一个应用存在于不同的网站中。其通过大量分析用户日志进而提供给用户不同的个性化页面展示,来提高网站的CTR和CVR。

广泛应用RS的领域包括电子商务,阅读,音乐,个性化邮件和广告等。但总的来说,几乎所有的推荐系统都是由前台的展示页面、后台的日志系统、以及推荐算法系统3部分构成。下面围绕这三个方面对不同的个性化推荐系统应用进行介绍。


  CVR (Click Value Rate): 转化率,衡量CPA广告效果的指标
  CTR (Click Through Rate): 点击率
  CPC (Cost Per Click): 按点击计费
  CPA (Cost Per Action): 按成果数计费
  CPM (Cost Per Mille): 按千次展现计费
  PV (Page View): 流量
  PV单价: 每PV的收入,衡量页面流量变现能力的指标
  ADPV (Advertisement Page View): 载有广告的pageview流量
  ADimp (ADimpression): 单个广告的展示次数
  RPS (Revenue Per Search): 每搜索产生的收入,衡量搜索结果变现能力指标
  ROI:投资回报率(ROI)是指通过投资而应返回的价值,它涵盖了企业的获利目标。利润和投入的经营所必备的财产相关,因为管理人员必须通过投资和现有财产获得利润。又称会计收益率、投资利润率。


1.2.1 电子商务

以亚马逊的推荐系统为例,最主要的应用有个性化商品推荐列表相关商品的推荐列表

个性化推荐列表(两种):

  • 基于物品的推荐算法,给用户推荐那些和他们之前喜欢的物品相似的物品
  • 按照用户在脸书上的好友关系,给用户推荐他们好友在亚马逊上喜欢的物品

相关推荐列表(两种):

  • 买了这个商品的用户也经常购买的其他商品
  • 浏览过这个商品的用户经常购买的其他用品

两者使用了不同用户行为计算物品的相关性。此外。会让你选择是否同时购买,他会把这几件商品“打包”,同时可能会提供折扣。这种销售手段是推荐算法最重要的应用。

1.2.2 电影和视频网站

1.2.8 个性化广告

个性化广告投放目前已经成为了一们独立的学科——计算广告学——该学科和推荐系统在很多基础理论和方法上是相通的,比如他们的目的都是联系用户和物品,只是在个性化广告中,物品就是广告。

个性化广告投放和狭义个性化推荐的区别是,个性化推荐着重于帮助用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对它们感兴趣的用户,即一个是以用户为核心,而另一个以广告为核心。目前的个性化广告投放技术主要分为3种。

  • 上下文广告$\quad$通过分析用户正在浏览的网页内容,投放和网页内容相关的广告。
  • 搜索广告$\quad$通过分析用户在当前会话中的搜索记录,判断用户的搜索目的,投放和用户目的相关的广告。
  • 个性化展示广告$\quad$我们经常在很多网站看到大量展示广告(就是那些大的横幅图片),它们是根据用户的兴趣,对不同用户投放不同的展示广告。雅虎是这方面研究的代表。

1.3 推荐系统评测

什么才是好的推荐系统?这是推荐系统评测需要解决的首要问题。一个完整的推荐系统一般存在3个参与方(如图1-22所示):用户、物品提供者和提供推荐系统的网站

以图书推荐为例,首先,推荐系统需要满足用户的需求,给用户推荐那些令他们感兴趣的图书。其次,推荐系统要让各出版社的书都能够被推荐给对其感兴趣的用户,而不是只推荐几个大型出版社的书。最后,好的推荐系统设计,能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量,增加用户和网站的交互,提高网站的收入。

因此在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。

需要注意的是,做出准确预测的推荐系统并不意味着好的推荐系统。假如一个图书推荐系统预测一个用户将来会购买《C++Primer中文版》这本书,而用户后来确实均买了,那么这就被看做一次准确的预测。预测准确度是推荐系统领域的重要指标(没有之一)。这个指标的好处是,它可以比较容易地通过离线方式计算出来从而方便研究人员快速评价和选择不同的推荐算法。但是,很多研究表明,准确的预测并不代表好的推荐。比如说,该用户早就准备买《C++Primer中文版》了,无论是否给他推荐,他都准备购买,那么这个推荐结果显然是不好的,因为它并未使用户购买更多的书,而仅仅是方便用户购买一本他本来就准备买的书。

那么,对于用户来说,他会觉得这个推荐结果很不新颖,不能令他惊喜。同时,对于《C++Primer中文版》的出版社来说,这个推荐也没能增加这本书的潜在购买人数。所以,这是一个看上去很好,但其实却很失败的推荐。举一个更极端的例子,某推测系统预测明天太阳将从东方升起,虽然预测准确率是100%,却是一种没有意义的预测。

好的推荐系统不仅仅能够准确预测用户的行为,还能帮助用户发现那些他们可能会感兴趣,但却不那么容易发现的东西。同时,推荐系统还要能够帮助商家将那些被埋没在长尾中的好商品介绍给可能会对它们感兴趣的用户。

为了全面评测推荐系统对三方利益的影响,本章将从不同角度出发,提出不同的指标。这些指标包括准确度、覆盖度、新颖度、惊喜度、信任度、透明度等。这些指标中,有些可以离线计算,有些只有在线才能计算,有些只能通过用户问卷获得。下面各节将会依次介绍这些指标的出发点、含义,以及一些指标的计算方法。

1.3.1 推荐系统实验方法

三种评测推荐效果的实验方法:

  • 离线实验(offline experiment)
  • 用户调查(user study)
  • 在线实验(online experiment)

1. 离线实验

离线实验一般由以下几个步骤构成:

(1) 通过日志系统获得用户行为数据,并按照一定格式生成一个表针的数据集

(2) 将数据按规则分为训练集和测试集

(3) 在训练集上训练用户兴趣模型,在测试集上进行预测

(4) 通过事先定义的离线指标评测算法在测试集上的预测结果

​ 从上面的步骤可以看到,推荐系统的离线实验都是在数据集上完成的,也就是说它不需要一个实际的系统来供它实验,而只要有一个从实际系统日志中提取的数据集即可。这种实验方法的好处是不需要真实用户参与可以直接快速地计算出来,从而方便、快速地测试大量不同的算法。主要缺点是无法获得很多商业上关注的指标,如点击率、转化率等,而找到和商业指标非常相关的离线指标也是很困难的事情。表1-2简单总结了离线实验的优缺点点。

图1-2 推荐系统常用的3种联系用户和物品的方式
优点 缺点
不需要对实际系统的控制权 无法计算商业上关心的指标
不需要用户参与实验 离线实验的指标和商业指标存在差距
速度快

2. 用户调查

​ 离线实验的指标和实际的商业指标存在差距,如预测准确率和用户满意度。因此准确评测算法需要相对比较真实的环境,最好的方法就是将算法直接上线测试,但可能会降低用户满意度,因此在上线前需要做一次成为用户调查的测试。

​ 用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,我们需要观察和记录他们的行为,并让他们回答一些问题。最后,我们需要通过分析他们的行为和答案了解测试系统的性能。离线时没有办法评测的与用户主观感受有关的指标都可以通过用户调查获得。

缺点:成本很高,很难进行大规模的用户调查,人数较少的用户调查,往往没有统计意义。此外,需要尽量保证测试用户的分布和真实用户的分布相同,比如男女各半,以及年龄、活跃度的分布都和真实用户分布尽量相同。用户调查要尽量保证是双盲实验,不要让实验人员和用户事先知道测试目标,以免测试受主观成分的影响。(在很多时候设计双盲实验非常困难,因而在测试环境下收集的测试指标可能在真实环境下无法重现。)
优点:可以获得体现用户主观感受的指标,在线实验风险很低,出现错误后很容易弥补。

3. 在线实验

​ 完成离线实验和用户调查后,可将推荐系统上线做AB测试,将其和旧的算法进行比较

AB测试是一种在线评测算法的实验方法,通过一定规则将用户随机分为几组,不同组采用不同算法,进而统计各自的评测指标来比较不同算法.

​ **优点:**可公平获得不同算法实际在显示的性能指标

​ **缺点:**周期过长,需要长期实验才能得到可靠的结果.因此一般只会用AB测试测试在离线实验和用户调查中表现很好的算法.同时考虑这样一种情况,对于一个大型网站,其前端和后端由不同团队控制,可能进行一个后台推荐算法AB测试时网页团队在做推荐页面的界面AB测试.因此,切分流量是AB测试中的关键,不同的层以及控制这些层的团队需要从一个统一的地方获得自己AB测试的流量,而不同层之间的流量应该是正交的。

​ 图1-23是一个简单的AB测试系统,用户进入网站后,流量分配系统决定用户是否需要被进行AB测试,如果需要的话,流量分配系统会给用户打上在测试中属于什么分组的标签。然后用户浏览网页,而用户在浏览网页时的行为都会被通过日志系统发回后台的日志数据库。此时,如果用户有测试分组的标签,那么该标签也会被发回后台数据库。

​ 在后台,实验人员的工作首先是配置流量分配系统,决定满足什么条件的用户参加什么样的测试。其次,实验人员需要统计日志数据库中的数据,通过评测系统生成不同分组用户的实验报告,并比较和评测实验结果。

图1-23AB测试系统

​ 一般来说,一个新的推荐系统最终上线,需要完成上面所说的三个实验:

  • 通过离线实验证明它在很多离线指标上优于现有的算法
  • 通过用户调查确定它的用户满意度不低于现有的算法
  • 通过在线的AB测试确定它在我们关心的指标上优于现有的算法

1.3.2 评测指标

1.用户满意度

​ 无法离线计算,只能通过用户调查或在线实验获得.

​ 用户调查获得用户满意度一般是通过调查问卷的形式,问卷的设计不是简单的满意/不满意,应考虑到各个感受.

​ 在线系统中,用户满意度主要通过对用户行为的统计得到.例如电商网站中,购买率可以度量用户的满意度.或者是设计用户反馈页面手机用户满意度,如bilibili下的不感兴趣.

​ 更一般的情况,可以用CTR,用户停留时间和转化率等指标度量用户的满意度.

2. 预测准确度

​ 度量一个推荐系统或者推荐算法预测用户行为的能力,是最重要的系统离线评测指标,大多数paper讨论的也是这个指标(可通过离线实验计算,方便研究员研究推荐算法)

​ 计算该指标需要一个离线的数据集,通过在训练集上建立用户的行为和兴趣模型预测用户在测试集上行为.

​ 离线的推荐算法有不同的研究方向,下面为不同的研究方向对应的预测准确度指标.

  • 评分预测

学习用户的历史评分,进而预测其在将来看到一个他没有评过分的物品时,会给这个物品评多少分.

评分预测的预测准确度一般通过均方根误差 (RMSE) 和平均绝对误差 (MAE) 计算.对于测试集$T$中的一个用户$u$和物品$i$,令$r_{ui}$代表用户对物品的实际评分,令$\hat{r}_{ui}$为预测评分.

  • RMSE定义为:

$$
RMSE=\sqrt{\frac{\sum_{u,i\in T}(r_{ui}-\hat{r_{ui})^2}}{|T|}}
$$

  • MAE采用绝对值计算预测误差,其定义为:

$$
MAE=\frac{\sum_{u,i\in T}|r_{ui}-\hat r_{ui}|}{|T|}
$$

​ 假设用一个列表records存放用户评分数据,令records[i]=[u,i,rui,pui],后两者分别为实际和预测得分,则下面的代码实现了RMSE和MAE的计算过程

1
2
3
4
5
def RMSE(records):
return math.sqrt(sum([(rui-pui)*(rui-pui) for u,i,rui,pui in records])/float(len(records)))

def MAE(records):
return sum([abs(rui-pui) for u,i,rui,pui in records])/float(len(records))

​ 关于这两个指标的优缺点:

​ RMSE加大了对预测不准的用户物品评分的惩罚,因而对系统的评测更加苛刻

小tips:如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差.

  • TopN推荐

​ 网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐.其预测准确率一般通过准确率(precision)/召回率(recall)度量.
​ 令$R(u)$是根据用户在训练集上的行为给用户作出的推荐列表,$T(u)$是用户在测试集上的行为列表,那么推荐结果的召回率定义为:
$$
Recall=\frac{\sum_{u\in U}|R(U)\cap T(U)|}{\sum_{u\in U}T(U)}
$$
​ 推荐结果的准确率定义为:
$$
Precision=\frac{\sum_{u\in U}|R(U)\cap T(U|}{\sum_{u\in U}R(U)}
$$
​ 代码实现:

1
2
3
4
5
6
7
8
9
10
def PrecisionRecall(test,N):
hit = 0
n_recall=0
n_precision=0
for user,items in test.items():
rank=Recommend(user,N) //rank:预测的列表-长度为N(n_precision)
hit+=len(rank&items) //items:实际的列表-T(U)-长度为len(items)(n_recall)
n_recall+=len(items)
n_precision+=N
return [hit/(1.0 * n_recall),hit/(1.0 * n_precision)

​ 为了全面评测TopN推荐的准确率和召回率,一般会选取不同的推荐长度N,计算出一组准确率/召回率,然后画出准确率/召回率曲线(precision/recall curve).

  • 评分预测 VS TopN推荐

研究人员一般都将精力集中在优化评分预测的RMSE上,但后来有人指出,电影推荐的目的是找到用户可能感兴趣的电影,而非预测看了电影后给出什么样的评分.例如,也许有一部分电影用户看了后会给出高分,但看的几率很小.因此,预测用户是否会看比看了之后给什么评分更加重要.因此,之后主要讨论TopN推荐.

3. 覆盖率

覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力.一般定义为推荐系统能够推荐出来的物品占总物品的比例,假设用户集合为$U$,RS给每个用户推荐一个长度为N的物品列表$R(u)$,则覆盖率可通过以下公式计算:
$$
Coverage=\frac{|\cup_{u\in U}R(U)|}{|I|}
$$
因此,这是一个内容提供商会关注的指标.值为100%时,每个物品都至少被推荐给一个用户.好的推荐系统要有较高的用户满意度和较高的覆盖率.

需要注意的是,上面的定义是粗略的,因为100%覆盖率的RS可以有无数的物品流行度分布.因此可通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力,若该分布比较平,就说明覆盖率较高,陡峭则低.

在信息论和经济学中,还有两个指标可定义覆盖率:

  • 信息熵

$$
H=-\sum_{i=1}^np(i)log\ p(i)
$$

$p(i)$指物品$i$的流行度占所有物品流行度的比.

  • 基尼系数(Gini Index)

$$
G=\frac{1}{n-1}\sum_{j=1}^n(2j-n-1)p(i_j)
$$

$p(i_j)$是物品流行度$p()$按照从小到大排序的物品列表中第$j$个物品.

基尼系数示例图

基尼系数的计算原理:

将物品按照热门程度从低到高排列,则右图中的黑色曲线表示最不热门的$x %$物品的总流行度占系统的比例$y%$。则这条曲线定在$y=x$曲线之下。

基尼系数的形象定义就是$\frac{SA}{SA+SB}$,看以看出属于区间$[0,1]$,如果系统流行度很平均,$SA$会很小,基尼系数也很小,反之亦成立.

考虑这样一个问题,进入热门排行榜的物品都是热门商品,这些商品因为被放在榜中展示有了更多的曝光机会,因此会更加热门,这就是马太效应.

推荐系统的初衷是消除马太效应,使各种商品都能被展示给对其感兴趣的某一类人群.但一些推荐算法(如协同过滤)是具有马太效应的.

评测RS是否有马太效应的方法就是使用基尼系数.若$G_1$是从初始用户行为中计算得出的物品流行度的基尼系数,$G_2$是从推荐列表中计算出的物品流行度的基尼系数.如果$G_2>G_1$,就说明推荐算法有马太效应.

4. 多样性

用户兴趣可能是广泛的,一个人可能喜欢《猫和老鼠》的同时也喜欢纪录片,因此推荐系统应该能够覆盖用户不同的兴趣领域.

此外,尽管用户的兴趣在较长的时间跨度是不一样的,但具体到用户访问的某一刻,其兴趣往往是单一的,如果推荐的某个兴趣点恰恰不是用户此时的兴趣点,推荐列表就不会让用户满意.因此推荐结果要具有多样性.

多样性定义了推荐列表中物品两两之间的不相似性.因此,多样性和相似性是对应的.假设$s(i,j)\in [0,1]$代表物品$i$和$j$之间的相似度,那么用户$u$的推荐列表$R(u)$多样性定义为:
$$
Diversity(R(u))=1-\frac{\sum_{i,j\in R(u),i\neq j}s(i,j)}{\frac{1}{2}|R(u)|(|R(u)|-1)}
$$
推荐系统的整体多样性可定义为所有用户列表多样性的平均值:
$$
Diversity=\frac{1}{|U|}\sum_{u\in U}Diversity(R(u))
$$
显然,不同的物品相似度$s(i,j)$可定义不同的多样性.e.g.,若用内容相似度描述$s(i,j)$,则可得到内容多样性函数;用协同过滤的的相似度函数描述$s(i,j)$,得到协同过滤的多样性函数.

推荐系统的多样性达到什么程度叫好?

e.g. 假设某用户喜欢A,B,且80%时间看A,20%时间看B.则最理想的推荐(以推荐10个为例)为推荐8个A,2个B

5. 新颖性

新颖的推荐是指给用户推荐他们以前没有听说过的物品.
实现新颖性一个简单的办法是,把那些用户之前在网站中交互过的物品从推荐列表中过滤掉
新颖性可以利用推荐结果的平均流行度来度量.推荐结果中的平均热门程度越低推荐结果就可能有比较高的新颖性.这种评测比较粗略,因为不同用户不知道的东西不同,可能一个人偏爱冷门物品,此时对大多数人来说高新颖性的推荐列表反而对该用户低新颖性。因此准确的统计需要做用户调查
困难的是如何在不牺牲精度的情况下提高多样性和新颖性.

6. 惊喜度

基本意思:如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高
而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果(推荐的电影主演和用户喜欢的主演一样,只是该用户之前没看过,这可以看作新颖性.但用户一旦了解了主演就不会特别奇怪,因此一般不视作惊喜度)。
目前并没有什么公认的惊喜度指标定义方式,这里只给出一种定性的度量方式:定义惊喜度需要首先定义推荐结果和用户历史上喜欢的物品的相似度,其次需要定义用户对推荐结果的满意度。前面也曾提到,用户满意度只能通过问卷调查或者在线实验获得,而推荐结果和用户历史上喜欢的物品相似度一般可以用内容相似度定义。
e.g. 如果获得了一个用户观看电影的历史,得到这些电影的演员和导演集合A,然后给用户推荐一个不属于集合A的导演和演员创作的电影,而用户表示非常满意,这样就实现了一个惊喜度很高的推荐。
因此提高推荐惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣的相似度。

7. 信任度

考虑两个推荐系统,它们的推荐结果相同,但用户却可能产生不同的反应,这就是因为用户对他们有不同的信任度。如果用户信任推荐系统,那就会增加用户和推荐系统的交互。特别是在电于商务推荐系统中,让用户对推荐结果产生信任非常重要.
该指标的度量只能通过问卷调查的方式.
提高推荐系统的信任度主要有两种方法。

  • 增加推荐系统的透明度(transpareney),主要办法是提供推荐解释。只有让用户了解推荐系统的运行机制,让用户认同推荐系统的运行机制,才会提高用户对推荐系统的信任度。- 考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释。这是因为用户对他们的好友一般都比较信任.

8. 实时性

某些物品(新闻,微博)有很强的时效性,因此需要在其具有时效性时就将它们推荐给用户.RS的实时性包括两个方面:

  • 需要实时地更新推荐列表来满足用户新的行为变化。比如,当一个用户购买了iPhone,如果推荐系统能够立即给他推荐相关配件,那么肯定比第二天再给用户推荐相关配件更有价值。很多推荐系统都会在离线状态每天计算一次用户推荐列表,然后于在线期间将推荐列表展示给用户。这种设计显然是无法满足实时性的。与用户行为相应的实时性,评测方法:推荐列表的变化速率。如果推荐列表在用户有行为后变化不大,或者没有变化,说明推荐系统的实时性不高。
  • 需要能够将新加入系统的物品推荐给用户。这主要考验了推荐系统处理物品冷启动的能力。评测方法:可以利用用户推荐列表中有多大比例的物品是当天新加的来评测。

9. 健壮性

健壮性(即robust鲁棒性)衡量推荐系统抗击作弊的能力。e.g.行为注入攻击:亚马逊有一种推荐叫做“购买商品A的用户也经常购买的其他商品”。它的主要计算方法是统计购买商品A的用户购买其他商品的次数。可以攻击这个算法,让自己的商品在这个推荐列表中获得比较高的排名,比如可以注册很多账号,用这些账号同时购买A和自己的商品。还有一种攻击主要针对评分系统雇用一批人给自己的商品非常高的评分,而评分行为是推荐系统依赖的重要用户行为。
算法健壮性的评测主要利用模拟攻击。首先,给定一个数据集和一个算法,可以用这个算法
给这个数据集中的用户生成推荐列表。然后,用常用的攻击方法向数据集中注入噪声数据,然后利用算法在注入噪声后的数据集上再次给用户生成推荐列表。最后,通过比较攻击前后推荐列表的相似度评测算法的健壮性。
在实际系统中,提高系统的健壮性,除了选择健壮性高的算法,还有以下方法。

  • 设计推荐系统时尽量使用代价比较高的用户行为。比如,如果有用户购买行为和用户浏
    览行为,那么主要应该使用用户购买行为,因为购买需要付费,所以攻击购买行为的代
    价远远大于攻击浏览行为。
  • 在使用数据前,进行攻击检测,从而对数据进行清理。

10.商业目标

不同公司会根据自己的盈利模式设计不同的商业目标,例如电商网站的目标可能是销售额,基于展示/点击广告盈利的网站其商业目标可能是广告/点击展示总数.
因此,设计推荐系统需要考虑最终的商业目标,网站使用推荐系统的目的除了满足用户发现内容的需求,也需要利用推荐系统加快实现商业上的目标.

11.总结

上面提到的指标有些可以离线计算,有的只能在线获得.如何优化离线指标来提高在线指标是推荐系统研究的重要问题.
$\circ$指得到的统计不准确

离线实验 文件调查 在线实验
用户满意度 $\times$ $\checkmark$ $\circ$
预测准确度 $\checkmark$ $\checkmark$ $\times$
覆盖率 $\checkmark$ $\checkmark$ $\checkmark$
多样性 $\circ$ $\checkmark$ $\circ$
新颖性 $\circ$ $\checkmark$ $\circ$
惊喜度 $\times$ $\checkmark$ $\times$

对于可以离线优化的指标,书中认为应该是在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度。因此离线实验的优化目标可以表示为:
$$
最大化预测准确度\
使得\quad 覆盖率>A\
\qquad \quad多样性>B\
\qquad \quad新颖性>C
$$

1.3.3 评测维度

评测系统除了上述指标还要考虑评测维度.增加评测维度能让我们知道一个算法在什么情况下性能最好,为融合不同推荐算法取得最好的整体性能带来参考.
一般评测维度分为以下三种:

  • 用户维度主要包括用户的人口统计学信息、活跃度以及是不是新用户等。
  • 物品维度包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。
  • 时间维度包括季节,是工作日还是周末,是白天还是晚上等。
    如果能够在推荐系统评测报告中包含不同维度下的系统评测指标,就能帮我们全面地了解推荐系统性能,找到一个看上去比较弱的算法的优势,发现一个看上去比较强的算法的缺点。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!