写在前面
- 下面是我最近看的一些论文,论文主要是关于:1、利用LDA进行社交网络的用户推荐;2、BPR的一些改进算法;3、MF的一些改进算法
- 每一篇论文都用一页PPT来进行总结,总结的很简单,所以在每一页PPT下面加上了想表达的备注。(本来是准备和导师讲的,但是导师没空,所以想说还是把内容总结出来吧,不然过段时间就忘了~)
- 完整的PPT可以在文末找到下载链接~
P1
- 这一页是目录,是我下面要讲的所有论文里面提出的方法名称的简写。
P2
Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. Journal of machine Learning research, 2003, 3(Jan): 993-1022.
- Latent dirichlet allocation 是发表于2003年的一篇非常经典的工作,该方法名称可以简写为LDA,当然我这里看这一篇论文不是为了学习LDA,而是为了想要研究下LDA是如何用于社交网络的用户推荐任务上。
- 我们知道LDA可以用来对文档进行主题挖掘,他原始的假设就是如果一个作者要写一篇文章,那么作者首先会去确定一下这篇文章的一个或者几个主题,然后才会去写文章。同样的,对于社交网络来说,用户A关注用户B可能也是因为某一种主题兴趣才会去关注。这个时候,我们是否可以把用户A的所有关注者们当成一篇文档向量来进行表示,进而挖掘出用户A关注的那些用户的兴趣主题分布是什么,同时我们是否可以利用LDA来得到兴趣主题分布下有哪些被关注者呢?答案是可以的!这两个分布我们都可以得到!依此,我们可以计算出用户A可能会关注其他用户的一个概率值,选择概率得分最高的几个用户来对用户A进行一个社交网络用户的TOPN推荐工作。
- 类似的,LDA用于用户推荐的工作都可以分为两个步骤,一个是主题挖掘,一个是用户推荐。
P3
Cha Y, Cho J. Social-network analysis using topic models[C]//Proceedings of the 35th international ACM SIGIR conference on Research and development in information retrieval. ACM, 2012: 565-574.
- 这是2012年发表在SIGIR的一篇工作。它将社交网络融于主题模型中,与我上一页PPT提及的原因一致,都是为了挖掘用户的关注者们的一个兴趣主题分布。与前面做法不同的是,原始LDA对文档进行主题挖掘是利用文档的词袋模型进行训练的,但是在训练之前一般都会进行一个去除停用词或者高频词的操作,因为这些词如果不去除的话,则很有可能会属于多个主题,从而导致得到的主题分布有噪音。
- 所以如果我们把用户的所有关注者都变成一篇文档表示,我们是否要去除出现次数很高的被关注者呢?答案是否定的!被关注者在所有的关注者的列表中出现次数很高,这恰恰代表这个用户被很多人喜欢,这个用户是符合大家兴趣的,这个用户是有一定影响力的啊!但是如果不删除这种出现高频次数的被关注者的话,最后得到的关于关注者的主题分布确实会产生一定的噪音,这个时候这种被关注者会被划分到很多主题中去,这并不是我们想要得到的结果。
- 这个问题是本篇论文作者所想要解决的问题,针对这个问题,作者也给出了自己的答案。即把这一批高频的被关注者‘挑出来’,另外形成一个文档表示,然后剩下的也形成一个文档表示,对这两部分文档分别进行LDA训练。这也就是PPT里显示的Two-step Labeling的方法。至于Threshold Noise Filtering是指针对高频关注者最后得到的一个兴趣主题下的用户分布指定一个阈值,在阈值以下的用户则会被剔除掉。
P4
Xu K, Cai Y, Min H, et al. UIS-LDA: a user recommendation based on social connections and interests of users in uni-directional social networks[C]//Proceedings of the International Conference on Web Intelligence. ACM, 2017: 260-265.
- UIS-LDA是实验室老师的一篇工作,她提出在单向社交网络中用户关注另一个用户,并不仅仅只是因为兴趣的原因,还有可能是因为社交关系的原因,一般来说,在线下互相认识的朋友会倾向于在线上也成为朋友。所以对于单向关注来说,有极大的可能性是因为兴趣的原因,对于双向关注来说,有极大的可能性是因为社交的原因。
- 而如果只使用原始的LDA进行训练去得到所有用户关注者的一个兴趣主题分布的话,得到的主题分布会比较的粗糙!最后用户的推荐效果可能也会稍差!
- 所以作者在原始的LDA上进行了一些改进,改进的地方除了使用开关控制基于单向社交关系得到兴趣主题分布,基于双向社交关系得到社交主题分布,还包括改进了采样部分,作者在采样的部分加入了GPU操作。
- 我们都知道在原始的LDA训练过程中,训练时会不断的对第 i 篇文章的第 j 个词进行主题赋值,那么在用户的关注者组成的文档中,对第 i 个用户的第 j 个关注者进行主题赋值的时候,如果发现 i 用户和 j 用户是双向关注的关系,则我们可以同时对第 j 篇文档的第 i 个用户赋予相同主题更高的概率,也就是上面提到的GPU操作的大概意思。通过这样的方法我们可以得到兴趣主题分布和社交主题分布两种主题分布,利用这两种主题分布,即可以进行社交网络中的用户推荐工作。
P5
Koren Y, Bell R, Volinsky C. Matrix factorization techniques for recommender systems[J]. Computer, 2009 (8): 30-37.
- 这一篇文章是关于矩阵分解的一篇很经典的文章,发表在2009年,MF的提出是为了缓解用户物品矩阵的数据稀疏性以及为了提升推荐的准确性。
- 该方法把用户物品评分矩阵拆解成两个矩阵,分别是用户矩阵P和物品矩阵Q。用户矩阵P中的每一行都是一个用户向量表示,物品矩阵Q中的每一列都是一个物品向量表示,我们使用得到的P中的第 i 行和Q中的第 j 列相乘可以得到用户 i 对物品 j 的一个预测评分值。
- 在训练的时候,通过不断的缩小实际值与预测值的一个最小平方误差我们可以训练出最后的P和Q矩阵。
P6
Hu Y, Koren Y, Volinsky C. Collaborative filtering for implicit feedback datasets[C]//2008 Eighth IEEE International Conference on Data Mining. Ieee, 2008: 263-272.
- IF-MF这篇工作也是一篇非常经典的工作,是上一篇论文的同一个作者在ICDM上于2008年发表的。这一篇论文的提出主要是为了处理隐性反馈数据,隐性反馈数据在现实生活中其实是比显性反馈数据要多很多的,所以我们应该去充分的利用这份数据去进行推荐工作,但是目前来说,我们对于隐性反馈数据的利用率不是很高,主要是因为隐性反馈数据并不能和显性反馈数据一样去显性的表示出用户的偏好。
- 但是作者认为隐性反馈数据的数值大小多少能够反映出用户对物品的偏好,比如这篇论文中利用的数据集是作者爬取的一个关于用户看电视节目的这么一个隐性反馈数据集,按照现实的理解,如果数据显示用户观看某一个电视节目1-2次,那么有可能是因为用户喜欢这个电视节目,也很有可能只是因为用户换台的时候经过或者无聊的时候在这个电视节目上做了停留,我们确实不能从这份数据中获取到用户的一个偏好。但是若是用户观看某个电视节目10多次呢?这确实是能够充分体现出用户对这个电视节目的一个喜好程度的!
- 基于此,作者提出了一个叫置信程度的东西,置信程度在这里用C_ui来表示。如果某一条隐性反馈数据能够反映用户偏好的话,则置信程度值会高,否则就会低,而这里的置信程度值完全和隐性反馈值是成正相关的~(正如上面的公式所示 ~)
P7
Zhao G, Lee M L, Hsu W, et al. Community-based user recommendation in uni-directional social networks[C]//Proceedings of the 22nd ACM international conference on Information & Knowledge Management. ACM, 2013: 189-198.
- 这篇工作是2013年发表在CIKM上的一篇工作。这篇工作关注的是社交网络上的用户推荐任务,由于关注者-被关注者矩阵非常稀疏,利用普通的MF进行矩阵分解操作并不能缓解准确率不高的事实。
- 作者提出是否可以把该关注者-被关注者矩阵按照用户兴趣分成多个小矩阵,然后再来进行矩阵分解呢?
- 事实上是可以的,所以作者最后利用第一页提及到的LDA技术来获取到所有用户的关注者们的一个兴趣主题分布以及兴趣主题分布下的用户群体。再利用兴趣主题分布下的用户群体去进行小矩阵的划分,最后再在每个小矩阵上面进行矩阵分解。结果显示,效果挺好。
P8
Xu K, Zheng X, Cai Y, et al. Improving user recommendation by extracting social topics and interest topics of users in uni-directional social networks[J]. Knowledge-Based Systems, 2018, 140: 120-133.
- UIS-MF这篇工作也是用来处理社交网络上的用户推荐任务。这篇论文提出的其中之一原因与CB-MF原因一致,即由于关注者-被关注者矩阵非常稀疏,利用普通的MF进行矩阵分解操作并不能缓解准确率不高的事实,另外一个原因是CB-MF也没有考虑到的,即关注者关注被关注者可能是因为兴趣原因,但仍然有可能是因为社交原因,因为在线下认识的朋友,我们倾向于在线上也是朋友,而这一点在目前的论文中都没有被考虑到。
- 使用基于原始LDA得到的兴趣分布下的用户群体显然是很粗糙的,如果我们能够使用改进的UIS-LDA进行训练,则我们可以得到兴趣分布下的用户群体以及社交分布下的用户群体,基于这两个群体去进行小矩阵的划分,会比前者考虑的更加细致,得到的群体矩阵更加‘精致’和‘准确’,最后用户推荐任务的准确率也会更好。
P9
Xu K, Cai Y, Min H, et al. Top-N Trustee Recommendation with Binary User Trust Feedback[C]//International Conference on Database Systems for Advanced Applications. Springer, Cham, 2018: 269-279.
- 在信任网络中,用户去信任并且关注某一个人有时候并不仅仅是因为用户本身的一个兴趣原因,也有可能是因为被关注者本身影响力很高值得信任的原因。而现有的大部分做法,不管是在社交网络中也好,或者是在信任网络中也好,都只考虑了关注者(信任者)本身兴趣偏好,而没有考虑过被关注者(被信任者)所拥有的影响力的原因。
- 作者提出这个想法之后,对原始的LDA进行了改进操作,在工作UIS-LDA中我们只输入了用户关注者们表示的文档,得到了一个用户关注者的兴趣主题分布,而这里,我们对LDA进行训练,分别输入两个文档,一个是信任者的被信任者们的一个文档表示,另一个是被信任者的信任者们的一个文档表示,由此我们可以得到两个主题分布,分别是信任者们的兴趣分布,以及被信任者们的一个影响力分布,同时我们可以获得这两个分布下的用户分布。
- 利用该用户分布,我们可以参照CB-MF的做法,划分小矩阵群体,把大的信任者-被信任者用户矩阵划分成很多的小的兴趣矩阵以及影响力矩阵,分别进行矩阵分解操作。
P10
Rendle S, Freudenthaler C, Gantner Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]//Proceedings of the twenty-fifth conference on uncertainty in artificial intelligence. AUAI Press, 2009: 452-461.
- bpr 这篇论文是在08年左右被提出来的,它的全称叫做贝叶斯个性化排序,此方法的提出主要是针对当时的TOPN推荐任务,当时的TOPN推荐任务主要是取预测评分的TopN来进行推荐,而这些预测评分基本上都是利用前面提及到的通过降低实际值与预测值之间的最小平方差而求到的,而事实上,这样求出来的预测评分高低并不能代表用户心目中的一个排序的高低!这样的排序是没有用的,所以你会看到即使我们的RMSE等指标都很好,但是准确率以及召回率等TopN评价指标都很低。
- 所以作者提出的BPR专门针对TopN的排序任务,训练也是训练排序而不是训练预测评分值,那么怎么样去操作呢?作者提出了以下假想,他提出如果你面对 i 物品和 j 物品的时候选择了 i 物品,则表示相对于 j 物品来说,你更喜欢 i 物品。所以我们的做法是在训练的时候加大用户对 i 物品的喜欢程度和对 j 物品喜欢程度的一个差值,并且这个差值越大越好。
- 上面的公式是bpr的通用公式,可以把它套在任何一个现存的方法上进行训练。
P11
- 这就是bpr套上MF进行梯度下降训练的一个公式。(虽然我并不知道公式是怎么推出来的,但是我会直接用啊)
P12
Zhao T, Mcauley J, King I, et al. Leveraging Social Connections to Improve Personalized Ranking for Collaborative Filtering[C]. conference on information and knowledge management, 2014: 261-270.
- 这篇论文是2014年发表在CIKM上的一篇工作,这篇工作第一次把社交网络关系加入到了BPR的猜想中,该作者认为用户都会更加倾向于用户朋友喜欢的东西,而目前的很多工作并没有考虑到这一点。
- 所以SBPR提出了以下两个猜想,1、用户更加喜欢自己有过正向反馈的物品而不是有过负向反馈或者没有过反馈的物品(与BPR的猜想一致); 2、用户更加偏向于用户的朋友喜欢的物品而不是自己有负向反馈或者没有反馈的物品。
- 这两点猜想也就是PPT里面显示的公式。所以在训练的时候,不断的去加大这两个猜想的差值~
P13
Xu K, Xu Y, Min H, et al. Improving Item Ranking by Leveraging Dual Roles Influence[J]. IEEE Access, 2018, 6: 57434-57446.
- 这一篇工作是实验室老师在2018年发表的,作者把信任网络加入到了BPR猜想中,因为作者认为用户选择某一个物品不仅仅会受自己信任的人所影响,也会受自己不信任的人所影响,所以这两点因素都应该要被考虑进去。
- 于是作者提出了以下三个猜想:1、用户更加倾向于自己喜欢的物品而不是信任他的人喜欢的物品;2、用户更加倾向于自己喜欢的物品而不是他信任的人喜欢的物品;3、用户更加倾向于信任他的人喜欢的物品而是不是自己不喜欢并且他信任或者信任他的人都不喜欢的物品。
- 基于以上三点猜想,就可以直接进行训练得到想要的参数P矩阵和Q矩阵。
P14
Xu, Y.; Xu, K.; Cai, Y.; Min, H. Leveraging Distrust Relations to Improve Bayesian Personalized Ranking. Information 2018, 9, 191.
- 这一篇工作同样是在BPR算法上的改进,在以往的算法中往往都只考虑了利用信任信息,比如前一篇文章BPRDR,而没有人利用过用户之间的不信任信息。而事实上,利用这一块信息也是至关重要的,利用用户之间的不信任信息可以帮助用户排除掉用户不信任的人喜欢的物品。
- 基于以上猜想,作者把物品分为了四种类型,分别是:1、Positive feedback,这一类物品是用户有过用户行为的物品;2、Trust feedback,这一类物品是用户没有过用户行为的物品,但是至少有他的一个信任者对该物品有过用户行为;3、Distrust feedback,这一类物品是用户和用户信任者都没有过用户行为的物品,但是至少有一个用户的不信任者对其有过用户行为的物品;4、Neutral feedback,这一类物品是用户和用户信任的人以及用户不信任的人都没有过用户行为的物品;
- 所以作者提出了以下三个猜想:1、用户更加倾向于喜欢有过Positive feedback的东西而不是有过Trust feedback的东西;2、用户更加倾向于喜欢有过Trust feedback的东西而不是有过Neutral feedback的东西;3、用户更加倾向于喜欢有过Trust feedback而不是有过Distrust feedback的东西;
- 基于以上三点假想,然后可以使用梯度下降进行训练得到想要的参数值。
P15
Ning X, Karypis G. Slim: Sparse linear methods for top-n recommender systems[C]//2011 IEEE 11th International Conference on Data Mining. IEEE, 2011: 497-506.
- 这一篇论文是2011年发表在ICDM上的一篇工作。论文的提出主要是为了提升推荐的质量以及效率,针对的任务是TopN推荐,作者提出他的这个工作更加适用于实时的应用上,因为它的速度真的很快。
- 主要是通过一个辅助的稀疏的coefficient matrix来提升推荐质量,这个矩阵也是在训练时学习到的,公式如PPT上所示(应该挺容易看懂的,虽然效果很好,但是我不太知道这样做的原因是什么,可能是还没看懂)
写在后面
好了,这就是我最近看的14篇论文,如果有表达有误的,欢迎大家指正,毕竟自己学习的还不深~
链接:https://pan.baidu.com/s/1oRkgUBRSDDEpFNphXWj6UA
提取码:hwlp