首页 > 代码库 > 基于近邻推荐方法综述

基于近邻推荐方法综述

<style></style>

摘要:基于近邻(nearest-neighbor)算法广泛用于协同推荐方法中,原因在于该算法简单、有效,且能够准确及个性化的推荐。

4.1 简介

推荐问题可以定义为评估用户对新物品的反馈,这种评估是基于该系统中历史数据信息,同时推荐那些预测反馈兴趣高的新颖(novel)和独到(original)的物品给客户。这种基于物品的反馈类型在各个系统中的表现可能不大一样,但大致可以分为三种:分级反馈(scalar response)、二元反馈(binary response)和一元反馈(unary response)。分级反馈也就是热门熟悉的评分制,例如,用数值(15星)或比较标准(强烈同意,同意,一般,反对,强烈反对)来表示这些客户对物品的反馈程度。二元反馈仅有两种对立的值来表示评估情况(例如,喜欢/厌恶;感兴趣/不感兴趣)。最后,一元反馈是获取客户与物品互动行为信息(如购买、在线访问等)而没有具体关于用户对于物品的评价。因为大多数用户一般倾向于浏览感兴趣的物品,一元反馈依然能够提供关于客户喜好的有用信息。

获取用户的反馈信息方式也是多种多样的,例如,对于一个电影推荐应用来说,用户可以在观看完电影后给出自己具体的评分,给出相应的观点。用户反馈也可以从具体购买历史或者访问模式中获得,例如,当用户花了大量时间浏览具体物品类型的时候,可以认为这是用户感兴趣的物品类型。为了简洁,后面用评分来代替各种类型的用户反馈。

4.1.1 问题公式化定义

为了给物品的推荐任务进行公式化定义,我们需要介绍一些基本概念。在系统中我们定义用户集合为技术分享,物品集合技术分享。因此,我们定义技术分享为系统评分集合,技术分享为用于评分可选的分数集合(如技术分享或者技术分享)。同时,我们技术分享表示为用户技术分享对于特定物品技术分享的评分,同时假定技术分享的取值个数不能多于一个(技术分享要么有一个取值要么没有取值)。我们用技术分享表示集合中已经对物品技术分享进行了评分的用户集合。同样,技术分享表示被用户技术分享所评分物品集合。同时被用户技术分享技术分享所评分的物品集合(技术分享)可以表示成技术分享技术分享则用于表示同时对物品技术分享和物品技术分享都进行了评分的用户集合。

最优项(best item)和最优N项(top-N)是推荐系统中最重要两个问题。最优项是指用户技术分享最有可能感兴趣的新物品项技术分享。当评分值存在时,这个最优项通常可以定义为一个回归或者(多类)分类问题,其目标是用学习函数技术分享来预测用户技术分享对于物品技术分享的评分技术分享。这样就可以通过这个函数并利用下面的式子预测评价用户技术分享对于哪一样物品技术分享具有最高分数项(也就是最优项):

技术分享 (1)

准确性是通常用来评测推荐系统效果的主要方法。一般来说,评分集合技术分享可以分为用于训练函数技术分享的训练集技术分享和用来测试预测效果的测试集技术分享。两种常用的测试预测准确性的标准分别为平均绝对误差(MAE):

技术分享 (2)

和均方根误差(RMAE):

技术分享 (3)

当没有可用评分信息的时候,例如,仅拥有用户购买商品的列表,评估预测分数的准确性是不可能的。在这种情况下,对于寻找最优项问题通常就转换为向用户推荐感兴趣的列表:列表技术分享包含用户技术分享最感兴趣的技术分享项物品。评估这种方法的质量也是将物品列表分为用于测试的测试集合技术分享。令技术分享表示测试物品中用户技术分享认为相关的物品子集如果用户的反馈是二元反馈(binary responses),那么这些物品项就是指用户技术分享所给评分为正的。

4.1.2 推荐方法概要

4.1.3 基于近邻方法的优势

尽管一些最新研究显示最新的基于模型的算法在预测分数方面要好于基于近邻的方法,但是仅预测精度高并不能保证用户得到高效和满意的体验。另一个推荐系统中影响推荐用户感兴趣物品的因素是惊喜度(serendipity),即通过帮助用户找到感兴趣但是本不可能发现的物品,拓展了新颖性概念。

基于模型推荐方法在刻画用户爱好的潜在因素方面有突出优势,例如,在一个电影推荐系统中,基于模型方法断定用户是喜剧和浪漫电影,而无须准确区分喜剧和浪漫两个维度。另一方面,基于近邻方法能够捕捉这些数据的一些关联,使用了这种方法的电影推荐系统很有可能推荐给用户与他平常品味不一样或者不知名的电影,只要他的近邻用户给了这部电影很强的评分。

基于近邻方法一些优势:

简单性:基于近邻推荐方法直接而且容易实现,在其简单形式里面,仅有一个参数(用于预测的近邻数目)需要调整。

合理性:这种方法对于计算预测也提供了简洁并且直观的理由。例如,在基于物品的推荐系统中,近邻物品列表以及用户给予这些物品的评分,都可以提供给用户作为推荐结果的理由。这能够帮助用户理解推荐结果及其关联性,并且作为交互系统的基础;在该系统中用户能够挑选推荐结果中提示重要性更高的近邻。

高效性:选择基于近邻系统的一个强烈原因在于它的效率。大多数基于模型的系统需要大量的时间消耗在训练阶段。由于近邻方法在推荐阶段需要比基于模型方法有更大的消耗,近邻方法可以在离线预先计算近邻,提供近乎即时的推荐结果。同时,存储近邻只需要很小的内存,使得这种方法很适合拥有大量用户或者物品的应用。

稳定性:这种推荐系统拥有另外一个有用的性质就是系统在用户、物品、评分增加时受到影响很小,尤其在大型商业应用中。利润,一旦物品相似计算完成,基于物品的推荐系统就可以为新用户作推荐,而不需要在重新训练系统。同时,一旦新的物品的评分加入,仅仅需要计算该新物品和系统已有物品直接的相似性即可。


基于近邻推荐方法综述