最小推荐系统:基于图拓扑的相似性描述SimRank

我怕爱的太早我们不能终老 提交于 2020-08-10 23:46:29

推荐系统的问题/任务描述有两种方式,一是预测,也就是对于用户-条目对预测出用户的(喜好)评分值(比如上一篇提到的隐语义模型)。对于这种问题描述,通常假设训练数据是可得的,对于m 个用户和 n 个条目的数据,也就是存在一个不完整的 m\times n 矩阵,其已知部分(已有观测)用作训练,以预测未知部分(空白观测)。这样就把推荐问题转化为Matrix Completion Problem(矩阵补全问题). 第二个是排序,在实际推荐系统中,我们做推荐没有必要得到用户对所推荐条目的准确喜好值,而只是需要推荐特定用户最可能喜好的top-k条目。而且对用户的top-k条目问题比对条目的top-k用户问题更常见,虽然这两个子问题是完全等价的。

做排序的方法中,可解释性最好的通常是基于前篇提到的邻域方法。因为它们都基于一个共同的强假设:在观测到用户消费过条目A之后,我们有很高的可能性观测到用户会喜欢与A相似的条目B以及相似的用户可能喜欢同一个条目。既然是描述相似性,我们可以认为物品A与物品B的相似性等价于物品B与物品A的相似性,也就是说,由包含物品A和B等组成的节点之间的相似性,构成无向图。按照定义[1],SimRank\left( a,b \right)=\frac{C}{\left| I\left( a \right) \right|\left| I \left( b \right)\right|}\sum_{i=1}^{\left| I\left( a \right) \right|}\sum_{j=1}^{\left| I\left( b \right) \right|}SimRank\left( I_i\left( a \right) , I_j\left(b \right)  \right) , 其中 C 是介于0到1之间的常量, I\left( a \right)I\left( b \right) 分别表示 ab 的直接相连节点(in-link nodes)组成的集合, I_i\left( a \right)\in I\left( a \right) , I_j\left( b \right)\in I\left( b \right) . 当 I_i\left( a \right)= I_j\left( b \right) 时, SimRank\left( I_i\left( a \right) , I_j\left(b \right)  \right) =1 ,否则 SimRank\left( I_i\left( a \right) , I_j\left(b \right)  \right) = 0 . 这个定义是递归定义,其对应的计算过程也是递归的,而且一定收敛。其计算复杂度为 O\left( n^4 \right) . 直观上, SimRank(a,b) 可以理解为在网络中从节点 ab 出发进行随机游走直至碰到所需要的预期时间损耗。

SimRank 有一些bad case. 如果节点 ab之间的路径的边数是奇数的话,从上面的递归过程可以看出 SimRank\left( a,b \right)=0 . 比如下图中的节点A和B,它们之间的所有路径边数都是3,所以 SimRank\left( A,B \right)=0 , 而A到C之间路径边为偶数,所以 SimRank\left( A,C \right)>0 . 但从图中可见,A和B的相似性远高于A和C之间。

在条目-用户构成的二相图中,条目到用户的边数如果存在的话,总是奇数。所以条目跟用户的相似性总是0,虽然这是符合实际意义的。

由于计算复杂度高,即便是对于离线计算,一般由上千个节点组成的条目-用户二相图,其对应的 SimRank 矩阵计算耗时和内存需求也是难以接受的。因此通常使用并行、MapReduce等进行计算,甚至并不计算真实值,而是用Monte Carlo等方法进行近似计算[2][3].

参考

  1. ^Jeh, G. , & Widom, J. . (2002). SimRank: a measure of structural-context similarity. the eighth ACM SIGKDD international conference. ACM.
  2. ^Yu, W. , Lin, X. , Zhang, W. , Pei, J. , & Mccann, J. A. . (2019). Simrank*: effective and scalable pairwise similarity search based on graph topology. Vldb Journal, 28(3), 401-426.
  3. ^Weiren Yu, Wenjie Zhang, Xuemin Lin, & Qing ZhangJiajin Le. (2012). A space and time efficient algorithm for simrank computation. World Wide Web.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!