基于Mahout框架推荐引擎的研究一、研究问题基于Mahout框架推荐引擎的研究主要解决了目前网络上大量数据的分类查找问题。在21世纪,数据以爆炸式的速度产生,如何在这些大量的数据中找到用户感兴趣的数据是首要解决的问题。随着互联网的普及,人们在海量的各类信息资源中很难找到自己需要的信息,往往会陷入信息过载的困境。在这样一个大背景下,个性化推荐系统应运而生。个性化推荐系统可以根据已有的用户信息,向目标用户推荐其可能感兴趣的信息,可以帮助用户更方便、更快速地找到所需的信息。而协同过滤技术是个性化推荐系统中使用最广泛和应用最成功的技术之一,对它进行研究在理论和应用上都有非常重要的意义。本研究问题采用Mahout开源框架,该框架基于协同过滤的个性化推荐方法,不仅可以解决互联网上面数据爆炸数据过载的问题,同时可以解决大量数据的分类检索推荐问题。二、研究意义(1)实际意义在工商界,推荐系统有着巨大的商业应用价值。具体表现在:(1)在电子商务方面,它可以挖掘用户潜在的消费倾向,为用户推荐符合用户需求的产品,进而提高销售利润,如Amazon的推荐系统为其提高了35%的商品销售额。(2)在娱乐产业方面,为用户提供符合其偏好的电影、音乐及视频,如YouTube通过分析用户喜好及行为,为其推荐符合其兴趣的视频,极大的提高了用户对网站的满意度和忠实度,聚集更多的活跃用户。(3)在基于内容的网站服务方面,可以为用户提供个性化的新闻、文本、博文推荐等。(4)在社会服务方面,可以为用户提供个性化的旅游推荐、专家咨询推荐及房屋租赁推荐等。(2)理论意义在学术界,推荐系统也具有较高的学术价值。自20世纪90年代中期个性化推荐系统的概念被提出来后,推荐系统在电子商务、网络经济学和人类社会学等领域一直保持很高的研究热度并逐渐成为一门独立的学科。目前一些新的推荐方法和技术相继出现,并且应用于各种行业,因此其存在的稀疏性、精确性、扩展性和精确性问题也成为国内外学术界研究的焦点。目前,几乎所有大型电子商务系统以及各种提供个性化服务的Web站点,都不同程度的使用了各种形式的推荐系统,因此在这些应用领域的推荐系统算法的改进也是研究的热点。面向互联网发展中出现的新问题和新技术需求,推荐系统具有广泛的研究和应用前景。三、研究方法协同过滤推荐算法基本思想是:首先计算出用户对每个物品的喜好程度,根据计算出来的喜好程度进行对比找到邻居用户,将该邻居用户喜好的物品推荐给原始用户。协同过滤推荐算法的实现过程分为3步:第一步是建立用户模型,第二步是根据建立好的模型寻找该用户的邻居用户,第三步是根据找到的邻居用户产生推荐项目。(1)建立用户模型:为了更好地产生推荐结果,首先建立一个m*n的矩阵来存储协同过滤中输入的数据,其中m表示的是用户数,n表示的是物品数,Rmn表示的是用户对具体物品的打分情况。mninmiminnRRRRRRRRRRRRR...................................22112222111212(1)(2)寻找最近邻居:首先是要计算该用户与其他用户之间的相似度,根据计算出来的相似度来选择具体的邻居用户,例如这里有一个目标用户i,通过计算目标用户i的相似度sim(i,j)来对相似度进行排序。该过程分为两步,首先采用皮尔森相关系数等方法计算出用户之间的相似度,接着根据相似度排序找出最大的c个用户来选择最近邻居。sim(𝑖,𝑗)=∑(𝑟𝑖𝑐−𝑟𝑖̅)(𝑟𝑗𝑐−𝑟𝑗̅)𝑐∈𝐼𝑖𝑗√∑(𝑟𝑖𝑐−𝑟𝑖̅)2𝑐∈𝐼𝑖𝑗√∑(𝑟𝑗𝑐−𝑟𝑗̅)2𝑐∈𝐼𝑖𝑗(2)(3)产生推荐项目:计算方法如下:)),(()(*),(,,jisimRRjisimRiPjeNBSijdjjeNBSidi(3)其中分子中的sim(i,j)表示两个用户之间的相似性,Rj,d表示最近邻居一个用户对一个物品的评分,表示用户i对项目的平均评分,同理另一个表示用户j对项目的平均评分,所以可以根据上面的公式来在最近的邻居集里面查找用户的最近邻居,然后将邻居用户与查找出来的新用户之间的相似度作为权值,将邻居用户对该物品的评分与邻居用户对所有物品的评分取差值再进行加权平均。可以根据上面的公式来在最近的邻居集里面查找用户的最近邻居,然后将邻居用户与查找出来的新用户之间的相似度作为权值,将邻居用户对该物品的评分与邻居用户对所有物品的评分取差值再进行加权平均。四、研究难点(1)实验采用的数据集中提供了用户评分的时间信息,而涉及的模型目前尚未利用这类信息,研究的都是与时间无关的用户静态行为的分析,但在真实环境中,用户的兴趣行为应该都是与时间相关的,时间这一类的信息在对用户的兴趣建模时应该是非常有用的,因此可以考虑在现有模型中加入时间因素等其它信息来研究用户的兴趣变化,即基于时间上下文进行推荐,最终提高推荐质量。除了时间信息,在某些应用场景中,我们还可以在模型中融入诸如位置、环境、情绪、活动状态、设备状况、网络条件等的情景信息,从而进行更有效的个性化推荐,这类推荐系统就是情景感知的推荐系统。(2)对于某些推荐算法还可以进行变形,以增加单模型的多样性。比如:对于slopeone算法存在可扩展性的问题,可以寻找改进的slopeOrlC算法来使slopeone算法可扩展,那么这个简单的算法会有更多的用武之地:对于矩阵分解模型,目标函数本文使用的是Frobenius范数,还可以采用核范数,核范数也是对还原得到的评分矩阵的低秩约束;对于受限玻尔兹曼机模型,可以考虑模型的假设为其他条件概率分布,比如在给定评分条件下隐层单元不是本文所说的伯努利分布而是正态分布,或者将显层单元在给定隐层因子的条件下为多项式分布的假设改为高斯分布,或许能获得比较好的结果。