基于用户的协同过滤推荐算法原理和实现=== - 范文中心

基于用户的协同过滤推荐算法原理和实现===

03/22

基于用户的协同过滤推荐算法原理和实现

在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单。该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。

本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人。

基本思想

俗话说“物以类聚、人以群分”,拿看电影这个例子来说,如果你喜欢《蝙蝠侠》、《碟中谍》、《星际穿越》、《源代码》等电影,另外有个人也都喜欢这些电影,而且他还喜欢《钢铁侠》,则很有可能你也喜欢《钢铁侠》这部电影。

所以说,当一个用户 A 需要个性化推荐时,可以先找到和他兴趣相似的用户群体 G ,然后把 G 喜欢的、并且 A 没有听说过的物品推荐给 A ,这就是基于用户的系统过滤算法。

原理

根据上述基本原理,我们可以将基于用户的协同过滤推荐算法拆分为两个步骤:

1. 找到与目标用户兴趣相似的用户集合

2. 找到这个集合中用户喜欢的、并且目标用户没有听说过的物品推荐给目标用户

1. 发现兴趣相似的用户

通常用 Jaccard 公式或者余弦相似度计算两个用户之间的相似度。设 N(u) 为用户 u 喜欢的物品集合,N(v) 为用户 v 喜欢的物品集合,那么 u 和 v 的相似度是多少呢:

Jaccard 公式:

余弦相似度:

假设目前共有4个用户: A 、B 、C 、D ;共有5个物品:a 、b 、c 、d 、e 。用户与物品的关系(用户喜欢物品)如下图所示:

如何一下子计算所有用户之间的相似度呢?为计算方便,通常首先需要建立“物品—用户”的倒排表,如下图所示:

然后对于每个物品,喜欢他的用户,两两之间相同物品加1。例如喜欢物品 a 的用户有 A 和 B ,那么在矩阵中他们两两加1。如下图所示:

计算用户两两之间的相似度,上面的矩阵仅仅代表的是公式的分子部分。以余弦相似度为例,对上图进行进一步计算:

到此,计算用户相似度就大功告成,可以很直观的找到与目标用户兴趣较相似的用户。

2. 推荐物品

首先需要从矩阵中找出与目标用户 u 最相似的 K 个用户,用集合 S(u, K) 表示,将 S 中用户喜欢的物品全部提取出来,并去除 u 已经喜欢的物品。对于每个候选物品 i ,用户 u 对它感兴趣的程度用如下公式计算:

其中 rvi 表示用户 v 对 i 的喜欢程度,在本例中都是为 1,在一些需要用户给予评分的推荐系统中,则要代入用户评分。

举个例子,假设我们要给 A 推荐物品,选取 K = 3 个相似用户,相似用户则是:B 、C 、D ,那么他们喜欢过并且 A 没有喜欢过的物品有:c 、e ,那么分别计算 p(A, c) 和 p(A, e):

看样子用户 A 对 c 和 e 的喜欢程度可能是一样的,在真实的推荐系统中,只要按得分排序,取前几个物品就可以了。

园友推荐

在社交网络的推荐中,“物品”其实就是“人”,“喜欢一件物品”变为“关注的人”,这一节用上面的算法实现给我推荐 10 个园友。

1. 计算 10 名与我兴趣最相似的园友

由于只是为我一个人做用户推荐,所以没必要建立一个庞大的用户两两之间相似度的矩阵了,与我兴趣相似的园友只会在这个群体产生:我关注的人的粉丝。除我自己之外,目前我一共关注了23名园友,这23名园友一共有22936个唯一粉丝,我对这22936个用户逐一计算了相似度,


相关内容

  • 人工智能概述_胡勤
    第6卷第年5月)13期(2010电脑知识与技术ComputerKnowledgeandTechnology Vol.6,No.13,May2010,pp.3507-3509ISSN1009-3044电脑知识与技术ComputerKnowle ...
  • 面向服务的战场态势感知与协同技术研究
    第2期2012 年4月 Journal of CAEIT Vol.7No.2Apr.2012 檵檵0 共用态势图(COP )简称态势图,是军事指挥部门了解战场态势的主要手段,是广泛的战场态势感知系统.服务和应用的一个关键部分,是服务于决策制 ...
  • 华为防火墙配置
    目 录 附录 A 缩略语表........................................................................................................... ...
  • 基于行为与时间特征的垃圾邮件检测方法
    第14卷第5期 解放军理工大学学报(自然科学版) V01.14No.5 2013年10月 Journalof PLAUniversityofScienceand Technology(NaturalScienceFAkion) Oct.20 ...
  • 58-附件2_
    附件2: 重大研究计划"视听觉信息的认知计算" 2008年度项目指南 与人类视听觉感知密切相关的图像.语音和文本(语言)信息在社会.经济和国家安全等领域中扮演着重要角色,并在今后一段时间内仍将迅猛增长.这类信息可被人类直 ...
  • 网络安全知识题库中学组C
    江苏省青少年网络信息安全知识竞赛试题 (中学组C) 参赛须知: 一.答题方法:本卷共100题,每题有ABCD四个答案,其中只有一个正确答案,请在答题卡上将你认为正确的选项涂黑.答题卡不得涂改,复印无效.试卷满分100分,每题1分. 二.参赛 ...
  • 信息检索论文-文本表示模型
    文本表示模型 摘要:在互联网越来越发达的时代,如何从中快速有效地搜集信息,成为一个亟待解决的问题.而信息检索的一个关键就是建立高效的文本表示模型.本文主要讨论了信息检索.三种传统文本表示模型.及其中出现的问题. 关键词:信息检索 向量空间模 ...
  • 网络安全技术之保护Web服务器
    网络安全技术之保护Web服务器 摘要:本文向大家介绍的是有关如何保护Web服务器的内容,包括INTERNET或信息发布服务,INTERNET/内部网和虚拟专用网VPN,文章从这3个方面进行了介绍,希望对大家有所帮助. INTERNET或信息 ...
  • 社交网站热点话题发现
    [摘要] 微博的迅猛发展,带来了另一种社会化得新闻媒体新形式,随着社交网络的不断发展, 国外的推特和国内的新浪微博.腾讯微博, 已经成为消息发布的重要平台.微博内容不仅包含大量的文字信息, 也包括了很多无话题表达能力的特殊符号.表情符号.微 ...
  • 技术开发方案
    数据接口与3D 模型传递: 一.3DS MAX与CAXA 之间的数据交换 由于利用CAXA 主要完成建模工作,因此主要使用的是其数据接口是输出. 方法1:CAXA 实体设计完全支持OLE2.0 ,可以插入对象的方式与其他支持OLE 的Win ...