发明名称 一种基于自适应多最小支持度的关联规则推荐方法
摘要 本发明公开了一种基于自适应多最小支持度的关联规则推荐方法,首先根据商品分类建立商品分类层次树,并根据分类层次树对具体商品进行归类;接下来分别为每个具体商品和具体商品层上一层的类别进行最小支持度阈值设置,阈值设置涉及时间因素、具体商品价格因素以及具体商品品牌因素的影响,在支持度阈值设定基础上,再利用多最小支持度关联规则扩展算法挖掘频繁项集和产生规则;最后采用Top-N推荐方法为每位用户生成推荐。本发明在为用户做个性化推荐时,考虑了多种因素对具体商品和类别的多最小支持度阈值设定的影响,能较好的体现不同物品的特征,同时缓解了推荐系统中数据稀疏性问题和冷启动问题,能更加准确的为用户进行个性化推荐。
申请公布号 CN103700005A 申请公布日期 2014.04.02
申请号 CN201310688735.3 申请日期 2013.12.17
申请人 南京信息工程大学 发明人 马廷淮;周金娟;朱节中;曹杰
分类号 G06Q30/02(2012.01)I 主分类号 G06Q30/02(2012.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 许方
主权项 1.一种基于自适应多最小支持度的关联规则推荐方法,其特征在于,包括以下步骤:步骤一、根据商品分类信息建立商品分类层次树,并将数据集中商品按照商品分类层次树进行归类;步骤二、在每类商品中设置商品最小支持度阈值:<![CDATA[<math><mrow><msub><mi>MIS</mi><msub><mi>X</mi><mi>k</mi></msub></msub><mo>=</mo><mfrac><mrow><mi>count</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>total</mi><mrow><mo>(</mo><msup><mi>X</mi><mi>i</mi></msup><mo>)</mo></mrow></mrow></mfrac><mo>&times;</mo><mo>[</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>price</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mi>max</mi></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><mi>&alpha;</mi><mo>+</mo><mfrac><mn>1</mn><mrow><mi>brand</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>&times;</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>其中,count(X<sub>k</sub>)是t时段内商品X<sub>k</sub>的交易量,total(X<sup>i</sup>)为是t时段内类别X<sup>i</sup>的交易量,且X<sub>k</sub>∈X<sup>i</sup>,price(X<sub>k</sub>)为商品X<sub>k</sub>的价格,pmax为类别X<sup>i</sup>中商品的最高价格,brand(X<sub>k</sub>)即为商品X<sub>k</sub>的品牌权重,α为商品价格因素对计算商品最小支持度阈值的影响权重,1-α为商品品牌对计算商品最小支持度阈值的影响权重;步骤三、以分类层次树中具体商品层的上一层为类别,为每个类别设置类别最小支持度阈值:<![CDATA[<math><mrow><msub><mi>MIS</mi><msup><mi>X</mi><mi>i</mi></msup></msub><mo>=</mo><mfrac><mrow><mi>count</mi><mrow><mo>(</mo><msup><mi>X</mi><mi>i</mi></msup><mo>)</mo></mrow></mrow><mrow><msub><mi>&Sigma;</mi><mrow><msup><mi>X</mi><mi>j</mi></msup><mo>&Element;</mo><msup><mi>X</mi><mo>&prime;</mo></msup></mrow></msub><mi>count</mi><mrow><mo>(</mo><msup><mi>X</mi><mi>j</mi></msup><mo>)</mo></mrow></mrow></mfrac><mo>&times;</mo><mi>&lambda;</mi></mrow></math>]]></maths>其中,X‘、X<sup>i</sup>、X<sup>j</sup>均为商品的类别,X<sup>i</sup>和X<sup>j</sup>为X‘的子类别,λ为类别最小支持度阈值的影响参数;步骤四、根据步骤二和步骤三中得到的商品最小支持度阈值和类别最小支持度阈值,利用多最小支持度关联规则算法分别挖掘商品频繁项集和类别频繁项集,并产生相应的规则,具体如下:(401)将所有商品按照自身的商品最小支持度阈值MIS进行升序排序,并存储于项目集合M中;(402)设I={i<sub>1</sub>,i<sub>2</sub>,...,i<sub>m</sub>}为所有商品item的集合,事务数据集T=&lt;T<sub>1</sub>,T<sub>2</sub>,...,T<sub>n</sub>&gt;表示网站所有用户历史商品交易记录,其中每个事务T<sub>i</sub>是用户一次商品交易记录,T<sub>i</sub>是商品的集合,<img file="FDA0000439646910000013.GIF" wi="149" he="53" />并且每个事务T<sub>i</sub>都有一个唯一的标识符TID,m、n为正整数,扫描事务数据集T,计算其中每个商品的实际支持度sup(item);(403)按存储顺序从项目集合M中找出第一个满足sup(item<sub>i</sub>)≥MIS(item<sub>i</sub>)的项目item<sub>i</sub>,将其加入集合L中,对于项目集合M中item<sub>i</sub>之后的每个项目item<sub>j</sub>,如果sup(item<sub>j</sub>)≥MIS(item<sub>i</sub>),则将item<sub>j</sub>加入集合L中;(404)在集合L中找到满足sup(item<sub>l</sub>)≥MIS(item<sub>l</sub>)的所有商品item<sub>l</sub>,并将item<sub>l</sub>加入频繁1项集F<sub>1</sub>中,并设定频繁项集的基数k=2;(405)判断频繁k-1项集F<sub>k-1</sub>是否为空,若空则跳转到步骤(408),否则进入步骤(406);(406)若参数k=2,则按存储顺序遍历集合L,对每个item<sub>s</sub>∈L,若item<sub>s</sub>满足sup(item<sub>s</sub>)≥MIS(item<sub>s</sub>),对于集合L中item<sub>s</sub>之后的每个item<sub>h</sub>,在item<sub>h</sub>满足sup(item<sub>h</sub>)≥MIS(item<sub>s</sub>)且<img file="FDA0000439646910000021.GIF" wi="710" he="61" />时,将候选项集{item<sub>s</sub>,item<sub>h</sub>}加入候选k项集C<sub>k</sub>中,其中,<img file="FDA0000439646910000022.GIF" wi="35" he="45" />为最大支持度差别;若k≠2,则在频繁k-1项集F<sub>k-1</sub>中遍历查找所有只有最后一项元素不同的频繁项集对f<sub>1</sub>,f<sub>2</sub>,f<sub>1</sub>={item<sub>1</sub>,item2,…,item<sub>k-2</sub>,item<sub>k-1</sub>},f<sub>2</sub>={item<sub>1</sub>,item<sub>2</sub>,…,item<sub>k-2</sub>,item′<sub>k-1</sub>},若MIS(item<sub>k-1</sub>)<MIS(item′<sub>k-1</sub>)且<img file="FDA0000439646910000023.GIF" wi="758" he="69" /><img file="FDA0000439646910000024.GIF" wi="55" he="51" />,则将候选项集c={item<sub>1</sub>,item<sub>2</sub>,…,item<sub>k-2</sub>,item<sub>k-1</sub>,item′<sub>k-1</sub>}加入候选k项集C<sub>k</sub>中;接着遍历c中每个(k-1)大小的子集s,当c[1]∈s或者MIS(c[2])=MIS(c[1])时,如果<img file="FDA0000439646910000025.GIF" wi="210" he="55" />则将候选k项集C<sub>k</sub>中候选项集c删除,其中,c[1]为候选项集c的第1个元素,c[2]为候选项集c的第2个元素;(407)遍历事务数据集T,计算候选k项集C<sub>k</sub>中每个候选项集c的支持度sup(c),若候选项集c满足sup(c)≥MIS(c[1]),则将候选项集c加入频繁k项集F<sub>k</sub>中,将参数k值加1,并跳转到步骤(405);(408)将各级频繁项集F<sub>k</sub>加入频繁项集集合F中;(409)由频繁项集集合F产生关联规则,对于k频繁项集集合F<sub>k</sub>∈F,其中k=2,3,...,对于每个k频繁项集f<sub>k</sub>∈F<sub>k</sub>,f<sub>k</sub>={item<sub>1</sub>,item2,...,item<sub>k</sub>},由k频繁项集f<sub>k</sub>生成的关联规则过程如下:对任一item<sub>i</sub>∈f<sub>k</sub>,产生的关联规则r形式为f<sub>k</sub>-item<sub>i</sub>→item<sub>i</sub>,此规则的真实置信度conf_of_r计算公式为:conf_of_r=sup(f<sub>k</sub>)/sup(f<sub>k</sub>-item<sub>i</sub>),其中(f<sub>k</sub>-item<sub>i</sub>)是k频繁项集f<sub>k</sub>中去除item<sub>i</sub>后剩余的所有item集合;由所有k频繁项集集合F<sub>k</sub>生成的关联规则中,若关联规则r的置信度conf_of_r≥minconf,则将此规则r加入到规则集R中;步骤五、利用具体商品的规则为用户进行个性化推荐,具体如下:根据用户的历史购物记录匹配商品关联规则,当规则的前项A中的商品都是用户曾经感兴趣过的商品,且后项B中的商品不是用户曾经感兴趣过的商品时,将此规则加入候选规则集合,此规则后项B对应的商品item<sub>f</sub>作为候选推荐商品;对每个候选推荐商品item<sub>f</sub>,计算分值<![CDATA[<math><mrow><msub><mi>score</mi><msub><mi>item</mi><mi>f</mi></msub></msub><mo>=</mo><msub><mi>&Sigma;</mi><mrow><mi>r</mi><mo>&Element;</mo><mi>rules</mi></mrow></msub><mi>conf</mi><mo>_</mo><mi>of</mi><mo>_</mo><mi>r</mi><mo>,</mo></mrow></math>]]></maths>其中rules是匹配到的所有规则中后项为item<sub>f</sub>的规则集合,conf_of_r则是rules中每个规则的实际置信度,将所有候选推荐商品按照分值进行降序排序,取前N个商品进行推荐,N的取值为自然数。
地址 215101 江苏省苏州市吴中区木渎镇中山东路70号吴中科技创业园2号楼2310室