基于关联规则的推荐系统

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

支持度(Support):

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

置信度(Confidence):

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

提升度(Lift):

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) = 66.7,远大于1,正相关。

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

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

用户ID 图书ID

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

推荐流程

  • 数据清理:对用户和图书分别计数,过滤掉一些超不活跃的用户和超冷门的图书
  • 计算两两图书之间的支持度、置信度、提升度,根据最低支持度、最低置信度、最低提升度剪枝,把低于最小值的规则扔掉
  • 对图书A进行推荐:找出图书A的所有规则,按照置信度降序排序,Top-N即为和图书A最相关的前N本图书

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

结果示例:

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

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

 

原文地址:http://www.fuchaoqun.com/2010/02/recommendation-system-on-association-rules/

你可能感兴趣的:(NLP)