Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions
下一代推荐系统: 最新技术和可能扩展的综述
注意⚠️
- 对于这篇文章,我主要目标是了解推荐系统的大致,里面详细的技术我没有钻研进去。他写的很好,总结了很多相关内容,要记得它是一片综述文章
- 原论文的一些数学公式是抽象化的,要理解它每个符号代表的含义,再看英文多看几遍,可能就会有帮助了
- 很大一部分翻译参考了:【文章翻译+笔记】Towards the Next Generation of Recommender Systems:A Survey of the State-of-the-Art and Pos。这里算是我提要了一些比较重要的内容,有些部分没有包括进去。
概要
本文主要是该书推荐系统的推荐方法和有关扩展。
- 推荐方法,通常分为以下三类:
- content-based 基于内容的推荐方法
- collaborative 协同推荐方法
- hybrid 混合推荐方法
- 有关扩展的作用:可以使推荐系统适用于更广泛的应用。这些扩展包括,提高对用户和项目的理解,将上下文信息整合到推荐过程中,支持多标准评分,以及提供更灵活、更少干扰的推荐类型。
1 介绍
从20世纪90年到中期的第1篇协同过滤的论文出现以来,推荐系统成为了一个重要的研究领域。
推荐系统可以帮助用户处理信息过载,并提供个性化建议、内容和服务。比如亚马逊推荐数据,MovieLens推荐电影,推荐新闻。
为了更好的提升推荐系统的能力,我们可以更好地表示用户行为和被推荐商品信息的方法、推荐建模方法;上下文纳入推荐;利用多标准评分;开发更少干扰和更灵活的推荐方法;更有效地确定推荐系统性能。
第2节将会介绍推荐系统以及其限制,第3节将会讨论扩展能力的方法。
2 推荐系统综述
推荐系统最早可以追溯到认知科学、近似理论等领域。但在20世纪90年代中期,开始作为独立的学科-推荐系统。
推荐系统最普遍的设定,就是“预测评分”问题。也就是:对用户没有看过的项目进行评分预测。
如果正式地表示推荐系统:设C为用户集合,S为可能的项目集合,比如书、电影或饭店,S的可能项空间非常大。用户空间也可能非常大。设u为衡量产品S对用户C的有用性,例如:
u
:
C
×
S
→
R
u:C \times S \rightarrow R
u:C×S→R,其中R是一个完全有序集(例如,非负整数或一定范围内的实数)。那么对于每个用户
c
∈
C
c \in C
c∈C,我们要选择使用户效用最大化的项目
s
′
∈
S
s' \in S
s′∈S。更正式的(公式1):
∀
c
∈
C
,
s
c
′
=
arg
max
s
∈
S
u
(
c
,
s
)
\forall c \in C, s_c' = \underset{s \in S}{{\arg\max}} \ u(c,s)
∀c∈C,sc′=s∈Sargmax u(c,s)
在推荐系统中,一个项目的效用通常由一个评分来表示,这表明一个特定的用户如何喜欢一个特定的项目,例如,John Doe给电影《哈利波特》打了7分(总分10分)。然而,如前所述,一般效用可以是任意函数,包括利润函数。根据应用程序的不同,效用u可以由用户指定,这通常用于用户定义的评分,也可以由应用程序计算,这可以用于基于利润的效用函数。
用户空间C的每个元素都可以定义为一个配置文件profile
,其中包括各种用户特征,如年龄、性别、收入、婚姻状况等。在最简单的情况下,配置文件只能包含一个(唯一的)元素,例如User ID。类似地,项目空间S中的每个元素都用一组特征定义。例如,在电影推荐应用中,S是电影的集合,每一部电影不仅可以用ID表示,还可以用名称、类型、导演、发行年份、主演等表示。
推荐系统的核心问题在于效用u通常不是在整个C×S空间上定义的,而是在其中的某个子集上定义的。这意味着你需要被推到整个空间C×S。在推荐系统中,效用通常用评分来表示并且最初仅在用户先前打分的项目上定义。例如,在一个电影推荐应用程序(例如MovieLens.org上的应用程序)中,用户最初对他们已经看过的一些电影子集进行评分。表1给出了一个电影推荐应用程序的用户项目评分矩阵的示例,其中评分的范围为1到5。表1中某些分级的“∅”表示用户没有给相应的电影分级。因此,推荐引擎应该能够估计(预测)无等级的电影/用户组合的评分,并根据这些预测发出适当的推荐。
从已知评分到未知评分的外推通常是通过(a) 指定定义效用函数和经验验证其性能的启发式方法,以及(b) 估计优化某些性能标准的效用函数,如均方误差。
估计未知的评分之后,一个项目的实际建议用户选择最高评分是由所有评分估计用户,根据公式(1)。或者,我们可以推荐N最好的物品一个用户或一组用户条目。
使用机器学习、近似理论和各种启发式的方法,可以用许多不同的方法估计尚未评分的项目的新评分。推荐系统通常是根据其评分估计的方法进行分类的,在下一节中,我们将介绍文献中提出的这种分类,并对不同类型的推荐系统进行调查。普遍接受的推荐问题的公式首次提出[45,86,97],并对该问题进行了广泛研究。此外,推荐系统通常根据推荐的方式[8]分为以下几类:
- 基于内容的推荐:用户被推荐的项目与用户过去喜欢的项目相似;
- 协作式推荐:用户被推荐的物品是与过去有相似品味和偏好的人喜欢的
- 混合方法:这些方法结合了协作和基于内容的方法。
除了预测个人用户对未被看到的物品给出评分的绝对值(如上所述)的推荐系统之外,还有基于偏好的过滤的工作,即预测用户的相对偏好[22,35,51,52]。例如,在电影推荐应用程序中,基于偏好的过滤技术将侧重于预测电影的正确相对顺序,而不是它们各自的评分。然而,本文主要关注基于评分的推荐,因为它构成了最流行的推荐系统。
2.1 基于内容的推荐
基于内容的推荐是这样一种方法:给用户c项目s,的效用u(c,s)是基于效用 u ( c , s i ) u(c,s_i) u(c,si)(其中 s i ∈ S s_i \in S si∈S 且 属于用户c 且 与项目s“相似”)被计算出来的。例如,在一个电影推荐应用中,为了向用户c推荐电影,基于内容的推荐系统试图了解用户c过去评价较高的电影之间的共性(具体的演员、导演、类型、题材等)。然后,只有那些与用户偏好高度相似的电影才会被推荐。
基于内容的推荐方法起源于信息检索[7,89]和信息过滤[10]研究。因为信息检索和过滤社区所取得的重要和早期的进步,因为有几个基于文本应用程序的重要性,许多当前基于内容的系统专注于推荐包含文本信息的项目,如文档、Web站点(url)和Usenet新闻消息。对传统信息检索方法的改进来自于使用包含关于用户品味、偏好和需求的信息的用户配置文件。分析信息可以明确地从用户那里获得,例如,通过问卷调查,或者隐式地从他们的交易行为中学习。
更正式地,让Content(s)作为item profile
,里面包含项目s的一些特征属性。它通常通过从项目(其内容)中提取一组特征来计算,并用于确定项目的推荐适用性。正如前面提到的,基于内容的系统主要用于推荐基于文本的条目,因此这些系统中的内容通常使用关键字来描述。例如,Fab系统[8]的基于内容的组件(向用户推荐Web页面)表示Web页面内容,其中包含100个最重要的单词。类似地,Syskill & Webert系统[77]使用信息量最大的128个单词表示文档。单词
k
i
k_i
ki在文档
d
j
d_j
dj的“重要性”(或“信息性”)是由一些权重度量
w
i
j
w_{ij}
wij确定的,可以用几种不同的方式定义。
在信息检索中,最著名的指定关键字权重的度量之一是术语频率/逆文档频率(TF-IDF)度量[89]。简单地理解可以看这篇文章:TF-IDF与余弦相似性的应用(一):自动提取关键词。
如前所述,基于内容的系统推荐的项目与用户过去喜欢的项目类似[56,69,77]。具体来说,将各种候选项目与用户先前打分的项目进行比较,并推荐最匹配的项目。更正式地说,让ContentBasedProfile(c)
成为用户c的配置文件,其中包含该用户的品味和偏好。这些概要文件是通过分析用户之前看到的内容和评分获得的,通常使用信息检索中的关键字分析技术来构建。例如,ContentBasedProfile(c)
可以定义为一个权重向量
(
w
c
1
,
…
,
w
c
k
)
(w_{c1},…,w_{ck})
(wc1,…,wck),其中每个权重
w
c
i
w_{ci}
wci表示关键字
k
i
k_i
ki对用户c的重要性,可以使用各种技术从单独评分的内容向量计算。例如,一些平均方法,如Rocchio算法[85],可用于将ContentBasedProfile(c)
作为单个内容向量的“平均”向量来计算[8,56]。另一方面,[77]使用贝叶斯分类器来估计文档是否喜欢。Winnow算法[62]也被证明可以很好地实现这一目的,特别是在有许多可能特征的情况下[76]。
在基于内容的系统中,效用函数u(c, s)通常定义为:
u
(
c
,
s
)
=
s
c
o
r
e
(
C
o
n
t
e
n
t
B
a
s
e
d
P
r
o
f
i
l
e
(
c
)
,
C
o
n
t
e
n
t
(
s
)
)
u(c,s) = score(ContentBasedProfile(c), Content(s))
u(c,s)=score(ContentBasedProfile(c),Content(s))
采用上述基于信息检索的推荐网页、网站url或Usenet新闻消息的范例,用户c的ContentBasedProfile©和文档s的Content(s)都可以表示为关键字权重的TF-IDF向量
w
⃗
c
\vec{w}_c
wc和
w
⃗
s
\vec{w}_s
ws。此外,在信息检索文献中,效用函数u(c, s)通常用向量
w
⃗
c
\vec{w}_c
wc和
w
⃗
s
\vec{w}_s
ws定义的某种评分启发式表示,如余弦相似度[7,89]:
其中K为系统中关键字的总数。
除了主要基于信息检索方法的传统启发式方法外,其他基于内容的推荐技术也被使用,如贝叶斯分类器[70,77]和各种机器学习技术,包括聚类、决策树、和人工神经网络[77]。这些技术与基于信息检索的方法的不同之处在于,它们不是基于启发式公式(如余弦相似度度量)计算效用预测,而是基于使用统计学习和机器学习技术从基础数据中学习的模型。
正如在[8,97]中所观察到的,基于内容的推荐系统有几个局限性,本节的其余部分将对此进行描述。
- **有限的内容分析。**基于内容的技术受限于显式地与这些系统推荐的对象相关联的特性。因此,为了拥有足够的特性集,内容必须是一种可以由计算机自动解析的形式(例如,文本),或者应该手动将特性分配给项目。虽然信息检索技术可以很好地从文本文档中提取特征,但其他一些领域在自动特征提取方面存在固有的问题。例如,图像、音频和视频流等多媒体数据的自动特征提取方法就比较困难。此外,由于资源的限制,手工分配属性通常是不现实的[97]。
- 有限内容分析的另一个问题是,如果两个不同的项目用同一组特征表示,它们是无法区分的。因此,由于基于文本的文档通常由它们最重要的关键字表示,如果它们碰巧使用相同的术语,基于内容的系统无法区分一篇写得好的文章和一篇写得不好的文章[97]。
- **过度专业化。**当系统只能推荐用户个人资料中得分高的商品时,用户被限制被推荐的商品与那些已经评分的商品相似。例如,一个没有希腊菜经验的人永远不会被推荐去城里最好的希腊餐馆。这个问题在其他领域也有研究,通常通过引入一些随机性来解决。例如,遗传算法的使用作为信息过滤的一种可能的解决方案[98]。此外,过度专门化的问题不仅在于基于内容的系统无法推荐用户以前见过的不同项目。在某些情况下,如果条目与用户已经看过的内容过于相似,比如描述同一事件的不同新闻文章,则不应推荐它们。因此,一些基于内容的推荐系统,如DailyLearner[13],不仅会过滤掉与用户偏好差异太大的条目,也会过滤掉与用户之前看过的内容太相似的条目。此外,[112]提供了一组五种冗余措施来评估被认为相关的文档是否也包含一些新的信息。总之,推荐的多样性通常是推荐系统的一个理想特性。理想情况下,应该向用户提供一系列选项,而不是一组同质的备选方案。例如,把伍迪·艾伦的所有电影都推荐给喜欢其中一部的用户不一定是个好主意。
- **新用户问题。**在基于内容的推荐系统能够真正了解用户的偏好并为用户提供可靠的推荐之前,用户必须对足够数量的条目进行评分。因此,一个新用户,只有很少的评分,将无法得到准确的推荐。
2.2 协同推荐方法
与基于内容的推荐方法不同,协同推荐系统(或协同过滤系统)试图根据先前被其他用户评分的项目,预测项目对特定用户的效用。更正式地说,给用户c的项目s的效用u(c, s)是根据效用 u ( c j , s ) u(c_j, s) u(cj,s)来估计的,其中 c j c_j cj为与用户c“相似”的用户 c j ∈ C c_j ∈ C cj∈C。例如,在一个电影推荐应用程序中,为了向用户c推荐电影,协同推荐系统试图找到用户c的“同伴”,即其他12个对电影有相似品味的用户(用相似的方式给相同的电影打分)。然后,只有用户c的“同伴”最喜欢的电影才会被推荐。
根据[15],协作推荐算法可以分为两大类:基于记忆(或基于启发式)和基于模型。
基于启发式方法:在原论文中,作者给了三个评分的计算方法:
三个分别为:
- 求平均(N个相似用户的评分的平均)
- 求加权平均(与这个用户越相似的人,权重越高)
- 减去用户打分的平均值后再加权平均( r c ‾ \overline{r_c} rc定义为:用户c的平均打分。因为用户打分的时候标准不统一,如果一个用户普遍打分高,或者普遍低,两个人的标准就不统一)
s i m ( c , c ′ ) sim(c,c') sim(c,c′)为相似度函数。相似度函数是人为设定的,有很多种计算方法,最常用的两种是:基于相关性和基于余弦cosine的计算方法。
像default voting, inverse user frequency, case application, weighted-majority prediction等技术,是针对相似度函数(包括基于相关性和基于余弦)的改进方法。
对比基于记忆的方法,基于模型的方法就是用收集的打分训练一个模型,用来做打分预测的模型。
并且假设评分值是0到n之间的整数,概率表达式是用户c在给定用户对之前评分的项目评过分的情况下,对项目s进行特定评分的概率。为了估计这个概率,[15]提出了两种可供选择的概率模型:聚类模型和贝叶斯网络。
在第一个模型中,志同道合的用户被聚集到不同的类中。考虑到用户的类成员身份,假设用户评分是独立的,即,模型结构是naïve贝叶斯模型。类的数量和模型的参数都是从数据中获得的。
第二种模型将域中的每一项表示为贝叶斯网络中的一个节点,其中每个节点的状态对应于每一项可能的评分值。网络的结构和条件概率都是从数据中学习的。
此外,协同过滤的方法使用机器学习的框架,可以采用机器学习的技术(比如人工神经网络)结合特征提取技术(比如奇异值分解—一种给矩阵降维的代数方法)的方法。文献15和11中,他们各自的基于模型的方法与标准的基于记忆的方法比较,指出了在一些应用中,基于模型的方法要比基于记忆的准确率更高。然而,这两个例子都是纯实验的,没有理论支持。(意思是就是表现好,但是没有理论依据)
还有其他很多借助模型的推荐系统,比如统计模型的协同滤波的方法、K-means 聚类、Gibbs采样、贝叶斯模型、概率关系模型、线性回归、最大熵模型、Markov decision processes等等。
像基于内容的技术提到的例子一样,协同滤波基于模型的技术和基于启发式的方法的主要不同就是,基于模型的技术计算效用时不是用专门的启发规则,而是用统计学和机器学习的技术从基础数据中学习模型。
提升协同过滤表现在前人中有很多发现,比如:
- 输入集使用一些技术精心挑选的用户打分,这些技术排除了噪音、冗余,利用了打分数据的稀疏性
- 结合基于记忆和基于模型的技术
协同过滤技术也有自己的局限性,比如:
- **新用户问题(冷启动)。**和基于内容的系统由同样的问题。为了做准确的推荐,系统必须首先从用户的打分学习用户的喜好。一些技术可以解决这个问题。大部分使用混合推荐的方法,结合了基于内容的和协同滤波的技术。在下一章介绍混合推荐系统的更多细节。文献83、109提供了一个可选择的方法,有许多技术被开发出来去预测给新用户去打分最佳物品(即为推荐系统提供最多信息的物品)。这些技术使用了基于物品流行度、物品熵、用户个性化或者结合上面方法的策略。
- **新物品问题。**新物品定期被加入到推荐系统里。协同滤波系统只依赖用户的喜好去做推荐。因此知道一个新的物品被一些用户打分之后,系统才能推荐它。这个问题也可以被下一章提到的混合推荐方法解决。
- **稀疏性。**在任何推荐系统中,已经获得的打分数量与需要预测的打分的数量相比是非常小的。从小数据量有效预测打分是非常重要的。协同滤波推荐系统的成功依赖于关键用户的有效性。举个例子,在电影推荐系统里,有很多电影只被很少的人打分,这些电影将很少被推荐,甚至那些用户给了高分也很难推荐。口味不寻常的用户比其他人,可能很少有人跟他那么像,推荐系统表现就会非常差。一个解决打分稀疏的方法是使用计算用户相似度的时候用户画像信息。两个用户被认为相似,不仅可以因为他们电影打分相似,也可以是因为他们属于同一人口划分。举个例子,在餐厅推荐应用里,可以使用用户的性别、年龄、邮编、教育和工作信息。传统协同滤波技术的扩展,有时候也叫做“人口滤波”。文献49中提到了另一种方法也是从用户中找到相似性,其中稀疏性问题可以被解决,使用联合检索框架和相关扩散激活算法根据他们过去的交易和反馈区传递用户之间的关系。文献11和90用了一个不同的方法去解决稀疏的打分矩阵,降维技术SVD,用来减少稀疏打分矩阵的维度。SVD是在矩阵分解中一个非常有名的方法,提供原始矩阵的最佳低阶近似矩阵。
2.3 混合方法
一些推荐系统使用混合的方法,结合了协同滤波和基于内容的方法,帮助避免这两种方法的限制。不同的方式去结合着两种方法可以被分为以下几类:
(1)分别使用两种方法,在结合他们的预测。
做一个混合推荐系统的一种方法就是将分离的协同滤波和基于内容的系统结合起来。我们有两个不同的情景。一种方法是,我们可以使用评分的线性组合或投票方案将单个推荐系统获得的输出(打分)组合成一个最终推荐。另一种,我们可以用其中一个推荐系统,在提意见的时候,根据推荐系统的“质量”标准,选择效果更好的那个。举个例子,DailyLearner选择可信度较高的那个,而文献104中选择的是和用户过去打分更一致的。
(2)把基于内容的一些特征结合到协同滤波。
一些混合的推荐系统,包括Fab[8]和文献76提到的“通过内容的协同滤波”方法,他们都是基于传统的协同滤波技术但是为每个用户保存了基于内容的画像。这些基于内容的画像用来计算两个用户的相似度,而不是用平常的打分的物品。像文献76中提到的,它克服了一些纯协同滤波方法的稀疏相关问题,因为通常用户很少有那么多打分的物品。这个方法的另一个好处是,用户被推荐的物品不仅仅是和画像相似用户打高分的物品,还有直接的,即和用户画像相比得分很高的物品。
(3)把协同滤波的一些特征结合到基于内容的方法。
最流行的方法就是一组在基于内容的画像上使用降维技术。举个例子,文献100中使用潜在语义索引(LSI)去为用户画像建立了一个协同滤波的视角,其中用户画像用向量表示(2.1中提到),结果比纯基于内容的表现要好。
(4)构造一个综合模型,结合了基于内容和协同滤波的特征。
最近几年,许多研究者都在做。举个例子,文献9中提到将基于内容和协同滤波的特征(比如:用户的年龄、性别;电影题材)用于一个基于规则的分类器中。文献80和94提到一个结合协同过滤和基于内容的推荐系统的统一概率方法,这是一个基于概率的潜在语义分析。文献25和5的另一种方法,采用贝叶斯混合效应回归模型,采用马尔可夫链蒙特卡罗方法进行参数估计和预测。
混合推荐系统可以用基于知识的技术增强,比如基于案例推理,可以去增强推荐系统的准确性并且解决传统推荐系统的一些限制(比如新用户、新物品问题)。举个例子,基于知识的推荐系统Entrée用一些关于餐馆、饭菜、食物(比如“海鲜”不是“素食主义”)领域的知识来给用户推荐餐馆。
基于知识系统的主要缺点就是需要知识的获取——许多人工智能应用的常见瓶颈。然而已经为这些领域的应用开发了基于知识的推荐系统,这些领域的知识已经是机器可读结构的了,比如正交。举个例子,Quickstep 和Foxtrot系统使用研究话题正交去给用户在线推荐研究文章。
2.4 概要和总结
如2.1-2.3节所述,在过去的几年里,有很多关于推荐技术的研究已经完成,这些研究使用了广泛的统计、机器学习、信息检索和其他技术,与早期使用基于协作和内容的启发式推荐系统相比,这大大提高了技术水平。如上所述,推荐系统可以分为(a)基于所使用的推荐方法的基于内容、协作或混合,以及(b)基于用于评分估计的推荐技术的类型的基于启发式或基于模型。我们使用这两个正交维度对表2中2×3矩阵中的推荐系统研究进行分类。
本节中描述的推荐方法在一些应用程序中表现良好,包括推荐书籍、cd和新闻文章的方法[64,88],其中一些方法被用于“行业实力”推荐系统,例如在Amazon部署的推荐系统[61],MovieLens[67]和VERSIFI Technologies(以前adapiveinfo.com)[14]。然而,协作和基于内容的方法都有本节前面所述的某些限制。此外,为了提供更好的推荐,并能够在可论证的更复杂类型的应用程序中使用推荐系统,例如推荐假期或某些类型的金融服务,本节中介绍的大多数方法都需要大量扩展。例如,即使对于一个传统的电影推荐应用程序,[3]也表明,通过扩展传统的基于记忆的协同过滤方法,将上下文信息考虑在内,比如电影是在何时、何地以及与谁一起看的,由此产生的推荐系统可以超过纯传统的协同过滤方法。许多现实生活中的推荐应用程序,包括几个商业应用程序(如上面描述的那些),可以说比电影推荐系统更复杂,需要在推荐时考虑更多因素。因此,对于这类应用来说,开发更先进的推荐方法的需求更加迫切。在下一节中,我们将回顾扩展推荐方法的各种方法,以支持更复杂类型的推荐应用程序。
3 推荐系统的扩展能力
就像第2章讲的和表2总结的那样,推荐系统可以用一些方法进行扩展,包括提升对用户和物品的理解力,在推荐过程中加入上下文信息,支持多规则打分,和更灵活少打扰的推荐。很多推荐系统的综合模型能够提供更好的推荐能力。在本章的后面,我们要讲讲这些扩展方法,支持提升他们的各种研究机会。
3.1 全面了解用户和项目
在[2,8,105]指出,大部分的推荐方法生产的评分是基于有限的理解用户和项目被用户和项目Profile,不充分利用用户的事务历史记录和其他可用数据。例如,经典的协同过滤方法[45,86,97]根本不使用用户和条目的Profile进行推荐,而是完全依靠评分信息进行推荐。尽管自推荐系统早期[13,76,79]以来,在将用户和项目Profile纳入一些方法方面已经取得了一些进展,但这些Profile仍然趋向于非常简单,没有利用一些更先进的配置技术。
除了使用传统的Profile特征,如关键字和简单的用户人口统计数据[69,77],基于数据挖掘规则[1,34]、序列[63]和描述用户兴趣的签名[26]的更高级的Profile技术也可用于构建用户Profile。此外,除了使用传统的商品Profile功能(如关键词[9,76])外,类似的高级Profile分析技术也可以用于构建全面的商品Profile。关于推荐系统,基于数据挖掘的高级概要技术主要用于Web使用分析[59,68,110],即发现导航Web使用模式(即,页面浏览序列),为用户提供更好的网站推荐;然而,在基于评分的推荐系统中,这些技术还没有被广泛采用。
对于下面的公式,我的理解:R表示已知的用户i,项目j(i,j为抽象概念) r i j ≠ 0 r_{ij} \neq 0 rij=0的所有评分集合, c ⃗ \vec{c} c和 s ⃗ \vec{s} s分别为用户profile和项目profile。我们利用这些数据,放入效用函数 u i j u_{ij} uij中,进行打分预测。
3.2 基于模型的推荐技术的扩展
正如第2节所讨论的,一些基于模型的方法利用各种统计和机器学习技术提供了严格的评分估计方法。然而,其他领域的数学和计算机科学,比如数学近似理论也有助于开发由式(16)定义的更好的评分估计方法。比如径向基函数(原论文写的比较复杂,我不打算看了)。
3.3 多维度推荐系统
最近的推荐系统都用的两个维度,用户x物品。他们做推荐的时候基于用户和物品的信息,不考虑在其他应用中可能很重要的额外的上下文信息。然而,在许多情况下,某产品对用户的效用可能在很大程度上取决于时间(例如,一年中的时间,如季节、月份或星期几)。它也可能取决于产品将在何种情况下与谁一起消费或共享。在这种情况下,仅仅向用户推荐物品可能是不够的;推荐系统在推荐产品时必须考虑额外的上下文信息,例如时间、地点和用户的公司。
举个例子,当推荐度假套餐时,系统还应该考虑一年中的时间,用户计划和谁一起旅行,当时的旅行条件和限制,以及其他相关信息。另一个例子,当用户周六晚上和男友一起去电影院看电影,而不是周三晚上和父母一起在家看租来的电影时,她对想看的电影类型可能会有明显不同的喜好。像文献2说的那样,扩展传统两维推荐方法(用户x物品)到多维是非常重要的。此外,文献43提到,在某些应用程序中,将用户任务的知识包含到推荐算法中可以得到更好的推荐。
原论文还介绍了推荐系统利用多维的抽象写法、基于化简的推荐方法、2维扩展到多维的贝叶斯方法。
3.4 多规则打分
现在大部分的推荐系统都是处理单一规则打分,比如给电影和图书打分。然而,在一些应用,比如餐馆推荐,将多规则打分结合到推荐方法中是非常重要的。比如,许多餐厅导航,像Zagat’s Guide,提供三个餐厅打分规则:事物、装修、服务。尽管还没有推荐系统的文献检测过多规则打分,他们已经在运筹学界被广泛研究很久了。多规则优化问题的典型解法包括找到(a)Pareto最优解(b)采用多准则的线性组合,将问题简化为单准则优化问题(c)优化最重要的准则,并将其他准则转换为约束条件(d)每次连续优化一个准则,将最优解转换为约束条件,并对其他准则重复此过程。后一种方法的一个例子是连续让步法。
3.5 无打扰
许多推荐系统都可以感觉到它在打扰你,他们需要从用户得到显示的反馈,经常是重要的用户参与。举个例子,在推荐新闻文章前,系统需要获取之前读过的文章的打分,而且一般需要很多。因为从用户抽取很多文章打分是不现实的,有些推荐系统用无打扰打分决定方法,其中某些代理被用来估计真实的打分。举个例子,用户阅读新闻文章的时间,可以作为该用户给出的文章评分的代理。文献[18,53,66,74,94]中给出了一些获取无打扰用户反馈方法。然而,无打扰打分(比如读文章的时间)总是不准确的,不能完全代替用户的显示打分。因此,为了维持推荐系统某个级别的准确性,最小打扰的问题还需要被研究解决。
3.6 灵活性
大多数推荐方法在某种意义上是不灵活的,因为它们是由供应商“硬连接”到系统中的,因此只支持预定义的和固定的推荐集。因此,最终用户不能根据自己的信息定制推荐实时满足她的需求。此问题已在[2]中确定,并已提出建议查询语言(RQL)来解决[2]。RQL是一种类似sql的语言,用于表达灵活的用户指定的推荐请求。例如,请求“向来自纽约的每个用户推荐超过两个小时的最好的三部电影”可以在RQL中表示为:
此外,大多数推荐系统只向个别用户推荐个别项目,而不处理聚合。但是,能够在许多应用程序中提供聚合的推荐是很重要的,例如向某些用户群体推荐品牌或产品类别。例如,一个旅游相关的推荐系统可能想要在春假期间向来自东北的本科生(用户群)推荐佛罗里达州的假期(产品类别)。支持聚合建议的一种方法是将基于olap的方法[19]用于多维建议。基于olap的系统自然支持聚合层次结构,在[2,3]中提出了在推荐系统中部署基于olap方法的初始方法。然而,对于如何在推荐系统中使用OLAP方法,还需要做更多的工作,这是一个有趣且具有挑战性的研究问题。
3.7 推荐系统的有效性
提升测量推荐系统的有效性是一个在推荐系统文献中被广泛解决的问题。文献[41, 44, 69, 107]中有很多关于它的例子。大部分推荐系统文献,对于推荐算法的表现评价都是依照覆盖率和准确度量。覆盖率测量的是推荐系统能够预测物品占的应推荐物品的百分比。准确性测量可以是统计的,也可以是决策支持的。统计准确率度量主要是比较预测打分和User×Item矩阵中的实际打分R,包括平均绝对误差MAE,均方根误差,预测和打分的相关度。决策支持测量是推荐系统可以预测高相关度的物品的程度(即,物品是否被用户打高分)。他们包括经典IR测试:精确率(预测对的真正高分的占预测高分的比例),召回率(正确预测的高分占所有已知高分的比例),F测试(精确率和召回率的调和平均),ROC测量,展示了推荐系统中真正例和假正例的权衡。
(PS:
TP:True Positive,被判定为正样本,事实上也是正样本。
FN:False Negative,被判定为负样本,但事实上是正样本。
FP:False Positive,被判定为正样本,但事实上是负样本。
TN:True Negative,被判定为负样本,事实上也是负样本。
精确率 precision=TP/(TP+FP) 预测为正且为本身正/所有预测为正
召回率 recall=TP/(TP+FN) 预测为正且为本身正/真正的正样本
F1 score= 2*precision*recall/(precision+recall)
)
3.8 其他扩展
推荐系统文献中还探索了其他重要的研究问题,包括可解释性、可信度、可伸缩性和推荐系统的隐私问题。但是,由于篇幅有限,我们将不回顾这项工作,也不讨论这些领域的研究机会。
4 总结
在过去十年中,推荐系统取得了重大进展,提出了许多基于内容、协同和混合的方法,并开发了几个“工业级”的系统。然而,尽管有这些进步,本文所调查的当代推荐系统仍然需要进一步的改进,使得推荐方法在更广泛的应用范围内更有效。在本文中,我们回顾了当前推荐方法的各种局限性,并讨论了可以提供更好推荐功能的可能扩展。这些扩展包括:用户和物品的改进模型、将上下文信息结合到推荐过程中、支持多规则打分以及提供更灵活、更少打扰的推荐过程。我们希望本文提出的问题能够促进推荐系统界对下一代推荐技术的讨论。