结合协同过滤和个性化AGENT的增强推荐(续)

来源:互联网 发布:yum update 卡住 编辑:程序博客网 时间:2024/06/07 18:31

(续)

假设和实验设计

在这篇论文中,我们系统的探索了协同过滤、信息过滤和不同的这些技术的组合体以用来制成一个新的更有效的个人推荐系统。具体而言,我们关注以下四个关键的模型(如图一所示):


图一 四个推荐系统的模型

最顶上的模型是使用用户意见、最底下的模型是只使用IF服务器、最左边的模型是使用多重IF服务器以及最左边的只使用一个IF服务器。在每个模型中用户都会收到个性化的推荐。

1.  纯粹的使用其他用户建议的协同过滤;

2.  一个单独的个人服务器——一个机器学习或者语法过滤器;

3.  多种服务器的联合体;

4.  一个多种服务器的联合体和一个团体成员的意见。

实验设计分两层。其一,我们评估那些特定模型的实现方式已获得最好的过滤结果。其二,我们从每个模型联合其他实现方式比对最优的实现方式。这些是取得实现的最基本的四个假设:

H1  用户群体意见比单一个性化服务器提供更好的推荐。

H2  几个个性化服务器的结合体比单一个性化服务器提供更好的推荐。

H3  用户群体意见比几个个性化服务器的联合体提供更好的推荐。

H4  将用户群里意见和几个个性化服务器联合体结合起来比它们两个单独使用的时候提供更好的推荐。

这些假设所测试的环境是一个小范围的匿名影迷。小型非文本的内容对于协同过滤以及信息过滤来说都是一个缺陷。它提供了一个相对中间情况的文本内容,这个内容的容量介于协同过滤的需要许多用户但很少内容信息的情况和信息过滤推荐的仅需要一个用户但大量文本信息的情况。

数据(集合)设置

众所周知MovieLens system(http://movielens.umn.edu)有着超过80,000用户以及多达3,000,000条电影评价,因此本实验中的电影的用户评级就从这个网站中提取。我们随机抽取了50名影迷,以及超过120条电影评价(评级)。对于每个用户而言,我们随机的给每个用户三组电影和评价。最开始的50组评价(评级)被视为训练集合,它是为了调试(train)个性化信息过滤服务器而留出来的。第二部分的50组评价(评级)被视为关联集合,它是在将用户、数据和服务器结合起来的时候用的。最后的20组评价(评级)是最终的测试数据。在每个实验中,目标用户的待测试评价(评级)是被保留住用于和系统提供的推荐内容相比较的。

指标

推荐系统的研究人员为了提高推荐效果使用几种不同的测量。(应该意思就是引出有几个指标是用来衡量推荐系统的性能的)

覆盖率指标

评估推荐系统可能给出推荐的物件数量。在很多推荐系统中,为了提高准确性而缩小了数据覆盖率,认为高覆盖率的数据会让系统推出低准确性的推荐。因为我们的信息过滤系统提供的是全覆盖的情况,我们暂时不汇报除CF系统以外的覆盖率。


统计准确度指标

通过比对数值预测和用户对物件的评价(评级),参考预测结果和评价来评估推荐系统的准确性。

(Shardanand和Maes在1995) 以及 (Sarwar在1998)都用了平均绝对误差(MAE)来测量推荐预测系统的效果。其他指标的使用有,Sarwar在1998年使用包括根均方误差(RMSE)和(Hill在1995) (Konstan在1997) (Sarwar在1998)使用评级和预测之间的相关性。我们实验已经展示了这些指标之间的关系是很密切的。我们已经选择公布平均绝对误差(MAE),因为这个指标是最常用也是最容易去解释的。

决策支撑准确性

这个指标一个预测引擎在帮助用户从物件库中选择高质量物件的效率。对于绝大多数的用户而言,这些指标是基于用户是否观看的一个二元运算(binary operation)的一个观察。如果观看了,那么这个物件的评分即使是1.5或者2.5分(满分5分)或者是4分亦或是更高,都是无关紧要的。最常见的决策支撑准确性测量是逆反率、加权误差和ROC敏感度。

逆反率

逆转率是系统做出极端错误推荐的频率。在一个满分五点的机制下,通常定义3点及以上为推荐的比例要求。

加权误差

这个指标允许在当用户对物品有着很强看法的时候出现较大的误差(weigh还是没有很好解释),例如,当用户给予该物件以最喜欢只说,这时的错误可能是正常的两倍甚至更多。

ROC敏感度

这是一种用对信号进行处理并做出决策措施的过滤系统。从图像上来说,他是接受者操作特征曲线(ROC)下面的面积,这条曲线描绘了敏感性比上1-特异性sensitivity vs. 1 –specificity在1988年Swets展示过。

敏感度是指随机选择好的项目被过滤器所接受的概率。特异性是指随机选择的项目被过滤器拒绝的概率。

ROC曲线上的点代表了过滤器支持的取舍(协议)次数,一个优秀的过滤器允许用户在接受90%优秀物件以及10%的错误物件同接收95%的优秀物件和20%的错误物件之中选择。一个随机过滤器永远只接受相同的正确物件概率和错误物件概率。ROC敏感度分布从0到1,而1是完美,0.5是随意的。

我们使用ROC敏感性作为决策支撑精度的测量。我们使用ROC敏感性作为决策支持精度测量。为了更好的使用ROC,我们必须确定哪些为之是“好”,哪些为之是“坏”,我们使用用户自己的评级,4和5是“好”,而1、2和3是“坏”。

我们的实验表明,这反映了用户在MovieLens上的行为。我们发现有一个用户没有评分低于4的电影,于是我们将这个用户从每个小实验编译的数据中剔除。

评估假设

面对多个指标的时候进行评估假设是一个很大的挑战。我们认为考虑统计和决策支持这两个指标在评估不同的推荐系统中有着较高的重要性。举个例子,当有几个输出不同情况的服务器的时候,该如何在这两个指标中间进行权衡呢?我们将他们都认为是最优的候选,然后比较他们对替代者的推荐。如果替代实验中有一个指标明显改善,而其余没有显著差异则我们认为替代者比另一个更处在更优的位置。

统计显著性

在使用平均绝对误差(MAE)的Wilcoxan测试匹配错误的时候,可使用统计显著性。不同的报告是否显著是基于p<0.05的显著性水平。统计显著性水平对ROC灵敏度的评估不是很清楚,因此我们认为0.01及以上认为是“有意义”,0.01以下是被认为“无意义”。

*There are statistical measures to compareROC curves themselves, but the measures that we have found for comparing areasunder the curve appear to overstate statistical significance.

实验组成

我们的假设是建立在这四个推荐系统的模型上的:

  •   只有用户意见;
  •   单独的IF服务器;
  •   多种IF服务器的联合体;
  •   多种IF服务器的联合体结合用户意见;

在这个部分,我们概述一下我们是森马实现这四个模型的。每个模型的时效性将会在之后的结论部分进行阐述。

只有用户意见

已经有大量的实验证明可以通过一组用户意见产生相关的推荐。最接近这个模式的协同过滤已经被视为这种模式中最有效率的机制了,因此我们会选择使用它,(Breese 1998)。特别的我们使用DBLens调研GroupLens Research协同过滤引擎项目,探索协同过滤算法。DBLens允许实验人员控制不同的在效率、覆盖率以及准确性之间交互的参数(变量)。

对于我们的实验而言,我们对对它们都进行了设置以提升覆盖率和去不考虑性能的使用数据。

每个用户的CF结果是怎么被计算出来的呢?首先加载相关的数据集(50用户评级)进入引擎,之后给每个用户加载测试集(20个用户评级),之后便会给每个用户一个相关预测。

DBLens有一个控制端,这个控制端允许当我们在给用户做预测的时候,忽略用户评级

每个用户的20个预测结果将会拿来和用户评级进行比较从而产生错误率和ROC统计数据。

单独的IF服务器

这个项目中有三种不同种类的IF服务器或者是filterbots(爬虫)RipperBots和一组GenreBots。

Doppelganger Bots (DGBots)相似性机器人DGBots

这是一个个性化机器人,是通过使用RF/IF技术来创建用户喜好画像和种类预测的(严格来说是个整合过的tfidf算法,Salton和Buckley1987)。这项预测是基于每部电影的内容特征。

我们创建了三个DGBots,一个是使用铸造数据,另一个是使用描述性的关键字,还有一个是两个都使用。这些数据是在Internet Movie Database (http://www.imdb.com/)获取的。

每个DGBots以相同的方式进行操作实施,所以我们在这只对描述性关键字DGBots进行描述。

为了提供用户以电影推荐,关键字DGBots遵循以下的五个步骤

1.   创建一个IDF向量表示电影中的每个关键词的稀缺相关性

2.   给每个电影创建一个频率向量项表明出现了关键词。

3.   建立一个用户画像用来储存与每个项(2中的项)相关的权值。

4.   根据用户的权值给每个电影提供一个数值(score)。

5.   将依据数值给电影排序,并且给他们进行推荐等级分类。

IDF向量是用下面这个方程来创建的,是用来计算与每个关键词相关的权值的。

N代表电影的总数,O代表使用该关键字的电影数目。

我们修改了传统的TFIDF算法,给每个关键字的出现与否进行了赋权(出现为1,否则为0),这样一来,就可以获得与0和1(每个关键字插入了0或1)有关的TF向量了。

创建用户画像要求有一个相对均衡的用户评级,所以我们在每个评级的分数上减去3,转变成[-2,+2]区间,对于每部电影有50个用于训练的评级,我们生成关键词喜好向量(作为转换评级的产物)、电影TF向量和IDF向量。之后,我们对关键词喜好向量进行标准化(总长度为1)【We then normalize the keyword preferencevector to length 1.】用户五十个关键词喜好向量的平均值就是用户画像。

DGBots同时产生所有的电影评级,对于每一个电影来说,它可以计算用户画像向量的点积和TF向量的点积。

至于那些分数随后会进行排名,会依据评级等级进行分类,之后匹配MovieLens的总评分类。前21%的电影收到5的评级、评级为4的有34%、评级为3的有28%、评级为2的有12%、最后5%是评级为1的。

虽然每个用户会有独立的用户画像向量和一组推荐,但是TF和IDF向量可以在用户之间重用。

RipperBot开膛机器人

这个爬虫是使用Ripper这个有威廉姆可汗William Cohen (Cohen, 1995)创立的归纳逻辑的程序创建的。我们发现RB的效益在被一组受类别标识符和200个高频关键词限制的数据训练的时候达到最高。

RB在做二选一的决策的时候也是可以达到较好的效益,所以对于每个用户来说我们训练4个RB实例,分别调整比例为5/4321、54/321、543/21和5432/1。每个实例将会和50部电影的标识符和关键字一起被50-rating数据进行训练。

训练之后,我们要求每个实例的整个电影集进行分类和总结那些表明更高的价值RB的实例数量再添加一个来创建一个建议值

RB要求有实质性的调整,于是我们测试了几个参数也同时参考了BasuHirsh和Cohen的意见(1998)。特别的,我们调整默认设置去让负面的测试设置数值的属性,同时通过改变损失比率来进行实验。最后我们发现1.9的损失比率会有最好的结果。

题材机器人

其包括19个简单的机器人,如果该电影与机器人的种类像匹配,则他们设定每部电影一个5的评级,否则就是3分。举个例子,一部孩童版的喜剧故事Toy Story将会收到ChildrensBot、AnimatedBot、ComedyBot均5分的评级,但是在其他的机器人身上得到3分的评级。种类数据存放在IMDB之中。

给每个用户创建一个一个庞大数据量的种类(题材)机器人。这个可以通过使用线性回归和在每个用户的训练集中训练机器人实现。一个用户的认知评级可以被视为19个独立题材机器人的因变量。回归系数构建了一个给有种类标识符的电影进行预测的方程式。

多种IF服务器的联合体

我们辨别一下四种不同的联合服务器的方式先:

  给每个用户选一个服务器

  对每个服务器的结果取平均

  使用回归的方式进行个性化组合设计

  使用CF创建个性化组合

除了第一种方式,我们发现创建两个联合体是很重要的:一个是使用19个GenreBots以及一个使用Mega-GenreBot。另一个是,添加三个DGBots和一个RIpperBot。我们视这两个方法分别为版本23-代理和版本5-代理。

最优机器人

每个用户的代理最好的是通过相关性数据集(50评级)和以最低的平均绝对误差MAE选取的机器人选择出来的。

BestBot之后会使用由机器人通过测试数据集生产评估统计数据评级。

平均服务器代理

平均联合服务器的结果是通过取5或23服务器推荐的结果的算术平均值之后得出的。

线性回归

我们使用线性回归去给用户提供一个最合适的服务器联合方式。我们分别使用基于23和5服务器的相关性数集的预测结果作为自变量以及用已知的用户评级作为因变量。使用合成权重我们可以给测试集中的电影给出预测,仅仅只需要一个线性组合的代理推荐服务器(推荐智能体)。

创建联合方式

我们使用DBLens CF引擎去穿件一个CF联合服务器。为了达成这个目的,我们向该引擎载入了来自5或23服务器的所有评价,同时也汇入用户的50个相关性集合中的评级。我们给用户的20个测试电影给出预测。用户数据库在每次用户使用之后将会被清空。所被使用的参数与简易CF的情况中是一样的。

今天就到这里,同样也给大家预告一下【agent的翻译一直都是个问题欸】:
从人工智能的角度理解:处于一定环境下包装的计算机系统,为实现设计目的,能在该环境下灵活的,自主的活动。【之后会细细琢磨】
阅读全文
1 0
原创粉丝点击