发明名称 基于二分网络双向扩散的个性化推荐方法
摘要 本发明公开了一种基于二分网络双向扩散的个性化推荐方法,针对Top-N的个性化推荐,主要解决了推荐列表的准确性,多样性及新颖度几个主要算法性能指标的冲突。其实现步骤为:(1)构建用户-物品关联的二分图网络。假设每个目标用户节点都有某种可分的资源,可以按预定分配机制分配给其它节点对象;(2)建立物品-物品及用户-用户的二阶关联矩阵;(3)完成双向扩散过程,得到用户-物品的兴趣矩阵;(4)给出每个用户的长度为N的推荐列表,完成Top-N的推荐。本发明基于网络传播的思想,效果明显好于经典的协同过滤方法,更好的实现了个性化推荐系统所关注的长尾挖掘,可用于解决个性化推荐的Top-N问题。
申请公布号 CN104899763A 申请公布日期 2015.09.09
申请号 CN201510230210.4 申请日期 2015.05.07
申请人 西安电子科技大学 发明人 马文萍;焦李成;冯翔;马晶晶;侯彪;王爽;其他发明人请求不公开姓名
分类号 G06Q30/02(2012.01)I 主分类号 G06Q30/02(2012.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 一种基于二分网络双向扩散的个性化推荐方法,所述方法包括下列步骤:(1)根据用户的历史行为记录来构建用户‑物品的二分网络,用户的历史行为记录包括用户购买物品的记录或者用户对物品的评价记录:设用户节点集合U={u<sub>1</sub>,u<sub>2</sub>,...,u<sub>m</sub>},m为用户的数目,物品节点集合O={o<sub>1</sub>,o<sub>2</sub>,...,o<sub>n</sub>},n为物品的数目,Re记录用户和物品之间的交互关系,该交互关系与用户的历史行为记录对应,只考虑用户是否购买或评价过物品的二元关系。构建用户‑物品的二分网络的图模型,其中用户节点与用户节点之间无连接,物品节点与物品节点之间也没有连接,只在发生过交互关系的用户节点与物品节点之间建立连接;如果用户节点与物品节点发生过交互关系,则在Re中生成记录&lt;U,O&gt;;用二元矩阵A<sub>m×n</sub>=(a<sub>ij</sub>)<sub>m×n</sub>来表示该二分网络中的连接信息,其中<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>a</mi><mi>ij</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo><mo>&lt;</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>o</mi><mi>j</mi></msub><mo>></mo><mo>&Element;</mo><mi>Re</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mo>&lt;</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>o</mi><mi>j</mi></msub><mo>></mo><mo>&NotElement;</mo><mi>Re</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000713188360000011.GIF" wi="463" he="157" /></maths><u<sub>i</sub>,o<sub>j</sub>>表示第i个用户节点与第j个物品;a<sub>ij</sub>是二元矩阵A<sub>m×n</sub>第i行第j列的元素;(2)计算物品间二阶关联性:假设二分网络的所有节点均可以储藏一定量的资源,初始状态下的所有网络节点所含资源数量均为0:2a)从物品节点集合O中选择某一物品节点为初始激活的物品节点,并拥有1个单位的资源,其它节点未激活,资源数量为0;2b)单位资源从初始激活的物品节点向与它相连的用户节点扩散,用户节点接受的资源数量等于它相连物品节点所拥有总量的平均数;2c)到达用户节点的资源再返回所有物品节点,物品节点接受的资源数量等于它相连用户节点所拥有总量的平均数;通过某一初始激活物品节点→用户节点→物品节点的扩散过程,这样原先资源数量为0的物品节点得到一定数量资源,得到资源数量越多的物品节点,视为与初始激活的物品节点越相似。依次选择不同的初始激活的物品节点,重复上面过程直到遍历完所有物品节点集合O,即可得到物品‑物品的二阶关联矩阵;(3)计算用户间二阶关联性:设二分网络处于初始状态,所有节点资源数量均为0:3a)从用户节点集合U中选择某一用户节点为初始激活的用户节点,并拥有1个单位的资源,其它节点未激活,资源数量为0;3b)1个单位的资源从初始激活的用户节点向与它相连的物品节点扩散,物品节点接受的资源数量等于与它相连用户节点所拥有总量的平均数;3c)到达物品节点的资源再返回所有用户节点,用户节点接受的资源数量等于它相连物品节点所拥有总量的平均数;通过某一初始激活用户节点→物品节点→用户节点的扩散过程,这样原先资源数量为0的用户节点得到一定数量资源,得到资源数量越多的用户节点,视为与初始激活的用户节点越相似。依次选择不同的初始激活的用户节点,重复上面过程直到遍历完所有用户节点集合U,即可得到用户‑用户的二阶关联矩阵;(4)完成资源双向扩散过程:设二分网络处于初始状态,所有节点资源数量为0:4a)正向资源扩散过程:对于某一目标用户节点u<sub>t</sub>,设与其相连接的物品节点均为初始激活状态,并拥有一个单位数量资源,其它节点未激活,资源量为0;然后基于步骤(2)计算得到的物品之间的关联性,将这些初始激活物品节点的资源按比例配给所有物品节点;4b)逆向资源扩散过程:选择某一物品节点o<sub>t</sub>,经过正向扩散后,该物品节点得到数量为r的资源;设与o<sub>t</sub>相连接的用户节点被激活,并各自拥有数量为r<sup>λ</sup>的资源,λ是调优参数;然后基于步骤(3)计算得到的用户之间的关联性,将所有激活的用户节点所拥有的资源按比例分配给所有用户节点;用户节点u<sub>t</sub>得到从物品节点o<sub>t</sub>反馈回的资源数量,用来表征用户u<sub>t</sub>对物品o<sub>t</sub>的感兴趣的程度;4c)依次选取集合O中其它物品节点,完成4b)的过程,直到遍历完所有物品节点,得到用户u<sub>t</sub>对所有物品的感兴趣的程度列表;4d)依次选取集合U中其它用户节点,完成4a)~4c)的过程,直到遍历完所有用户节点,得到所有用户对所有物品的感兴趣程度,用m×n的矩阵M记录下来;(5)给出对应于每个用户的长度为N的物品推荐列表:N的大小依据实际需要确定,表示为每个用户提供N个推荐物品;5a)将最终的用户‑物品兴趣度矩阵M每行按从大到小排列,即按兴趣程度的大小,为每个用户都整理出他的兴趣表;5b)为每个用户推荐N个没有购买过的兴趣值排行靠前的物品。
地址 710071 陕西省西安市太白南路2号