基于关联规则的推荐系统

February 21st, 2010 | by 超群.com | 知识共享署名-非商业性使用-相同方式共享,转载请保留链接。

首先,要了解关联规则的几个概念,定义N为 总事务数,N(A)N(B)分别为项集A、项集B出现的次数,N(AB)为项集A、项集B同时出现的次数,A、B为不相交项集 A∩B=Ø,规则A→B表示由A推到B:

支持(Support):

Support事务数" width="203" />

支持度是一种重要度量,支持度低的规则很可能是偶然现象,对推荐意义不大,另外支持度是数据剪枝的一个重要依据。

置信度(Confidence):

Confidence

置信度,字面上的解释就是这个规则到底有可信,对于给定的规则A→B,置信度越高,B出现在包含A的事务中的概率越高。

提升度(Lift):

Lift支持度除以A的支持度和B的支持度" />

Support(A→B)其实就是AB的联合概率P(AB),Support(A) 、 Support(B)分别为A、B的概率估计P(A)P(B),如果A、B相互独立,则P(AB) = P(A) × P(B),所以只有 Lift > 1 才表示A、B正相关,且越大越好。

为什么要引入提升度的概念呢?还是拿歌曲来做例子,比如歌曲A、歌曲C为小众歌曲歌曲B为口水歌,共有10万个用户,有200个人听过歌曲A,这 200个人里面有60个听过口水歌B,有40个人听过歌曲C,同时听过歌曲C的人数是300,听过口水歌B的人为50000,那么 Confidence(A→B) = 0.3,Confidence(A→C) = 0.2,从置信度来看貌似A和B更相关,但是10W人里面有5W听过歌曲B,说明有一半的用户喜欢歌曲B,但听过歌曲A的人里面只有30%的人喜欢歌曲 B,很明显歌曲A和歌曲B负相关,计算Lift(A→B) = 0.6,小于1,负相关,Lift(A→C) = 100,远大于1,正相关。

当然,还有一些其他的度量因子,可自行参阅其他文档

可以进入正题了,我们要实验的是一个文学网站数据数据格式如下:

用户ID 图书ID

表示此用户阅读过该图书,我们首先要解决问题是:喜欢图书A的用户喜欢其他哪些图书图书之间的相关性

推荐流程

非常简单,关键的就是数据清理以及规则剪枝设置,这需要对业务熟悉一些,提升度的话,如果不确认,大于1即可。

结果示例

古龙:剑毒梅香(中) 古龙:剑毒梅香(上)|古龙:剑毒梅香(下)|武林第一少年:血欲江湖|笑傲江湖之风清扬别传|草根续写:天龙八部续
古龙:剑毒梅香(下) 古龙:剑毒梅香(中)|古龙:剑毒 梅香(上)|武林第一少年:血欲江湖|笑傲江湖之风清扬别传|恐怖宿舍惊魂夜:女生寝室|倚天屠龙记之复兴明教|至尊武神:六脉神剑闹武林|草根续写:天 龙八部续
温瑞安:四大名捕猿猴月 四大名捕会京师:逆水寒|温瑞安:四大名捕铁布衫|四大名捕震关东-亡命|四大名捕破神枪: 惨绿|四大名捕破神枪-妖红|四大名捕震关东-追杀|温瑞安:四大名捕谈亭会|温瑞安:四大名捕开谢花|温瑞安:四大名捕碎梦刀|四大名捕走龙蛇|温瑞 安:四大名捕猛鬼庙|温瑞安神州奇侠:人世间
异界玄奇:尸池 荒村血鬼洞房:剥皮新娘|真实恐怖:鬼宅小区|丫鬟不好当:王爷,请自重|人鬼恋:我的老婆不是人|灵异事件全曝光:诡异档案|恐怖的盗墓历险:荒村古 墓|校园僵尸|古墓惊魂夜:坟岭村笔记|阴阳眼之鬼瞳:荒道门|极度恐怖乱坟头:墓地惊叫|盗墓传说|不解迷:殡仪馆里的化妆师|凶尸宿舍惊魂声:猛鬼校 园|惊声尖叫:太平间美丽女尸|生化疯狂撕杀之丧尸异形|僵尸当街:遇上美女天师|生化异族的入侵:吸血传说|凶宅女尸:学院惊魂夜|棺木里的眼球:古井 沉尸|校园恐怖女生寝室3:诡铃
变成有钱人并不难: 理财YS 快速发财: 怎样做无本生意|创业指南:三十六计|成功三宝:习惯、心态、人脉|掌控自己命运:读孙子兵法|改变你一生的30个招术|帮你成高手:口才决定成败|左右 逢源的做人心机术|穷人与富人的差别|最快的致富秘诀: 赢在观念|做个聪明的老板: 经商要会说话|把话说得滴水不漏全集|职场:1分钟读懂对方心理|恋人浪漫短信|李嘉诚的谋局与处世|股票入门:股票认知大全|男人了解女人,女人了解男 人|教你理财:理财高手|心机–做人的一种智慧|必修课:这样做女孩最命好|女人身体·女人智慧
……

不再举例子了,目测感觉大比较靠谱。