首页 > 代码库 > 推荐系统--二部图方法

推荐系统--二部图方法

参考周涛的几篇二部图的文章做的实验文章列表:

1,2007PRE Bipartite network projection and personal recommendation.pdf (网络结构) 

2,2010PNAS-Solving the apparent diversity-accuracy dilemma of recommender systems.pdf (物质扩散和热传导)

  Heats和Pros的简单融合算法

3,2009NJP Accurate and diverse recommendations via eliminating redundant correlations.pdf (多步物质扩散) 

  2008EPL Effect of initial configuration on network-based Recommendation.pdf (初始资源分配)

  这两篇是对Pros算法的改进,提高很明显,分别提高9%,(我的试验试验中正确率从16%多到17.8%),20%(试验中从17.8%到      20.5%左  右,细调一下参数可以到21%以上)

此外。这一系列文章中提出一些新的判别指标,不同于与往常评估的precision,recall,popular,cover(覆盖率)(参见推荐系统实战)

这里采用的判别指标有:

rangking score:其实就是第一个推荐正确的物品出现的位置,比如出现在30th,而共有1500个未收集物品,则rat=0.02%,这个值越小代表        结果越好

novelty=mean(log2(u/ka)),u是用户总数,ka是select物品a的用户数,其实是流行度pop的倒数取log,这个值越大越好。

diversity:这个我认为非常有创造性的一个指标,作者将其分为内在相似度(intra-similarity)和外在差异度(inter-diversity)

1,intra: 同一用户不同物品之间的相似度,理应小点好,Il=1/(l*(l-1))*Σi+jSij,l是推荐列表的长度,I=1/m*Σ1~m  I,    m是用户数

      Sij由CF得到,Sij=(k(oi)*k(oj))-1/21~m ( ail*ajl)

2, inter:Hij=1-qij(N)/N=1-Q/L,Q是用户i,j推荐列表中相同的物品数目

    S=1/(m*(m-1))ΣHij,显然inter-diversity越大越好

I与S之间没有直接的关系。

数据集用的Movielens-100K,指标是用的传统的precision,还有recall,pop等,就不上图了

下面是实验结果:

   1,资源初始分配参数beta-precision

      2,beta=-0.3时,w+alpha*w^2,做多步扩散,消除冗余信息,alpha-precision

 

    3,alpha=-0.75,beta-precision

从结果图来看,先确定alpha再确定beta结果会好点,暂时不清楚有没有更好的方法来同时调节这俩参数,来使结果最优,论文中beta=-0.8,alpha=-0.75,但是由于这里指标用的和它不同,所以参数会有些许差别,21%的结果已经优于user-KNN算法取领域为50的结果20.08%,内存上俩着占用差不多,时间上这个方法只需要3~5s,而KNN-50要80s左右。

推荐系统--二部图方法