Hybrid Recommender System based on Fuzzy Clustering and Collaborative Filteringhtml
给出题目,想找的话直接在ElsevierSD里下载便可。算法
并非逐句翻译,一些简单的背景好比经济啦什么的直接忽略,不过笔者会在博文里点出来。app
一二三这样的标题是原论文的题目,我没翻译,为之后本身写英文论文作准备,以1234这样的标题开始的内容是笔者本身加上去的,就是个人笔记。ide
我本身把握不许的或者比较精妙的局段,都有英文原文留下,分段也被保留。ui
如何输入罗马数字,看下图,搜狗输入法下,ctrl+shift+z;有时候可能须要多个这样的符号,每次都这样调用的话很麻烦,我就按住ctrl键,果真能够一次多个,看来计算机是相通的。this
1、Abstractidea
因为愈来愈多的电商使用推荐系统,推荐系统得到了极大发展。不过因为产品和用户数的显著增长使得推荐系统面临数据稀疏性和可扩展性的问题。本篇提出了FCM(Fuzzy C Means)算法。spa
2、Introduction翻译
推荐系统结合电商背景介绍。NetFlix推荐电影,Amazon推荐图书。有几种不一样的方法来作推荐,这包括给出销量最高的产品列表、基于人口统计学给我出建议和经过分析用户过去行为来给出建议(including providing top list of items, making suggestion based on demographic data and making recommendation by analyzing past user interaction of the user with the system.)。在这之中,协同过滤是最好的技术之一,该技术于1992年由[Goldberg et al., 1992]提出(我以Goldberg为关键字百度之,只出现摔跤运动员,对于这么吊的算法思想来讲,这很不合理啊)。一般来讲,推荐系统被分为三类,协同过滤、基于内容的推荐和混合推荐。基于内容的推荐使用过去的产品或者用户的描述信息(the item or user’s profile),所以当产品是像视频、音乐这类东西的话,该算法会很不方便获得须要的信息(原文是be quite challenging)。3d
在协同过滤算法(下文用CF来代替,太麻烦,我本身加上的)中,关键元素是用户过去的行为。CF推荐系统采用由用户制做的原来产品的排名来预测新产品的排名(笔者感受这很像是Item-Based的CF算法,请参考笔者这一篇博文探秘推荐引擎之协同过滤算法小综述)。这种算法思想是根据(The idea behind this is that)两个用户曾经喜欢过想死产品的话那么他们极可能继续喜欢一样的产品(这一句又像是User-Based)。在建议的的方法中(proposed approach),初试聚类中心采用FCM算法生成。而后这些中心采用item-based来预测将来的产品排名。
相关工做在区域 Ⅱ,区域Ⅲ详细讨论了建议的方法,实验结果在区域Ⅳ讨论,结论呈如今区域Ⅴ。
1.基于人口统计学的推荐
这是最为简单的一种推荐算法,它只是简单的根据系统用户的基本信息发现用户的相关程度,而后将类似用户喜好的其余物品推荐给当前用户。
系统首先会根据用户的属性建模,好比用户的年龄,性别,兴趣等信息。根据这些特征计算用户间的类似度。好比系统经过计算发现用户A和C比较类似。就会把A喜欢的物品推荐给C。
优点:
a 不须要历史数据,没有冷启动问题
b 不依赖于物品的属性,所以其余领域的问题均可无缝接入。
不足:
算法比较粗糙,效果很难使人满意,只适合简单的推荐
2.基于内容的推荐
与上面的方法相相似,只不过此次的中心转到了物品自己。使用物品自己的类似度而不是用户的类似度。
系统首先对物品(图中举电影的例子)的属性进行建模,图中用类型做为属性。在实际应用中,只根据类型显然过于粗糙,还须要考虑演员,导演等更多信息。经过类似度计算,发现电影A和C类似度较高,由于他们都属于爱情类。系统还会发现用户A喜欢电影A,由此得出结论,用户A极可能对电影C也感兴趣。因而将电影C推荐给A。
优点:
对用户兴趣能够很好的建模,并经过对物品属性维度的增长,得到更好的推荐精度
不足:
a 物品的属性有限,很难有效的获得更多数据
b 物品类似度的衡量标准只考虑到了物品自己,有必定的片面性
c 须要用户的物品的历史数据,有冷启动的问题
看完2我发现,冷启动问题指的就是建模的初始数据的来源问题,看来书真是阅读越明白,因此温故而知新,古人没有欺骗我---古之人诚不欺余也。
3、Related Work
在参考文献3里,做者提出了一种基于用户和产品之间不一样的CF算法。首先,他们(用的they,表示做者不止一个的意思吧)比较了不一样的CF算法。根据他们的方法,他们没有考虑用户和产品知己恩的联系,只考虑(other than)了不一样之处。在这种状况下,有一些用户倾向于给好评,对那些真正的垃圾产品才给差评;而其余用户给最好的产品最高的评价,对于其余的产品倾向于给差评(On the condition that there are some users, who inclined to give positive rating, leaving negative ratings for really bad items, while other user, save their highest rating s for the best item and tends to give negative ratings. So according to their approach, first find the tendencies of items and users and on the basis of this, recommendation is done.刚开始翻译不出来参考了百度翻译,就翻译了出来;我想起了英语老师说我们口语很差不是由于搞几回会不会,而是由于不少低级词汇忘了;我真是个听话的孩子,好老师说的话我基本都记得,感受本身萌萌哒)。所以根据他们的方法(approach),首先找到产品和用户的趋势,据此,推荐完成。
在参考文献11里,做者提出了混合的方法,该方法结合了(take advantages of)基于内容和CF的优势。根据他们的方法,他们首先采用k-means算法找到类似的用户(笔者认为这地方没说清楚,根据用户买的产品类别仍是用户的我的注册信息,不过就笔者我的感受而言,对于非社交群体,好比电商企业,用户的注册信息彻底没有价值);而后,找到同一簇中高度相关用户的内容(感受内容量子很别扭then find the content that the users of the same cluster rated high)。添加这一内容进入内容列表中,而后在同一簇中就要求的内容采用FCM算法找到内容。最后,从珍贵(我在想,他是否是写错了previous:前一个,写成了precious)的两个已经计算的集合找出公共部分(Add this content in the list of contents and then apply fuzzy c-mean algorithm to find contents in the same cluster as that of the content requested. And in the end find common set from precious two computed set. 我不理解两个已经计算的集合是什么)。公共部分就是最好的结果。算了,确实看不明白,有空看原文。
在参考文献15中,做者针对个性化推荐提出了一种相反的CF算法。根据他们的方法,他们结合user-based和item-based算法,同时使用斯皮尔曼等级相关系数代替皮尔逊相关系数来确保在数据的逻辑区域有相同的空间(或者等距,equal space),这没必要要成对出现从正态分布(which do not need to be receive in pairs from the normal distribution)。根据这个算法,CF算法预测类似的产品集根据已经给的数据,而后使用第二个算法获得最终的分配,同时解决奇异的数据(
singular data
)。
1.斯皮尔曼相关系数
在此例中,咱们要使用下表所给出的原始数据计算一我的的智商 和其每周花在 电视上的小时数的相关性。
首先,咱们必须根据如下步骤计算出 ,以下表所示。
得 ρ = −0.175757575,这个值很小代表上述两个变量的关系很小。
该系数和皮尔逊的区别是xy能够不是正态分布;可是xy不也能够进行标准花么((x-u)/D),而后能够用皮尔逊洗漱了。
4、ProposedApproach
算法被分为两个阶段(phase)。
阶段一:根据产品信息进行产品聚类
阶段二:对阶段一的每一个簇应用基于项目的CF。
算法概述。
步骤一:根据产品信息进行产品聚类(笔者认为说的很不直观,聚类的结果是什么,只是产品仍是包括用户)
步骤二:在用户项目矩阵中对于每一个簇应用基于项目的CF来预测丢失的评分。
步骤三:为了减小冷启动的问题,新用户(NU):必须给在给定阈值数量的产品的评分来作推荐。新产品(NI):用户U对于新产品的评分经由NI(U)的评分=用户U在该簇中的评分平均值(To reduce the Cold Start problem.New User: Rating must be given on the specific (threshold)number of items to get recommendation.New Item (NI) : Rating of new item by user U is given byRating of NI(U) = Average rating of the user U within thatcluster.)。这是否是在说SlopeOne算法,前面提到的博文里对该算法有介绍。
步骤四:为了下降可扩展性的问题,聚类是预先处理步骤。该算法周期性运行或者当超过给定阈值数量额产品被加入时该算法被触发(Clustering is pre-processing step. This algorithm is runperiodically or triggered after some particular (threshold)number of new items add in the system.)。
阶段一:聚类
A.K-means
笔者注:下面只作简单翻译
采用k-means算法(原文是k-mean,是否是笔误)。Movielens数据集包括来自943个用户的评分分为1到5等级的10w个评分,该数据集也包括每一个电影的大体信息(profile),好比类型(genre[ˈʒɒnrə])(喜剧、动做等),类型共19种。在电影的类型上作聚类。在划分好的k个簇上上应用基于项目的CF算法。
下面就是k-means的步骤了,再也不翻译。
假设10个电影(Assume),每一个电影经由三种类型来描述(喜剧、动做、音乐片),如表1(为毛没加上章的信息,写成表3-1)。
使用曼哈顿距离来计算电影之间的类似性或者不想实行。
笔者注:曼哈顿距离与欧氏距离:红 蓝和黄分别表示曼哈顿距离都拥有同样的长度12.绿色表示欧式距离 6*1.414=8.48的长度。
笔者感受这个图很直观,妙处本身体会。
结果是表2
B、FCM
先介绍
生成以下表
假设阈值是0.15
C。减小冷启动问题
新用户未作任何评价,新产品未收到任何评价。
a.新用户必然要评价超过阈值数量的产品。
b.if new item add in the system: rating of new item M,by user U is given by:上面的式子Where右端第一部分 average of user U in cluster c. And右端第二部分 is membership value of new item M to cluster c。
阶段二:基于项目的CF
笔者注:未作逐字逐句翻译。
因为当数据达到百万级时,user-based算法寻找像是用户的CF的计算复杂度太大。 因此2001年提出了item-based算法。
该阶段把第一阶段的输出做为输入,对每一个簇用基于项目的CF算法。
采用皮尔逊相关系数离线计算ij之间的类似度。
U是同时评价过i和j的用户集,带上划线的是评价过该项产品的全部用户评分的均值。
因为FCM是模糊聚类,那么问题来了当一个产品同时属于两个或多个簇时,评分公式以下,
Nc是簇个数,分子是a对i在簇c下的评分,实际上就是求各个簇下的均值。写到这,笔者认为,所谓论文就是把简单问题复杂化,通俗名词专业化。
5、Experiment Results
CF的评价准则有统计学准则和决策支持准则,本文采用前者。统计学准则比较预测值和实际值的分离程度,采用MAE(mean absolute error),
6、Conclusion
结合CF和FCM解决数据稀疏性和冷启动问题。
提出的方法是基于记忆的方法,所以不须要花费时间来训练数据(这个不懂,可能看的资料不够吧,我感受是不就是说增量)。
7、笔者本身
四点半左右去听了一个讲座,小公式注重你的技术,要能马上上手;大公司注重基础,愿意培养你,因此跟一个大牛,他跳槽了,也把你带走了。
今晚在实验室吃饭啦,附上照片记念正在流逝的青春。