关闭

个性化推荐算法和二部图-论文学习

标签: 推荐算法Bipartite network pr链路预测论文学习
2490人阅读 评论(0) 收藏 举报
分类:

本文为学习论文《Bipartite network projection and personal recommendation》(周涛)的简要备忘笔记。

0,背景简介

一般来说,一个推荐系统由用户user和商品object组成,每一个用户会选择一些商品,记商品集合和用户集合分别如下:

 ,   

如果用户仅仅选择商品而不对其进行评价。那么推荐系统可以完全由一个n×m的邻接矩阵表示,其中如果用户ui选择过了商品oj,那么aij = 1,否则aij =  0。一个合理的假设是你选择的商品都是你喜欢的,一个推荐系统的目的是要预测你对于没有选择过的商品的喜爱程度。


1,GRM(global ranking method )算法

为商品oi的度,该算法按照度下降对商品进行排序并且向用户推荐排序最靠前的商品。尽管该算法因为缺乏个性化而表现不尽如人意,但是由于其简单而被广泛的应用。


2,CF算法

至今使用最广泛的个性化推荐算法是CF(collaborative filtering ),该算法基于用户的相似性进行推荐,即对一个特定用户的推荐主要使用与其相似的用户的数据。用户ui和用户uj的相似性可由以下的公式计算得到:

                                                       

其中k(ui)为用户的度。对于任意一个用户商品对ui-oj,如果用户ui没有选择oj,该算法会计算用户ui选择oj的得分vij

公式如下图所示:

                                                         

简单的分析下式子中的分子的意思:用户ui购买商品oj的得分vij = sum(该用户和第l个用户的相似性×第l个用户是否购买了该商品)。有两个因素可以导致vij变大,(1)商品oj的度很大(理解为买的很好或者很受欢迎)。(2),存在一个和预测用户喜好很像的人。那么前者表现的是全局化的信息,后者表现的是个性化的信息。针对任意用户ui,对他所有的没有买过的商品进行得分的排序就实现了个性化的推荐。


3,NBI(network-based inference)算法

 (0)二部图:网络中的节点分为两个集合(X,Y),而节点直接的连接只能发生在两个集合之间。

 (1)算法思想:(一种加权方法)

                                                    

                                                   

                                                   

上图表明了在二部图中资源的流动过程。上面的3个是X节点,下面的4个是Y节点。整个资源的流动过程包括两步:首先资源从X流向Y,然后重新流回X。经过着两步之后,X节点上资源由x,y,z变为x‘,y’和z‘。可以通过如下的计算得到:

                                                        

考虑更加一般的二部图G(X,Y,E), 其中E是边的集合,集合X和Y中的节点分别记为x1,x2,...xn和y1,y2,...,ym,X集合中节点的初始资源量为f(xi)。当第一步完成之后,资源由集合X流向了Y,那么可以通过以下的式子计算Y中的各个节点分配到的资源量:

                                                         

其中k(xi)为xi的度,ail为n×m的邻接矩阵,如下所以:

                                                        

接下是第二步,所有的资源流回X,之后集合X中的节点的资源分配量可由下式计算得出:

                                                      

或者可以写为:

                                                       

其中:

wij可以理解为,在j的眼中i的重要性。

(2)NBI算法

直接利用上述介绍的二部图的加权方法提出一种推荐算法。框架是很简单的:首先将用户-商品二部图压缩为商品一部图,将得到的加权网络记为G。对于给定的用户,对该用户已经选择过的商品分配资源量,为了简单初始资源量的分配按照下面的式子给出:f(oj) = aji.也就是说如果用户选择过了商品oj,那么初始资源量为1,否则为0。之后根据前面所讨论的加权方法。最后可以得到商品上的资源量为:

                                                       

那么对于任意一个用户,我们对他所有的未选择过的商品oj按照以上计算的f ’(oj)降序排列,向用户推荐最后资源量最大的那些商品。

C语言代码实现http://blog.csdn.net/robin_xu_shuai/article/details/51533940

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:88315次
    • 积分:1723
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:0篇
    • 译文:0篇
    • 评论:51条
    最新评论