我很早就下载了CF,后来换了一个cf总是网络出现异常,...

cf外挂专题为CF玩家准备了最新最全的CF辅助下载,第一时间发布最新的、CF挤频器、CF透视外挂、CF刷***软件等各种CF辅助,所有辅助经过测试再发布,保证绿色无毒。如有误报添加信任即可。
更新时间: 19:00:07
相关专题:
CF樱花透视稳定多功能2.6免费版是一款功能强大、便捷实用的CF游戏辅助工具,CF樱花透视稳定多功能为玩家提供了方框透视、自动瞄准、自动开启、无后坐力等强大实用功能。
CF***王透视自瞄是一款功能强大、便捷实用的CF游戏辅助工具,此款辅助为玩家提供了方框透视、自动瞄准、自动开启、无后坐力等强大实用功能。玩家通过该辅助能够轻松获得胜利!
CF天雷内存稳定透视辅助是一款功能强大实用的CF游戏辅助工具使用简单快捷!
CF穿越火线(穿越火线官方下载)是一款以两大国际佣兵组织为背景,分析了包括《反恐精英》在内的多款人气FPS的缺点,穿越火线下载吸取了国内玩家所喜爱的各项***战游戏内容后,所提供的一款第一人称射击游戏。
蚁人CF透视插件是一款功能齐全的CF辅助,功能稳定防封,可以放心使用。
CF空洞方框透视辅助是一款稳定无后全功能CF穿越火线全能辅助,支持最新官服客户端版使用!
ZRGL-CF自动瞄准辅助是一款专为穿越火线打造的自动瞄准 辅助 。该辅助具有自动瞄准、等功能,是穿越火线的自动瞄准辅助工具,给你的游戏带来方便。欢迎下载体验。
ZRGLCF自动瞄准优化是一款安全绿色的CF辅助,安全不封号+娱乐游戏。
水在田游戏精灵是水在田实验室新研发的一款免费的游戏辅助软件,他可以支持英雄联盟和CF两款游戏,绝对不封号
CF逆游辅助是一款最新CF透视辅助,支持CF官服最新客户端使用!
CF孤星单板透视辅助是一款绿色稳定的CF透视辅助工具。打开辅助后,选择频道选择房间进入之后随便开一***,或者切换一下武器,返回辅助界面点击注入,这样不会卡掉!
《CF暴击僵尸2015》是一款横版动作射击类游戏,无需联网即可畅快运行。游戏拥有清晰的画面,鲜明的风格!
CF初晨D3D透视辅助是一款简单快速稳定的CF辅助,主要辅助功能有透视!
果果cf透视自动开***是果果第一个可以完全透视和自动开***的cf游戏外挂辅助
蓝剑cf超级透视辅助主要功能有透视,显鬼,人物切换,小刀加速等功能,应有尽有!功能强悍,后期我们基本一周更新一次,免费使用。
CF牛头梗透视辅助是穿越火线的一款辅助工具,支持人物透视、屏幕准星等实用功能。玩家通过辅助能够轻松取得胜利,感受最佳的游戏体验。
魔帝CF辅助工具是绿色免费的穿越火线游戏辅助工具,不修改游戏,固然不会封号,大家可以放心使用!
CF多功能透视自瞄CTA是一款用于腾讯游戏穿越火线的辅助工具。
CF百宝箱是简单百宝箱为CF玩家专门设计的CF辅助软件,CF百宝箱具备CF窗口化,挤频道,CF皮肤修改,图标,音效修改等等功能。让你舒服的玩游戏!与战友交流也更方便。
绿枫2016cf刷***软件,来和所有有这方面想法的朋友分享。它能刷M4A1-雷神永久版,并且后续还有有更多的***种更新。对了,现在绿枫2015cf刷***软件还修复了防封号的功能!刷***更安全了哦!
台湾驱动透视自瞄辅助是一款最新CF透视自瞄辅助,支持CF官服最新客户端使用!
cf刷***软件永久审判者是2015年最新推出一款网络上最火爆的CF刷***软件,新增永久审判者及各种全新英雄级武器,可提供免费试用版,安全稳定、绝对没有封号风险。
天翼CF辅助工具是一款最新的防封的多功能CF游戏辅助外挂。
CF越光宝盒是重庆天极传媒52PK游戏网针对广大游戏玩家需求,精心设计的穿越火线游戏客户端元素修改工具。
CF悲鸣方框透视辅助是一款cf透视辅助,辅助支持多项实用功能,方框透视、自瞄、准星等!
CF地图全白工具是一款用于游戏穿越火线的辅助工具,可以让地图变白,方便发现敌人,稳定奔放!
叶子CF透视辅助是最新的CF防封透视辅助软件
CF四七透视辅助是最新防封的穿越火线透视外挂,支持透视和防封,具有透视、防封等功能。
天狼CF解封器,顾名思义是一款cf解封软件,使用的方法极其简单;打开软件,提交号码即可。
天狼CF透视无后座辅助一款强大免费的CF(穿越火线)辅助。
CF三金人物透视为免费版,有一定几率掉线以及封号,请谨慎使用!本辅助使用简单,操作容易,不修改任何系统文件、安全无毒可放心使用!
CF三金方框透视是一款最新CF外挂,稳定不封号不掉线,深受广大玩家喜爱。
CF小宝无视烟雾工具是一款专为CF穿越火线玩家打造的无视烟雾软件,这款辅助操作简单,使用前建议把电脑的分辨率换成16位,然后打开辅助按开启。
梦言小伟仙翁鸟CF最新透视+自瞄+无后座是一款简单快速稳定的CF辅助,主要辅助功能有透视!
CF幻灭透视外挂是最新防封的穿越火线透视外挂,支持透视和防封。
CF掌游宝是拥有最全面的CF游戏资料,最新鲜的穿越火线动态资讯,最全面的游戏攻略秘籍,最详尽的武器装备库数据和评测,最精彩的对战竞技视频
CF幻影透视辅助是穿越火线最新可以用的辅助具有非常强大的功能,喜欢的不容错过!
CF尘封官网辅助具有:透视显鬼,完美准星,飞天遁地,无后坐力等功能。
DMICFG是一款非常实用的BIOS DMI数据修改工具,用DMICFG来修改BIOS,***联想OEMXP,修改后不用刷新BIOS,方便实用。
不语CF批量上号可批量登录穿越火线,进指定频道!自动拒绝出现的一切提示!掉号重登!(掉那个补那个)登录完号后最小化!继续上下一个!当所有号上号完毕 之后软件自动开启检测是否掉号如果掉号自动补号。
cf准星瞄准器可在穿越火线游戏里加强显示***械的瞄准中心,将cf原有的准心位置加上红色十字,玩狙***必备的cf准星瞄准器工具。
雪鹰CF辅助软件是一款用于游戏穿越火线的辅助工具,内部稳定人物透视+自动瞄准+穿墙+无后座。
小海豚CF透视自瞄辅助是一款穿越火线游戏辅助工具,功能多,能力强。让你称霸CF。
小兮cf方框透视是一款非常强大的穿越火线辅助工具,可以显示出敌人位置。
CF先锋透视自瞄辅助是穿越火线稳定辅助,基本上不非法不封号,推荐大家使用!方框透视无异常,进入游戏自动无视奔放。
CF幽梦透视辅助是针对穿越火线游戏提供的辅助,最新的功能支持自动瞄准,自动透视,自动开***,十字准星!
cf大飞解封器使用说明:输入你要解封的QQ账号,用此QQ账号登陆cf游戏一次,将自动完成解封,无论你被封3天、7天、30天、180天都能解封到0天。
小兮CF死亡隧道全屏飞刀辅助专为穿越火线死亡隧道而做效果非常给力,只要进入游戏自动注入F12开启/关闭全屏飞刀,配合无视工具使用就可。
主宰cf透视辅助是一款帮助新手玩游戏的cf辅助
CF人物加速辅助是穿越火线最新可以用的辅助具有非常强大的功能,喜欢的不容错过!
CF浅默稳定透视辅助有多种稳定功能,在穿越火线里面可以随意超越高手,游戏内分辨率大小 ,可自动注入透视、磁性瞄准、自动开启防封数据清理,功能多样是你游戏的好帮手赶快下载吧。
小小cF超级透视辅助是一款可以帮助新手熟练掌握CF基本功能的辅助软件
草泥马最新CF穿越火线地图透视工具地图全透明辅助是一款免费好用的用于CF穿越火线游戏地图透明另外使用窗口化后,如若需要全屏,请重新开起软件,选择全屏游戏,即可恢复,如若删除软件,没有办法恢复全屏。
哔哔CF自动签到助手【四月版】功能说明:快捷便利自动签到CF游戏获取游戏奖励!使用方法:输入帐号密码及验证码点击登录,下面提示成功会显示QQ网名。成功显示后点击右边签到内容即可!
哔哔CF挤频器是穿越火线网络游戏挤频的工具,按F10控制开始和停止!
巅峰cf透视辅助是一款简单化的CF透视辅助,该版本是第一个版本功能较少,但功能都十分强大。
棉花团CF窗口化采用释放DLL的方式实现多开与窗口化功能
CF皎月卡空助手是一款可支持CF卡空的软件。
棉花团CF论坛管理器支持QQ帐号快速登陆功能,登陆成功后可以对CF论坛进行发帖或者回帖操作。支持帖子刷新列表功能、添加好友等功能。有了这个软件就不用使用网页来登陆CF论坛了。
CF十字准心支持自动瞄准功能,此准心适用于所有射击类游戏,必须全屏游戏,不支持游戏窗口化。
CF久久辅助是一款免费的CF辅助软件具有功能稳定,更新及时软件永久免费。
CF自动瞄准辅助是一款CF穿越火线的辅助工具,本工具是按键小精灵制作的,是一个模拟鼠标的脚本,所以绝对绿色,玩家可以放心使用。
CF阿怪辅助可以帮助玩家在穿越火线游戏中轻松拿到ACE,轻松判断敌人位置!
CF月影透视辅助是一款CF的透视辅助插件。
CF游戏多功能辅助支持透视、瞬移、会员防踢、免费消音等。
逸夫CF子弹穿墙式一款CF子弹穿墙工具,配合透视工具,爽歪歪。
CF火线终结者全能辅助是9KWG网制作的一款穿越火线游戏辅助软件,加入多个辅助功能玩游戏稳定不掉线,内置CF大更后新开发的账号防封协议,百分百不会封号!
夜幕CF自动准备,适用于挂机刷分,实现全自动无人看守自动挂机,省人省时省心。脚本使用按键精灵编写,无毒绿色,使用简单。
CF冰棂科技辅助是一款穿越火线非常给力的科技辅助,它能让你做到平常做不到的事!
CGA火线助手提供最新、最全、最酷炫的击杀图标;最萌、最帅、最可爱的连杀音效;最清晰、最暴力的游戏画面,CGA火线助手带你翱翔!
CF文哥给力瞬移辅助,从A点瞬间移动到B点。最近CF里面玩瞬移的人很少,所以官方对瞬移的打击力度大大减少了许多。我玩了好几个小时,没出异常,没用检测,没有230,没有非法模块,更没封号。
CF比克方框透视透视是一款绿色辅助帮助玩家提高单局的杀敌数迅速拿ACE高经验高GP!
CF落雨透视辅助可以更好的帮助玩家在射击的过程当中寻找快刺激可以激发玩家的快感!
夜幕CF自动登录器是一款可以用于有大量帐号需要手动频繁登录的朋友,此软件具有导入帐号,批量自动登录游戏,建立角色的功能。
CF工具箱是一款综合CF辅助,提供多种辅助功能,如修改军衔,修改爆头图标,转换体验服等。
星龙CF加速器,和变速齿轮的效果是一样的。
穿越火线自动准备软件(cf自动准备软件)支持穿越火线自动准备,多开自动准备!
CF***龙自动开***查看玩家QQ是***龙工作室最新CF辅助,使用方法:打开辅助,点击开启登录,然后进入游戏。F3:全图变白,F4:自动开***,F5:自动瞬狙,准心自动默认开启。
简单CF自动瞄准子弹穿墙辅助是一款专为穿越火线打造的子弹穿墙和自动瞄准 辅助 。该辅助具有子弹穿墙、自动瞄准、敌人颜色等功能,是穿越火线的自动瞄准辅助工具,给你的游戏带来方便。欢迎下载体验。
逸夫CF自动准备工具打开软件按F9开启自动准备功能,秒自动准备,理论上无视CF更新,可以长期使用。
穿越火线cf小助手透视是一款无需***,占用系统资源少,以辅助玩家游戏为目的的,实现更加便捷方便的玩游戏,主要因为现在的游戏操作过于复杂,过于单调,使用玩家们都想需要这么一款辅助软件来帮助游戏。
CF吖吖透视辅助是一款及其强大的辅助,有透视,穿墙,和VIP防踢功能。
至尊者CF辅助是一款脚本性质的游戏辅助,与修改程序的外挂有着区别。至尊者CF辅助具备自动瞄准,自动爆头,自动开***等功能。
磊磊cfbug不掉血辅助是一款CFBUG不掉血辅助,进入游戏后自动开启bug全图不掉血。支持cf穿越火线2.0.1游戏客户端,支持再战巨人城版本游戏所有地图,修复部分电脑无法开启。
天天CF准星瞄准器辅助 xp环境下需要***net2.0。 可在穿越火线游戏里加强显示***械的瞄准中心,将cf原有的准心位置加上红色十字,玩狙***必备的cf准星瞄准器工具。
E卡CF瞬移软件使用简单,打开以后进入游戏即可封号几率小。
cf穿越火线签到工具无需登入客户端就能让您快速签到,软件绿色无毒!由于软件是易语言编写,360可能会误报!
懒人外挂(改变网络游戏软件的程序),功能有 透视显鬼,太空漫步(自由飞天)瞬移外挂, 窗口化工具,一键炸房外挂,金牌奖励外挂,非法免重启外挂,僵尸被打不后退外挂,自动开***外挂。
CF内部稳定人物透视为CF内部稳定人物透视收费版(辅助仅支持Win7系统),辅助稳定无插件,无病毒,可放心使用,辅助由易语言编写,开启时需关闭杀毒避免误报。
子浩CF免费生成CDK软件可用于兑换CF绝版***,永久英雄武器,CF黄金***王等等各种CF神器。快来下载吧!升级版本。增强了稳定性,实用性!使用更简单!此软件无毒,杀毒软件可能会误报。使用前请关闭杀毒软件!
CF穿越火线刷***软件CKD兑换码生成工具可以再次用本软件刷,可刷的***有黄金AK47,白色,青铜等***。完全免费,效率目前最高!
梦想cf工具箱(新增无视烟雾/闪光)是第一款真正意义上的CF辅助工具。
子浩CF免费生成CDK软件可用于兑换CF绝版***,永久英雄武器,CF黄金***王等等各种CF神器。快来下载吧!0.0.5版本更新了很多绝版***CDK,更新了稳定性和防封号程序!
至尊CF挤频器用于CF挤频道,一般用于CF体验服。是一款非常实用的CF挤频器!进入游戏后按下F1即可开始挤频道,再次按下F1停止!简单、安全、快速!
CF狙击准星瞄可在穿越火线游戏里加强显示***械的瞄准中心,将CF原有的准心位置加上红色十字,玩狙***必备的CF狙击准星工具。
CF十字准星是一款CF瞄准工具,可在穿越火线游戏里加强显示***械的瞄准中心,将CF原有的准心位置加上红色十字,玩狙***必备的瞄准辅助工具。
十二路CF签到器是一款快速辅助CF签到软件,方面快速,可一键快速签到,如果CF玩家必备之软件。
筱顺D3DCF透视是为广大CFer们提供的游戏透视,可以透过墙看到敌人的精确位置 达到牛逼的效果。
CF天堂窗口化工具能够完美窗口化,启动不闪,切换不卡,解除鼠标限制。CF窗口化使用方法:进入游戏开打时请按F2即可进行窗口化。默认是最大化,可按Esc暂停即可随意调节窗口大小。
CF***龙方框透视子弹穿墙是一款现在穿越火线最实用稳定的超强功能辅助 。
CF天使子弹穿墙方框透视是一款可以显示敌人位置的一款辅助软件,可以给新手带来不一样的体验。
灵溪CF免费透视自瞄穿墙是一款最新cf外挂,cf透视穿墙辅助。
CF雄风透视自瞄是一款最新穿越火线辅助软件。
CF穿越火线***龙零秒准备防T是***龙工作室最新CF辅助,使用方法:打开辅助,点击开启登录,然后进入游戏,F9:零秒准备防T、F10:查看任意玩家QQ号 。
强强CF透视辅助具备最基本一些CF功能相当的实用,辅助如果报毒的话那么在杀毒软件里面添加信任就可以了,不添加的话辅助可能部分功能使用不了!CF1月20日更新后网络出现异常与服务器断开连接怎么办?
CF今天1月20日进行了版本更新,这次更新完成后部分玩家的客户端出现了&网络出现异常与服务器断开连接&的问题,我们就来看看这个情况怎么办吧。
ps:相信大家对&CF&方面肯定感兴趣,小编将网站中关于这方面比较热门的专题给大家找了出来,相信大家应该会喜欢,请往下看!
玩家需要更新到新的版本,小编就是直接留一个***包,等卸载后直接把这个***上,再更新到最新版本,也就十来分钟的事就可以了,一般出现经常闪退的原因是因为内存不足,所以内存条需要更换啦,不知道大家还记的13号官网有个解决这个方法的公告,我就是在那里看的下载后重新登录就可以了,建议运行游戏的时候不要开很多的程序。
一般更新的提示有两种:第1种你当前的版本已经是最新的了,无需更新、第2种游戏版本出新的之后会在此后开始时自动提示下载,无需手动。
相关游戏推荐
下载地址:
下载地址:
下载地址:
cdec大师赛积分排名查询cdec联赛排名查询不要不要的是什么意思
dnf韩服女圣职者妹子宣传视频三星c7pro像素怎么样一个背叛全世界的女孩
小米发开工红包小米屈居第四扎克伯格竞选总统? 黑人用美图秀秀效果教练joker怒喷全华班千万别被骗子盯上!魔兽7.2职业坐骑图鉴大全
熊猫tv宋梓馨baby性感舞蹈fff团含义出处胡歌暂别影视圈张俪朱镇模恋爱魅蓝5s和魅蓝max参数对比三星c7pro和vivox9plus性价比分析魅族蓝牙小音箱
19519人推荐
6.2分游戏辅助21921人推荐
2.2分游戏辅助31224人推荐
7.3分游戏辅助41192人推荐
5.3分游戏辅助5848人推荐
5.5分游戏辅助6732人推荐
8.0分游戏辅助7545人推荐
5.5分游戏辅助8479人推荐
5.6分游戏辅助9921181人推荐
9.3分视频播放10650175人推荐
8.8分生活应用
1732人推荐
8.0分游戏辅助2120人推荐
8.0分游戏辅助345人推荐
8.0分游戏辅助4149人推荐
8.0分游戏辅助5201人推荐
8.0分游戏辅助668人推荐
8.0分游戏辅助730人推荐
8.0分游戏辅助8113人推荐
8.0分游戏辅助9116人推荐
10.0分视频播放102039人推荐
10.0分角色扮演[Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现 - 推酷
[Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤
1.1 什么是集体智慧(社会计算)?
集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web 应用中利用集体智慧构建更加有趣的应用或者得到更好的用户体验。集体智慧是指在大量的人群的行为和数据中收集***,帮助你对整个人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群***性的部分。
Wikipedia 和 Google 是两个典型的利用集体智慧的 Web 2.0 应用:
Wikipedia 是一个知识管理的百科全书,相对于传统的由领域专家编辑的百科全书,Wikipedia 允许最终用户贡献知识,随着参与人数的增多,Wikipedia 变成了涵盖各个领域的一本无比全面的知识库。也许有人会质疑它的权威性,但如果你从另一个侧面想这个问题,也许就可以迎刃而解。在发行一本书时,作者虽然是权威,但难免还有一些错误,然后通过一版一版的改版,书的内容越来越完善。而在 Wikipedia 上,这种改版和修正被变为每个人都可以做的事情,任何人发现错误或者不完善都可以贡献他们的想法,即便某些信息是错误的,但它一定也会尽快的被其他人纠正过来。从一个宏观的角度看,整个系统在按照一个良性循环的轨迹不断完善,这也正是集体智慧的魅力。
Google:目前最流行的搜索引擎,与 Wikipedia 不同,它没有要求用户显式的贡献,但仔细想想 Google 最核心的 PageRank 的思想,它利用了 Web 页面之间的关系,将多少其他页面链接到当前页面的数目作为衡量当前页面重要与否的标准;如果这不好理解,那么你可以把它想象成一个选举的过程,每个 Web 页面都是一个投票者同时也是一个被投票者,PageRank 通过一定数目的迭代得到一个相对稳定的评分。Google 其实利用了现在 Internet 上所有 Web 页面上链接的集体智慧,找到哪些页面是重要的。
1.2 什么是协同过滤?
协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。
协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。当然其中有一个核心的问题:
如何确定一个用户是不是和你有相似的品位?
如何将邻居们的喜好组织成一个排序的目录?
协同过滤相对于集体智慧而言,它从一定程度上保留了个体的特征,就是你的品位偏好,所以它更多可以作为个性化推荐的算法思想。可以想象,这种推荐策略在 Web 2.0 的长尾中是很重要的,将大众流行的东西推荐给长尾中的人怎么可能得到好的效果,这也回到推荐系统的一个核心问题:了解你的用户,然后才能给出更好的推荐。
2 深入协同过滤的核心
前面作为背景知识,介绍了集体智慧和协同过滤的基本思想,这一节我们将深入分析协同过滤的原理,介绍基于协同过滤思想的多种推荐机制,优缺点和实用场景。
首先,要实现协同过滤,需要一下几个步骤
收集用户偏好
找到相似的用户或物品
2.1 收集用户偏好
要从用户的行为和偏好中发现规律,并基于此给予推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素。用户有很多方式向系统提供自己的偏好信息,而且不同的应用也可能大不相同,下面举例进行介绍:
表 1 用户行为和用户偏好
整数量化的偏好,可能的取值是 [0, n];n 一般取值为 5 或者是 10
通过用户对物品的评分,可以精确的得到用户的偏好
布尔量化的偏好,取值是 0 或 1
通过用户对物品的投票,可以较精确的得到用户的偏好
布尔量化的偏好,取值是 0 或 1
通过用户对物品的投票,可以精确的得到用户的偏好。
如果是站内,同时可以推理得到被转发人的偏好(不精确)
布尔量化的偏好,取值是 0 或 1
通过用户对物品的投票,可以精确的得到用户的偏好。
一些单词,需要对单词进行分析,得到偏好
通过分析用户的标签,可以得到用户对项目的理解,同时可以分析出用户的情感:喜欢还是讨厌
一段文字,需要进行文本分析,得到偏好
通过分析用户的评论,可以得到用户的情感:喜欢还是讨厌
一组用户的点击,用户对物品感兴趣,需要进行分析,得到偏好
用户的点击一定程度上反映了用户的注意力,所以它也可以从一定程度上反映用户的喜好。
页面停留时间
一组时间信息,噪音大,需要进行去噪,分析,得到偏好
用户的页面停留时间一定程度上反映了用户的注意力和喜好,但噪音偏大,不好利用。
布尔量化的偏好,取值是 0 或 1
用户的购买是很明确的说明这个项目它感兴趣。
以上列举的用户行为都是比较通用的,推荐引擎设计人员可以根据自己应用的特点添加特殊的用户行为,并用他们表示用户对物品的喜好。
在一般应用中,我们提取的用户行为一般都多于一种,关于如何组合这些不同的用户行为,基本上有以下两种方式:
将不同的行为分组:一般可以分为“查看”和“购买”等等,然后基于不同的行为,计算不同的用户 / 物品相似度。类似于当当网或者 Amazon 给出的“购买了该图书的人还购买了 ...”,“查看了图书的人还查看了 ...”
根据不同行为反映用户喜好的程度将它们进行加权,得到用户对于物品的总体喜好。一般来说,显式的用户反馈比隐式的权值大,但比较稀疏,毕竟进行显示反馈的用户是少数;同时相对于“查看”,“购买”行为反映用户喜好的程度更大,但这也因应用而异。
收集了用户行为数据,我们还需要对数据进行一定的预处理,其中最核心的工作就是:减噪和归一化。
减噪:用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,我们可以通过经典的数据挖掘算法过滤掉行为数据中的噪音,这样可以是我们的分析更加精确。
归一化:如前面讲到的,在计算用户对物品的喜好程度时,可能需要对不同的行为数据进行加权。但可以想象,不同行为的数据取值可能相差很大,比如,用户的查看数据必然比购买数据大的多,如何将各个行为的数据统一在一个相同的取值范围中,从而使得加权求和得到的总体喜好更加精确,就需要我们进行归一化处理。最简单的归一化处理,就是将各类数据除以此类中的最大值,以保证归一化后的数据取值在 [0,1] 范围中。
进行的预处理后,根据不同应用的行为分析方法,可以选择分组或者加权处理,之后我们可以得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮点数值。
2.2 找到相似的用户或物品
当已经对用户行为进行分析得到用户喜好后,我们可以根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的 CF 的两个分支:基于用户的 CF 和基于物品的 CF。这两种方法都需要计算相似度,下面我们先看看最基本的几种计算相似度的方法。
相似度的计算
关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。在推荐的场景中,在用户 - 物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。下面我们详细介绍几种常用的相似度计算方法:
欧几里德距离(Euclidean Distance)
最初用于计算欧几里德空间中两个点的距离,假设 x,y 是 n 维空间的两个点,它们之间的欧几里德距离是:
可以看出,当 n=2 时,欧几里德距离就是平面上两个点的距离。
当用欧几里德距离表示相似度,一般采用以下公式进行转换:距离越小,相似度越大
皮尔逊相关系数(Pearson Correlation Coefficient)
皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在 [-1,+1] 之间。
sx, sy是 x 和 y 的样品标准偏差。
Cosine 相似度(Cosine Similarity)
Cosine 相似度被广泛应用于计算文档数据的相似度:
Tanimoto 系数(Tanimoto Coefficient)
Tanimoto 系数也称为 Jaccard 系数,是 Cosine 相似度的扩展,也多用于计算文档数据的相似度:
相似邻居的计算
介绍完相似度的计算方法,下面我们看看如何根据相似度找到用户 - 物品的邻居,常用的挑选邻居的原则可以分为两类:图 1 给出了二维平面空间上点集的示意图。
固定数量的邻居:K-neighborhoods 或者 Fix-size neighborhoods
不论邻居的“远近”,只取最近的 K 个,作为其邻居。如图 1 中的 A,假设要计算点 1 的 5- 邻居,那么根据点之间的距离,我们取最近的 5 个点,分别是点 2,点 3,点 4,点 7 和点 5。但很明显我们可以看出,这种方法对于孤立点的计算效果不好,因为要取固定个数的邻居,当它附近没有足够多比较相似的点,就被迫取一些不太相似的点作为邻居,这样就影响了邻居相似的程度,比如图 1 中,点 1 和点 5 其实并不是很相似。
基于相似度门槛的邻居:Threshold-based neighborhoods
与计算固定数量的邻居的原则不同,基于相似度门槛的邻居计算是对邻居的远近进行最大值的限制,落在以当前点为中心,距离为 K 的区域中的所有点都作为当前点的邻居,这种方法计算得到的邻居个数不确定,但相似度不会出现较大的误差。如图 1 中的 B,从点 1 出发,计算相似度在 K 内的邻居,得到点 2,点 3,点 4 和点 7,这种方法计算出的邻居的相似度程度比前一种优,尤其是对孤立点的处理。
图 1.相似邻居计算示意图
2.3 计算推荐
经过前期的计算已经得到了相邻用户和相邻物品,下面介绍如何基于这些信息为用户进行推荐。本系列的上一篇综述文章已经简要介绍过基于协同过滤的推荐算法可以分为基于用户的 CF 和基于物品的 CF,下面我们深入这两种方法的计算方法,使用场景和优缺点。
基于用户的 CF(User CF)
基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到 K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图 2 给出了一个例子,对于用户 A,根据用户的历史偏好,这里只计算得到一个邻居 - 用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。
图 2.基于用户的 CF 的基本原理
基于物品的 CF(Item CF)
基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。
图 3.基于物品的 CF 的基本原理
User CF vs. Item CF
前面介绍了 User CF 和 Item CF 的基本原理,下面我们分几个不同的角度深入看看它们各自的优缺点和适用场景:
计算复杂度
Item CF 和 User CF 是基于协同过滤推荐的两个最基本的算法,User CF 是很早以前就提出来了,Item CF 是从 Amazon 的论文和专利发表之后(2001 年左右)开始流行,大家都觉得 Item CF 从性能和复杂度上比 User CF 更优,其中的一个主要原因就是对于一个在线网站,用户的数量往往大大超过物品的数量,同时物品的数据相对稳定,因此计算物品的相似度不但计算量较小,同时也不必频繁更新。但我们往往忽略了这种情况只适应于提供商品的电子商务网站,对于新闻,博客或者微内容的推荐系统,情况往往是相反的,物品的数量是海量的,同时也是更新频繁的,所以单从复杂度的角度,这两个算法在不同的系统中各有优势,推荐引擎的设计者需要根据自己应用的特点选择更加合适的算法。
在非社交网络的网站中,内容内在的联系是很重要的推荐原则,它比基于相似用户的推荐原则更加有效。比如在购书网站上,当你看一本书的时候,推荐引擎会给你推荐相关的书籍,这个推荐的重要性远远超过了网站首页对该用户的综合推荐。可以看到,在这种情况下,Item CF 的推荐成为了引导用户浏览的重要手段。同时 Item CF 便于为推荐做出解释,在一个非社交网络的网站中,给某个用户推荐一本书,同时给出的解释是某某和你有相似兴趣的人也看了这本书,这很难让用户信服,因为用户可能根本不认识那个人;但如果解释说是因为这本书和你以前看的某本书相似,用户可能就觉得合理而采纳了此推荐。
相反的,在现今很流行的社交网络站点中,User CF 是一个更不错的选择,User CF 加上社会网络信息,可以增加用户对推荐解释的信服程度。
推荐多样性和精度
研究推荐引擎的学者们在相同的数据集合上分别用 User CF 和 Item CF 计算推荐结果,发现推荐列表中,只有 50% 是一样的,还有 50% 完全不同。但是这两个算法确有相似的精度,所以可以说,这两个算法是很互补的。
关于推荐的多样性,有两种度量方法:
第一种度量方法是从单个用户的角度度量,就是说给定一个用户,查看系统给出的推荐列表是否多样,也就是要比较推荐列表中的物品之间两两的相似度,不难想到,对这种度量方法,Item CF 的多样性显然不如 User CF 的好,因为 Item CF 的推荐就是和以前看的东西最相似的。
第二种度量方法是考虑系统的多样性,也被称为覆盖率 (Coverage),它是指一个推荐系统是否能够提供给所有用户丰富的选择。在这种指标下,Item CF 的多样性要远远好于 User CF, 因为 User CF 总是倾向于推荐热门的,从另一个侧面看,也就是说,Item CF 的推荐有很好的新颖性,很擅长推荐长尾里的物品。所以,尽管大多数情况,Item CF 的精度略小于 User CF, 但如果考虑多样性,Item CF 却比 User CF 好很多。
如果你对推荐的多样性还心存疑惑,那么下面我们再举个实例看看 User CF 和 Item CF 的多样性到底有什么差别。首先,假设每个用户兴趣爱好都是广泛的,喜欢好几个领域的东西,不过每个用户肯定也有一个主要的领域,对这个领域会比其他领域更加关心。给定一个用户,假设他喜欢 3 个领域 A,B,C,A 是他喜欢的主要领域,这个时候我们来看 User CF 和 Item CF 倾向于做出什么推荐:如果用 User CF, 它会将 A,B,C 三个领域中比较热门的东西推荐给用户;而如果用 ItemCF,它会基本上只推荐 A 领域的东西给用户。所以我们看到因为 User CF 只推荐热门的,所以它在推荐长尾里项目方面的能力不足;而 Item CF 只推荐 A 领域给用户,这样他有限的推荐列表中就可能包含了一定数量的不热门的长尾物品,同时 Item CF 的推荐对这个用户而言,显然多样性不足。但是对整个系统而言,因为不同的用户的主要兴趣点不同,所以系统的覆盖率会比较好。
从上面的分析,可以很清晰的看到,这两种推荐都有其合理性,但都不是最好的选择,因此他们的精度也会有损失。其实对这类系统的最好选择是,如果系统给这个用户推荐 30 个物品,既不是每个领域挑选 10 个最热门的给他,也不是推荐 30 个 A 领域的给他,而是比如推荐 15 个 A 领域的给他,剩下的 15 个从 B,C 中选择。所以结合 User CF 和 Item CF 是最优的选择,结合的基本原则就是当采用 Item CF 导致系统对个人推荐的多样性不足时,我们通过加入 User CF 增加个人推荐的多样性,从而提高精度,而当因为采用 User CF 而使系统的整体多样性不足时,我们可以通过加入 Item CF 增加整体的多样性,同样同样可以提高推荐的精度。
用户对推荐算法的适应度
前面我们大部分都是从推荐引擎的角度考虑哪个算法更优,但其实我们更多的应该考虑作为推荐引擎的最终使用者 -- 应用用户对推荐算法的适应度。
对于 User CF,推荐的原则是假设用户会喜欢那些和他有相同喜好的用户喜欢的东西,但如果一个用户没有相同喜好的朋友,那 User CF 的算法的效果就会很差,所以一个用户对的 CF 算法的适应度是和他有多少共同喜好用户成正比的。
Item CF 算法也有一个基本假设,就是用户会喜欢和他以前喜欢的东西相似的东西,那么我们可以计算一个用户喜欢的物品的自相似度。一个用户喜欢物品的自相似度大,就说明他喜欢的东西都是比较相似的,也就是说他比较符合 Item CF 方法的基本假设,那么他对 Item CF 的适应度自然比较好;反之,如果自相似度小,就说明这个用户的喜好习惯并不满足 Item CF 方法的基本假设,那么对于这种用户,用 Item CF 方法做出好的推荐的可能性非常低。
3.& 基于KNN的协同过滤推荐算法MATLAB实现
邻居模型通常也被称为k-最近邻模型,或者简称为kNN。KNN 模型可以获得精确的推荐结果并为结果给出合理的解释,它们是CF 推荐系统中最早被使用也是直至目前最流行的一类模型。
PS:以下公式和图片转自博主自己的CSDN博客。
为了获得用户对产品的评分预测值,kNN 模型一般包括以下三步:
1. 计算相似度
这步中计算每对产品之间的相似度(similarity)。一些被广泛使用的相似度
测度包括:
Pearson correlation:
其中&rm 和&rn 分别表示电影m 和n 获得的评分平均值,而Pmn 表示对电影m 和n 都提供了评分的用户集合,也即Pmn = Pm ∩ Pn 。
Adjusted Cosine:
其中&rv 表示用户v 的评分平均值。
2. 选择邻居
为了预测用户u 对电影m 的评分值,我们首先从Pu 中选取与电影m有最高相似度的特定数量的电影,这些电影形成u-m 对的邻居(neighborhood),记为N(m; u) 。
3. 产生预测值
用户u 对电影m 的评分预测为上步获得的邻居N(m; u) 中评分的加权平均值:
其中n 为用户u 对电影n 的基准预测评分。这里的基准模型可以是任何可以产生预测评分的模型。
按照上述过程,在MATLAB仿真环境下得到的RMSE=1.0776,这里取得邻居个数为10。
下图为邻居个数的选取(0~20)对RMSE的影响曲线:
%% 载入训练数据
load g:\matlab\协同过滤做推荐\dataset\Movielens\u1.base
%% 数据预处理
提取数据的前三列,即用户序号、被该用户评价电影序号、评价分值
[m,n]=size(u1);
test=zeros(m,3);
test(:,i)=u1(:,i);
%% 建立评分矩阵
number_user=max(test(:,1));
number_movies=max(test(:,2));
score_matrix=zeros(number_user,number_movies);%评分矩阵943*1682维
score_matrix(test(i,1),test(i,2))=test(i,3);
Sim_matrix=zeros(number_movies,number_movies);%相似度矩阵1642*1642维
%计算评分矩阵
for i=1:number_movies-1
for j=i+1:number_movies
Sim_matrix(i,j)=Similarity_ab(score_matrix,i,j);
%% 建立相似度矩阵
% function Neibor=neibor_select(Sim_matrix,a,n)
neibor_num=10;%邻居的大小
Sim_matrix=Sim_matrix'+Sim_%求完整的相似度矩阵
%neibor_sim_matrix_temp为排好序的相似度矩阵
%neibor_matrix_temp各个相似度所对应的电影,也就是我们要找的邻居
value_1_index=find(Sim_matrix&=0.9999);%找出Sim_matrix矩阵中所有相似度为1的值,
%因为可能是错误值,后期选择邻居不应考虑。
%为什么不是value_1_index=find(Sim_matrix==1)这样有部分1不能正确找出,可以试试看
Sim_matrix(value_1_index)=0;%将所有相似度为1的值用0代替
% [neibor_sim_matrix_temp,neibor_matrix_temp]=sort(Sim_matrix,2,'descend');
% neibor_sim_matrix=zeros(number_movies,neibor_num);
% neibor_matrix=zeros(number_movies,neibor_num);
% for i=1:neibor_num
neibor_sim_matrix(:,i)=neibor_sim_matrix_temp(:,i);%每个邻居对应的相似度
neibor_matrix(:,i)=neibor_matrix_temp(:,i);%邻居
%% 载入测试集
load g:\matlab\协同过滤做推荐\dataset\Movielens\u1.test
[m,n]=size(u1);
test=zeros(m,3);
test(:,i)=u1(:,i);
Predict_score=zeros(m,1);
P_u=find(score_matrix(test(j,1),:)~=0);%找出该用户评价的电影集合
[~,num]=size(P_u);%计算该用户评价的电影个数
%%%%%%%%%%%计算邻居%%%%%%%%%%%%
neibor_num=10;%最大为4
P_u_sim=Sim_matrix(test(j,2),P_u);
[temp,index]=sort(P_u_sim,2,'descend');
[~,num1]=size(index);
if num1&=neibor_num
neibor=(P_u(index(1:neibor_num)));
neibor=(P_u(index));
neibor_num=num1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sum_score=sum(score_matrix(test(j,1),:),2);%该用户对所有电影的总评分
aver_score=sum_score/%该用户对电影的平均评分
for i=1:neibor_num
sum1=sum1+Sim_matrix(test(j,2),neibor(i))*(score_matrix(test(j,1),neibor(i))-aver_score);
sum2=sum2+Sim_matrix(test(j,2),neibor(i));
if sum2==0
Predict_score(j,1)=round(aver_score);%排除分母为零的情况
Predict_score(j,1)=round(aver_score+sum1/sum2);
%确保预测值为1~5的评分数
if Predict_score(j,1)&5
Predict_score(j,1)=5;
elseif Predict_score(j,1)&1
Predict_score(j,1)=1;
%% 计算RMSE
Eval=zeros(m,3);
Eval(:,1)=test(:,3);
Eval(:,2)=Predict_score(:,1);
Eval(:,3)=abs(test(:,3)-Predict_score(:,1));
RMSE=sqrt(Eval(:,3)'*Eval(:,3)/m);
协同过滤的缺点是:
(1)用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题);
(2)随着用户和商品的增多,系统的性能会越来越低;
(3)如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(即最初评价问题)。
Web2.0 的一个核心思想就是“集体智慧”,基于协同过滤的推荐策略的基本思想就是基于大众行为,为每个用户提供个性化的推荐,从而使用户能更快速更准确的发现所需要的信息。从应用角度分析,现今比较成功的推荐引擎,比如 Amazon,豆瓣,当当等都采用了协同过滤的方式,它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,是中领域无关的推荐方法,同时这个方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。基于协同过滤的推荐策略也有不同的分支,它们有不同的实用场景和推荐效果,用户可以根据自己应用的实际情况选择合适的方法,异或组合不同的方法得到更好的推荐效果。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

参考资料

 

随机推荐