微博好友推荐算法-SALSA
在微博上,你关注的人会是谁?微博网络中几亿用户,如何在里面找出你感兴趣的人推荐给你? 从系统层面上来看,这个是很有挑战性的工作,即涉及到好的推荐算法能把握用户的喜好和关注点,同时也要良好计算系统能够快速响应。这里主要谈论微博好友推荐算法部分(Twitter上的推荐算法)。
首先看下面的用户关注之间的二部图(1),左边是用户圈,就是用户的信任圈子,右边的是用户信任圈集合用户关注的所用用户,我们所要做的是从这些节点中找到最能吸引眼球的关注者。
如何构建用户的信任圈?给定一个用户,已知该用户的关注用户群,我们可以通过类似personalized PageRank 随机游走方法,设定随机游走步数和重启概率,忽视低概率节点,采样那些大度节点。从当前节点出发,进行随机游走过程,那些到达概率高的节点中取一定数量节点作为改节点信任圈。
完成节点信任圈的构造后,可以构建出图1的网络,通过SALSA算法迭代算出右边节点(我们称作:authorities)的得分,分数高的节点用户关注的概率越高。SALSA也是类似pagerank,HITS的随机游走系列的算法,它是两方向随机游走过程,它最早是出现在网页搜索排序算法中。
(1)
下面重点介绍下SALSA算法
介绍SALSA算法之前,我们必须先了解下HITS算法。
(1)HITS算法最早是用于搜索排序中的,给点一个query,搜索引擎会返回一些关键词相关网页,如何确定这些网页的重要性呢?
HITS算法是这样的:
首先把那些根据关键相关返回网页作为根集合S,再由S集合网页节点的链入和链出网页节点派生出结合C,结合C包括S,链入和链出节点集合。
C中的每个节点分配一对权重<h(s),a(s)>, 节点h(s)权重由节点链出的节点的a(s)决定,a(s)由节点的链入节点的h(s)决定。
算法的迭代过程如下:
从上面可以看到I操作,即网页的a权重向量:
O操作可以看作是:
h = Wa
其中,W是图连接矩阵。
关于HITS算法收敛性,可以从如下变换形式来得出:
当算法收敛时候,a其实就是对应矩阵A那个最大特征值对应的特征向量的归一化形式,同样,h也是H矩阵那个最大特征值对应的特征向量的归一化形式。
(2) SALSA算法
SALSA算法和HITS算法初始部分一样,构建相同的集合集C和彼此的链接关系。
SALSA一种随机游走过程,但是不同经典的随机游走。它涉及到把一个网页节点看成2种不同类型节点:hub和authority,随机游走对应着这样两种不用类型的Markov链:hub链和authority链,状态转移为网页前向和后向。算法构建方式如下:
首先是把构建一个无向图,原图节点分为2类,然后构建边。
这样从某个节点出发,进行两个方向的随机游走。h和a方向的状态转移矩阵:
对于以上的形式可以通过如下的矩阵相乘的方式展现:
有了H和A矩阵,就可以知道节点集合最终的h和a向量:和HITS一样,h和a对应H和A的最大特征值对应的归一化特征向量。其实,计算h和a可以参照HITS,进行迭代求解。
参考文献:
[1]WTF: The Who to Follow Service at Twitter
[2]Lempel R, Moran S. SALSA: the stochastic approach for link-structure analysis[J]. ACM Transactions on Information Systems (TOIS), 2001, 19(2): 131-160.
微博好友推荐算法-SALSA相关推荐
- 社交网络SNS的好友推荐算法
花了几天看了些做社交的好友推荐,现在很多App都有社交场景,本身就是做用户的场景,所以以后肯定要在这块有一些应用.像早期的论坛类的更偏重资讯类的信息,后来像优酷土豆这又是做视频类,网易云音乐做音乐类. ...
- java 好友推荐 算法_基于jsp的好友推荐-JavaEE实现好友推荐 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的好友推荐, 该项目可用各类java课程设计大作业中, 好友推荐的系统架构分为前后台两部分, 最终实现在线上进行好友 ...
- 共同好友推荐java_一种社交网络下的好友推荐算法
A New Link Prediction Algorithm Based on Social Network ZHANG Mengzhe 1 张萌哲 女 硕士研究生,主要研究方向:社交网络和个性化推 ...
- 微博推荐算法实践与机器学习平台演进
分享嘉宾:申恩兆.李志然 新浪微博 编辑整理:赵文娇.Hoh 出品平台:DataFunTalk 导读:微博作为全球领先的中文广场社交平台,拥有海量用户与数据.在从海量数据中挖掘有价值的信息,为业务赋能 ...
- [Spark好友推荐]
好友推荐概念 目前大量的社交网站上,它们都有一个共同的特性,就是可以在好友关系的基础上推荐更多的联系人.例如,QQ的"你可能认识的人"特性允许用户查看它们可能联系的人.基本思想就是 ...
- Hadoop2.6.0+Linux Centos7+idea环境下:MapReduce二度好友推荐案例
目录 一.问题描述 二.intellij idea中编写代码+打包项目 三.xftp中上传jar包到Linux 四.hadoop中准备输入数据+运行jar包+查看输出结果 一.问题描述 使用MapRe ...
- 转载:微博推荐算法简述
本文来自于:http://www.wbrecom.com/:图就不贴了,有兴趣去看原文. 在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法.有这样一些问题:推荐系统适用哪些场景?用来解决什么问题 ...
- 微博多尺度序列推荐算法实践
今天给大家分享新浪微博机器学习算法专家谌贻荣博士在2021年全球机器学习ji s户大会上所做的分享<微博多尺度序列推荐算法实践.pdf>,关注推荐算法及其实践的伙伴们别错过啦!(到省时查报 ...
- 【实践】微博多尺度序列推荐算法实践.pdf(附下载链接)
今天给大家分享新浪微博机器学习算法专家谌贻荣博士在2021年全球机器学习ji s户大会上所做的分享<微博多尺度序列推荐算法实践.pdf>,关注推荐算法及其实践的伙伴们别错过啦!(到#小程序 ...
最新文章
- python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
- oracle安装报错emca,求助:oracle 安装问题
- 谈谈java面向对象思想_对于Java面向对象思想的理解
- JUnit:使用Java 8和Lambda表达式测试异常
- 在linux怎样删除文件夹里,linux删除文件夹(里头有文件)
- windows 启动exe程序前注入dll(c++)
- eclipse中选中一个单词 其他相同的也被选中 怎么设置
- 【开源工程】之YUVPlayer1.6
- SSM框架(Spring + Spring MVC + Mybatis)搭建
- 基于PHPExcel的常用方法总结
- java框架面试题及答案,年薪50W
- 20181225面试
- 2019程序员好书盘点:这些畅销新书的时间轴你对上没?
- hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
- python之常用内置函数(zip和sum)
- 打开组策略 计算机配置,组策略怎么打开? 打开组策略命令与4种方法-电脑教程...
- 光耦隔离的作用是什么?
- 关于nmap -O扫描中出现索尼手机的一份调研
- html 设置元素向左浮动
- 支持软件是计算机软件,()是计算机必备的支持软件。