2.3 分类
分类器是从特征空间到标签空间的映射,其中特征代表需要分类的元素的属性,标签代表类别。例如,餐厅推荐系统能够通过分类器来实现,其分类器基于许多特征描述把餐厅分成两类中的一类(好的,不好的)。
有许多种类型的分类器,但是一般情况下我们谈的有监督分类器和无监督分类器。在有监督分类器中,我们预先知道一组标签或是类别,并且我们有一组带有标签的数据,用来组成训练集。在无监督分类中,类别都是提前未知的,其任务是恰当地组织好我们手中的元素(按照一些规则)。在本节中我们描述几个算法来学习有监督分类,无监督分类(如聚类)将在2.4节中进行描述。
2.3.1 最近邻
基于样本的分类(instance-based classifier)通过存储训练记录并使用它们来预测未知样本的标签类别。一个常见的例子是所谓的死记硬背学习(rote-learner)。这种分类器记住了所有的训练集,并且只有在新记录的属性与训练集中样本完全匹配时才会分类。一个更加精确和通用的基于样本的分类是近邻分类(kNN)。给出一个要分类的点,kNN分类器能够从训练记录中发现k个最近的点。然后按照它最近邻的类标签来确定所属类标签。算法的基本思想是,如果一个样本落入由一个类标签主导的领域,是因为这个样本可能属于这个类。
假设我们需要确定样本q的类别l,定义训练集是x={{x1,l1}…{xn}},其中xj是第j个元素,lj是它的类标签,k的最近邻可以找到子集Y={{y1,l1}…{yk}},使得Y∈X且∑k1d(q,yk)是最下限。Y包含X中的k个离q最近的样本点。那么,q的类标签是l=f({l1…lk})。
也许在kNN中最具有挑战的问题是如何选择k的值。如果k太小,分类可能对噪声点太敏感。但是如果k太大,近邻范围可能会包含其他类中太多的点。图2.4右图展示了不同的k值下最终确定不同的类标签。k=1时类标签可能是圆形的,而k=7时类标签是正方形。注意到例子中的查询点正好处于两个类别中的边界上,因此,分类很困难。
图2.4 k近邻的例子。左边的子图显示带有两个类标签的训练点(圆形和正方形)和查询点(三角形)。右边的子图阐述k=1和k=7时的最近邻。查询点按照简单多数规则,当k=1时被分类为正方形,当k=5时被分类为圆形。注意查询点正好在两个类别之间的边界线上
kNN分类器在所有的机器学习的算法中是最简单的。因为kNN不要建立一个显示的模型,所以被认为是一个懒的学习者。不像饥饿学习者,如决策树或是基于规则的系统(分别参见2.3.2节和2.3.3节),kNN分类器把许多的决策留给了分类的步骤。因此,分类未知记录的花费相当大。
近邻算法是CF最常用的一种方法,因而被用来设计推荐系统。事实上,任何的推荐系统综述,如Adomavicius和Tuzhilin的那篇[1],都会包含本书所提到的近邻使用的简介。这种分类的优点之一是它的概念和CF很相关:发现志趣相投的用户(或者是类似的物品)实质上等价于发现给定用户或者是物品的邻居。其他的优势是:作为kNN分类器这样一个懒惰学习者,它不需要学习和维持一个给定的模型。因此,在原则上,系统能够适应用户评分矩阵的急速变化。遗憾的是,这是以重新计算邻居和相似矩阵为代价的。这也是我们要提出一种用精简后的专家集合来挑选邻居模型的原因[3]。
尽管kNN方法简单和直观,但是它的结果精确,非常易于提升。事实上,它对于协同推荐的实际标准的主导地位最近才被基于降维的方法所挑战,如2.2.3节所叙述的。也就说,针对协同过滤方法的传统的kNN方法已经在几个方向上得到了提升。例如,在Netflix Prize的实验环境中,Bell和Koren建议一种方法来移除全局的影响,如一些物品可能会吸引用户一致给低分。他们
提出邻居建立时立即计算插入权值的优化算法。
详见第5章和第4章基于邻居使用改进CF技术的更多细节。
2.3.2 决策树
决策树[61,63]是以树结构形式对目标属性(或类)进行分类的分类器。要分类的观察数据(或物品)是由属性及其目标值组成的。树的节点可以是:a)决策节点,在这些节点中一个简单属性值被测试来决定应用哪一个子树;b)叶子节点指示目标属性的值。
对于决策树归纳有许多的算法:最常提到的是搜索算法,包括CART、ID3、C4.5、SLIQ、SPRINT。递归搜索算法(最早的也是最容易理解的算法)依赖作用于给定属性的测试条件,通过它们的目标值来区别这些观察值。算法一旦找到测试条件推导出的划分区域,就会反复迭代,直到划分区域为空,或者观察数据都有相同的目标值。
其中,ki是属性i的值,N是观察数据的数量,vj是根据属性i的值得到的观察值的第j个划分。最后,I是衡量不纯节点的函数。有各种不同的不纯衡量方法:基尼指数、熵、误分类误差是在文献中最常用的。
一旦所有的观察值属于同一个类(或者是在连续属性中的相同范围),决策树的推导就结束。这表明叶子节点的非纯度是零。然而,因为实际的原因,大部分的决策树通过剪枝技术实现,如果节点的非纯度或者观察值的数量低于某个阈值,节点不再进行分裂。
使用决策树建立一个分类器的主要优点是,构建代价比较小并且在分类未知的对象方面速度比较快。与其他基础的分类技术相比,决策树另一个好的方面是在维持精度的同时,它产生的一系列规则容易被解释(见2.3.3节)。
推荐系统中的决策树可以用在基于模型的方法里。一种可能是用内容特征建立决策树模型,对描述用户偏好的所有变量建模。Bouza等[12]利用这种想法,使用物品可用的语义信息构建一个决策树。用户只评价两个物品之后就能构造决策树。每个物品的特征被用来建立一个解释用户评分的模型。他们使用每一个特征的信息增益作为分裂准则。需要注意的是,尽管这种方法从理论视角看很有趣,但是在他们系统上报告的精确性比推荐平均评分的方法要差。
正如可以预料到的那样,建立一个试图解释决策过程中所有参数的决策树是非常困难以及不现实的。但是,决策树可以被用来模拟系统的一个特殊部分。例如,Cho等[8]提出一个结合关联规则(见2.5节)和决策树的在线购物推荐系统。决策树被用来作为一个过滤器来选择哪些用户可以作为推荐的目标。为了建立这个模型,他们创建了一个候选用户集,用户集是在给定的时间帧内从一个给定的目录下选了商品的这些用户。在他们的案例中,选择作为构造决策树的因变量是用户是否会在相同的分类下再买新的产品。Nikovski和Kulev[54]随后提出一个与之类似的结合决策树和关联规则的方法。在他们的方法中,先是在购买的数据集中发现频繁物品集,然后应用标准的树学习算法来简化推荐规则。
在推荐系统中另一个使用决策树的选择是使用它们作为物品排序的工具。使用决策树来排序已经在一些环境下被研究,而且很明确都是为了这个目的[7,17]。
2.3.3 基于规则的分类
基于规则分类器是通过一组“if…then…”的规则集合划分数据。规则的前提或条件是属性连词的表达式。规则的结论是一个正或者负的分类。
如果对象的属性满足规则的条件,可以说规则R覆盖对象x。我们定义规则的覆盖性为满足前提的部分记录。另一方面,我们定义准确性为既满足前提又满足结论的部分记录。如果规则彼此之间是独立的,我们说分类器包含互斥的规则,例如,每一个记录最多被一个规则覆盖。最后,如果属性值的所有可能组合都被覆盖,例如,一个记录至少被一个规则覆盖,则认为分类器具有详尽规则(exhausitive rules)。
为了建立一个基于规则的分类器,我们可以用从数据中直接抽取规则的直接方法。这种方法的例子是RIPPER或CN2。另一方面,使用间接的方法从其他分类模型中抽取规则很常见,例如,决策树模型或神经模型。
基于规则分类器的优点是它们表示很明确,因为它们是符号化的并且可以在没有任何转化的情况下操作数据的属性。基于规则的分类器,由决策树扩充,容易解释,容易生成,并且它们能有效地分类新的对象。
但是,与决策树方法类似,建立一个完整基于规则的推荐模型是很难的。事实上,这种方法在推荐的环境中不是很流行,因为得到一个基于规则的系统意味着我们要么具有一些决策过程中的显式的先验知识,要么从另一个模型中提取规则,如决策树。但是基于规则的系统通过注入一些领域知识或商业规则来提高推荐系统的性能。例如,Anderson等[6]实现了一个协同音乐推荐系统,这个系统通过应用一个基于规则的系统在协同过滤的结果中提高性能。如果用户给某个音乐家的专辑评分很高,那么这个音乐家的其他专辑的预测评分也会提高。
Gutta等[29]实现了一个关于电视内容的基于规则的推荐系统。为此,他们首先使用C4.5决策树,然后分解成规则来分类电视节目。Basu等[9]利用归纳的方法使用Ripper[20]系统从数据中学习规则。在他们的报告中,使用混合内容和协同数据来学习规则的结果明显好于单纯的CF方法。
2.3.4 贝叶斯分类器
贝叶斯分类器[34]是解决分类问题的一个概率框架。它基于条件概率定义和贝叶斯理论。贝叶斯统计学派使用概率来代表从数据中学习到的关系的不确定性。此外,先验的概念非常重要,因为它们代表了我们的期望值,或者真正关系可能是什么的先验知识。特别的是,给定数据后,模型的概率(后验概率)是和似然值乘以先验概率的乘积成比例的。似然值部分包含了数据的影响,而先验概率则表明观测数据之前模型的可信度。
贝叶斯分类器把每一个属性和类标签当作随机变量(连续或者离散)。给定一个带有N个属性的记录(A1,A2,…,AN),目标是预测类Ck,方法是在给定数据P(CkA1,A2,…,AN)下,找到能够最大化该类后验概率的Ck的值。应用贝叶斯理论P(CkA1,A2,…,AN)∝P(A1,A2,…,ANCk)P(Ck)。
一个特殊但是最常用的分类器是朴素贝叶斯分类器。为了估计条件概率,P(A1,A2,…,ANCk)。假设属性的概率独立,比如,一个特殊属性的存在与否和其他任何的属性的存在与否没有关系。这种假设导致P(A1,A2,…,ANCk)=P(A1Ck)P(A2Ck)…P(ANCk)。
朴素贝叶斯的主要好处是,受孤立噪声点和不相关的属性的影响小,并且在概率估算期间可以通过忽略实例来处理缺失值。但是,独立性假设对一些相互关联的属性来说可能不成立。在这种情况下,通常的方法是使用所谓的贝叶斯信念网络(或简称贝叶斯网络)。BBN使用非循环图表示属性之间的依赖性,并使用概率表表示节点与直接父亲之间的联系。与朴素贝叶斯分类器方法类似,BBN可以很好地处理不完整的数据,对于模型的过拟合有相当的健壮性。
贝叶斯分类器在基于模型的推荐系统中特别受欢迎。它们经常被用来为基于内容的推荐生成模型。当然,它们也被用于协同环境中。例如,Ghani和Fano[36],使用朴素贝叶斯实现了一个基于内容的推荐系统。使用这个模型允许在百货商店环境中从不相关的目录中推荐产品。
Miyahara和Pazzani[52]实现了一个基于朴素贝叶斯分类器的推荐系统。为了达到这个目的定义了两个类:喜欢和不喜欢。在这种的环境中他们提出两个方法来使用朴素贝叶斯分类器:数据转化模型假设所有的特征都是完全独立的,特征选择作为一个预处理步骤来实施。另一方面,稀疏数据模型假设只有已知的特征是对分类有益的信息。此外,当估算概率的时候,只使用用户都共同评价的数据。实验显示两种模型性能好于基于相关性的CF。
Pronk等[58]用贝叶斯朴素聚类器作为基础来合并用户组件并且提高能,特别是冷启动环境。为了做到这一点,他们提出给每个用户维持两个属性文件,一个从历史评分中学习得到,另一个由用户显式地创建。两种分类器的混合可以通过这样的方式来控制,在早期阶段没有太多历史评分时采用用户定义属性文件,然后在随后的阶段再用学习型分类器取而代之。
在2.3.3节中我们提到Gutta等[29]在电视内容上实现了一个基于规则方法的推荐系统。此外他们还实验了贝叶斯分类器。首先定义一个两类分类器,类别包括:看过和没看过。用户配置文件是属性的集合,以及他们作为正样本和负样本出现的次数。这会被用来计算节目属于某个特定分类的先验概率,以及当节目是正向或负向时,某个给定特征会出现的条件概率。在这样案例中,必须注意到的是特征涉及内容(类型)和环境(时间)。新节目的后验概率是从这些(环境和内容)中计算得来的。
Breese等[15]实现了将每个节点关联到每个物品的贝叶斯网络。状态与每个可能的投票值相关。在网络中,每一个物品将有一组父亲节点作为它最好的预测器。条件概率表被决策树取代。作者报告显示在几组数据集上这种模型的结果比几种近邻算法的结果要好。
分层的贝叶斯网络也用在一些环境中,用作信息过滤添加领域知识的方法[78]。但是分层的贝叶斯网络的问题之一是,当其中的用户过多时,学习和升级模型的代价非常大。Zhang和Koren[79]提出一个标准期望最大化模型的变种,能够在基于内容推荐系统中的环境中加速这种过程。
2.3.5 人工神经网络
人工神经网络(ANN)[81]由一组内连接点和带权链接组成,其想法来自于生物大脑的结构。ANN中的节点称为神经元,类似于生物神经。这些简单的功能单元组成网络,网络在用有效数据训练之后能够学习分类问题。
ANN的最简单模型是感知器模型,如图2.5所示。如果我们把激活函数特指为简单的阈值函数,则输出就是根据每条链接的权重将输入值累加,然后和某个阈值θk相比较。输出函数可以由式(2.7)来表达。感知模型是具有简单和有效学习算法的线性聚类器。但是,除了使用在感知模型中的阈值函数,还有几种其他对于激活函数通用的选择,如多层感知机、正切双曲或者是阶梯函数。
ANN可以有许多的层。在ANN中的层被分成三种类型:输入、隐藏、输出。输入层的单元响应进入网络的数据。隐藏层接受从输入单元中的带权输出。输出层响应隐藏层中的带权输出并且产生最终的网络输出。使用神经元作为原子功能单元,在网络中有许多种可能的架构来把它们结合在一起。但是,最常用的方法是使用前馈ANN。在这个例子中,信号严格在一个方向传播:从输入到输出。
ANN最主要的优点是(取决于激活函数)能做非线性的分类任务,并且由于并行属性,它们高效甚至能够在部分网络受损的情况下操作。主要的缺点是,它很难对给定的问题提供理想的网络拓扑,并且一旦确定拓扑后它的表现水平就会位于分类错误率的下限。ANN属于一种次符号分类器,也就是说,在推理知识的时候不提供任何语义知识,说白了这是一种黑盒方法。
ANN能够以类似于贝叶斯网络的方法用来构建基于模型的推荐系统。但是,没有令人信服的研究表明ANN是否会提升性能。事实上,Pazzani和Billsus[57]做了一个综合实验,使用几种机器学习算法进行网页推荐。他们的主要目标是比较朴素贝叶斯分类器与计算开销更大的候选方法,如决策树和神经网络。他们的实验结果显示决策树的效果明显不好。他们推断似乎没有必要用非线性分类器,如ANN。Berka等[31]使用ANN为网页导航建立URL推荐系统。他们实现了专门基于访问路径而与内容无关的系统,比如,把域名和访问它们的人数关联起来。为此,他们使用了后向传播算法训练的前馈多层感知器。
ANN可以被用来结合(或是混合)几个推荐模块或者数据源中的输入。例如,Hsu等[30]建立一个电视推荐模型,通过四个不同的源导入数据:用户的配置文件和自身看法、观看社区、节目元数据、观看环境。他们用后向传播算法来训练三层神经网络。Christakou和Stafylopatis[19]也建立了一个混合的基于内容的协同过滤推荐系统。基于内容的推荐系统在实现时对每个用户采用了三种神经网络,其中每一个对应如下的一个特征:种类、星级、摘要。他们使用弹性反向传播方法来训练ANN。
2.3.6 支持向量机
支持向量机分类[23]的目标是发现数据的线性超平面(决策边界),以边界最大化的方式分离数据。例如,如果我们在二维平面上看两类分离的问题,如图2.6阐述的那样,很容易观察到分成两个类有许多种可能的边界线。每一个边界线都有一个相关的边缘。SVM后面的理论支持是,如果我们选择间隔最大化的那一个,将来对未知的物品分类出错的可能性就越小。
图2.6 在二维上不同的边界决定可能分成不同的类。每一个边界有一个相关的间隔
两个类中的线性分离是通过函数w•x+b=0来实现的。我们定义能够划分物品类+1或-1的函数,只要这些物品是被来自类划分函数的某个最小距离分开的。式(2.8)给出了相应的公式。f(x)=1,若w•x+b≥1
根据SVM的主要原理,我们想要最大化两个类之间的间隔,由式(2.9)给出。事实上这等价于在给定f(x)的约束条件下,最小化L(w)=w22的倒数。这其实是带约束最优化的问题,有许多数学方法可以解决它(如二次规划)。
如果物品不是线性分离的,则可以通过引入一个松弛变量来把SVM转变为软间隔分类器。在这种情况下,式(2.10)的最小化受限于式(2.11)新的f(x)定义。另一方面,如果决策边界是非线性的,我们需要转换数据到高维的空间。这个转换的完成得益于名为内核技巧的数学变换。最基本的想法是通过内核函数取代在式(2.8)中的点积。对于内核函数有许多不同的可行的选择,比如多项式或多层感知器。但是最常用的内核函数是径向基函数系列
支持向量机最近已经在许多的环境中获得较好的性能和效率。在推荐系统里,SVM最近也显示出了显著效果。比如,Kang和Yoo[46]报告了一个实验研究,其目的在于为基于SVM的推荐系统选择最好的预处理技术预测缺失值。他们特别使用了SVD和支持向量回归(SVR)。支持向量机推荐系统首先通过二进制化可用用户偏好数据的80个等级来建立。他们设置了几组实验,并且报告了阈值为32时的最好结果,例如,32和更小的值被分为喜欢,较高值被分为不喜欢。用户的ID被用作分类的标签,正负值被表达成偏好值1和2。
Xu和Araki[76]用SVM建立一个电视节目推荐系统。他们用电子节目向导(Electronic Program Guide,EPG)的信息作为特征。但是为了减少特征,他们移除了最低频次的单词。此外,为了评价不同的方法,他们用布尔值和词频率逆文档频率(TFIDF)来衡量特征结构的权重。在前者,0和1被用来代表在内容中物品的缺失或出现。在后者则变成词频率逆文档频率数值。
Xia等[75]提出用不同的方法来使用SVM在CF环境中做推荐。他们探索平滑SVM(SSVM)的使用。他们也介绍了一个基于SSVM的启发式方法,来迭代估算在用户物品矩阵中的缺失元素。他们通过为每一个用户创建一个分类器来计算预测值。实验结果显示,与SSVM以及传统的基于用户和基于物品的CF相比,SSVMBH实验结果最好。最后,Oku等[27]为情景感知推荐系统提出情景感知SVM(C-SVM)的使用方法。他们比较了标准SVM、C-SVM和一种既使用CF又使用C-SVM的扩展算法。结果显示在餐厅推荐中情景感知方法最有效。
2.3.7 分类器的集成
使用分类器集成背后的最基本的思想是,从训练数据构造一系列的分类器,并通过聚集预测值来预测类标签。只要我们能假设这些分类器都是独立的,分类器集成就有效。在这种情况下,我们可以确定分类器产生的最糟糕的结果与在集成中的最坏分类是一样的。因此,结合具有相似的分类错误的独立分类器将只会提升结果。
为了产生集成,有几种可能的方法。最常用的两个技术是Bagging和Boosting。在Bagging方法中,我们采用带替换的抽样,在每一个自举样本(bootstrap sample)上建立分类。每一个样本被选择的概率是1-1NN,如果N足够大,那么其值会趋近于1-1e≈0.623。在Boosting方法中,我们通过更加关注之前错误分类的记录,使用迭代过程自适应地改变训练数据的分布。一开始,所有的记录都被分配相同的权值。但是,不像Bagging方法,在每一轮的提升中权值是可以变化的:被错误分类的记录权值将会增加,同时正确分配的记录的权值将会降低。Boosting方法的例子是AdaBoost算法。
分类器集成使用的例子在推荐领域里面非常实用。事实上,任何一个混合技术[16]都可以理解成以一种方式集成或另外几个分类器的集成。Tiemann和Pauws的音乐推荐系统就是一个明显的实例,他们用集成学习方法来结合基于社交的和基于内容的推荐系统[70]。
实验结果显示,集成器能产生比其他任何孤立的分类器更好的结果。例如,Bell等[11]在解决Netflix挑战、赢得大奖的方案中使用结合了107种不同的方法。他们的发现显示,本质上不同的方法比提升一种单一特殊技术的回报要好。为了从集合器中混合结果,他们采用线性回归方法。为了给每一个分类器生成权值,他们把测试数据集分成15个不同的部分,并且为每一个备份生成唯一的系数。在Netflix环境中的不同的集成方法可以追溯到其他的方法,如Schclar等的[67]或Toescher等的[71]。
自举方法也已经在推荐系统使用,例如,Freund等提出一个被称为RankBoost的算法来结合用户的偏好[32]。他们应用这个算法在CF环境中来产生电影推荐。
2.3.8 评估分类器
推荐系统中被接受最常用的指标是预测兴趣(评分)和测量值的均方差(MAE)或均方根误差(RMSE)。这些指标在计算精度时对推荐系统的目标没有任何假设。但是,正如McNee等[51]指出的那样,除了精确度,还有许多指标来决定物品是否要被推荐。Herlocker等[42]发表了推荐系统算法指标方法的综述。他们建议某些指标对于某些推荐任务可能更加合适。但是,如果在一类推荐算法和单个数据集上要根据经验来评估不同方法,他们不能验证这些指标。
下一步要考虑的是,“现实”中推荐系统的目的是产生一个top-N推荐列表,以及依赖于能多好地分辨出值得推荐的物品来评估这个推荐系统。如果把推荐看作分类问题,就可以使用评估分类器的著名指标,如准确度和召回率。在如下的段落中,我们将概述一部分这些指标及其在推荐评价中的应用。但是值得注意的是,学习算法和分类能够被多个准测来评估。这包含执行分类的准确率、训练数据的计算复杂度、分类的复杂度、噪声数据的敏感度、可扩展性等。但是在本章中我们将只关注分类性能。
为了评估一个模型,我们一般考虑以下的指标:真正(TP):分到类A且真的属于类A的实例数量;真负(TN):没有分到类A且真的不属于类A的实例数量;假正(FP):分到类A但不属于类A的实例数量;假负(FN):没有分到类A但属于类A的实例数量。
最常用来衡量模型性能是定义正确分类的(属于或不属于给定的类)实例和总的实例数量之间的比率:精确度=(TP+TN)/(TP+TN+FP+FN)。但是,精确度在许多的例子中有误导。想象一个带有99900个类A的样本和100个类B的样本的两类分类问题。如果分类器简单地预测一切属于类A,计算精度可能是99.9%,但是模型性能值得怀疑,因为它从没有发现类B中的样本。改进这种估值的一种方法是定义代价矩阵,定义将类B的样本分给类A的代价。在真实的应用环境中,不同类型的错误可能的确有不同的代价。例如,如果100个样本对应一个组装线上有缺陷的飞机部分,不正确地拒绝一个没有缺陷的部分(1/99900的样本)相比于错误地把缺陷的部分当作好的,这个代价是微不足道的。
模型性能的其他常用指标,特别是在信息检索中,是准确率和召回率。准确率,定义为P=TP/(TP+FP),是一种在分样本到类A中犯错误的指标。另一方面,召回率,R=TP/(TP+FN),衡量没有留下本应该划分到类中的样本的程度。注意在大部分的例子中,当我们单独使用这两种指标时是有误导的。通过不分给任何的样本到类A可以建立有完美预测准确性的分类器(因此TP为零但FF也为零)。相反,通过分配所有的样本到类A中可以建立完美召回率的分类器。事实上,有一种结合了预测和召回率到一个单一指标中的指标:
有时我们会比较几个相互竞争的模型,而不是单独评估它们的性能。为此,我们使用在20世纪50年代开发的用来分析噪声信号的技术:接受者操作特征曲线(ROC)。ROC曲线描述了正确击中和假警告之间的特征。每一个分类的性能用曲线上的点表示(见图2.7)。
Ziegler等[80]表示通过top-N列表指标评估推荐算法不能直接映射出用户的效率函数。但是,它的确解决了一些普遍接受的精确指标的限制,如MAE。例如,Basu等[10],通过分析在评价规模中前四分之一被预测的物品哪些确实被用户评价为前四分之一。McLaughlin和Herlocker[50]提出一种修改后的精确指标,认为没有评价的物品计为不推荐。这个预测指标事实上代表了真实精确性的下限。尽管能够从准确率和召回率上直接得出F-测量法,但是在推荐系统评估中很少有人用到。Huang等[43]和Bozzonet等[13],以及Miyahara和Pazzani[52]是使用这些指标的少数几个例子。
ROC曲线也已经在评估推荐系统时使用。当在受到攻击下比较不同算法的性能时,Zhang等[64]使用ROC曲线下的面积作为评估的指标。Banerjee和Ramanathan[8]也使用ROC曲线来比较不同模型的性能。
必须指出的是,好的评估指标的选择,即使在top-N推荐系统中,仍是一个研究点。许多作者提出了只用间接相关到这些传统的评估模式的指标。例如,Deshpande和Karypis[25]提出了命中率和平均逆命中率的使用。另
一方面,Breese等[15]将排序列表中推荐结果的效用指标定义成中立投票的函数。
注意,第8章会详细描述在推荐系统内容中这些评估指标的使用,因此如果你对这个问题感兴趣,你可以从那一章继续学习。