在微博上,你关注的人会是谁?微博网络中几亿用户,如何在里面找出你感兴趣的人推荐给你? 从系统层面上来看,这个是很有挑战性的工作,即涉及到好的推荐算法能把握用户的喜好和关注点,同时也要良好计算系统能够快速响应。这里主要谈论微博好友推荐算法部分(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相关推荐

  1. 社交网络SNS的好友推荐算法

    花了几天看了些做社交的好友推荐,现在很多App都有社交场景,本身就是做用户的场景,所以以后肯定要在这块有一些应用.像早期的论坛类的更偏重资讯类的信息,后来像优酷土豆这又是做视频类,网易云音乐做音乐类. ...

  2. java 好友推荐 算法_基于jsp的好友推荐-JavaEE实现好友推荐 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的好友推荐, 该项目可用各类java课程设计大作业中, 好友推荐的系统架构分为前后台两部分, 最终实现在线上进行好友 ...

  3. 共同好友推荐java_一种社交网络下的好友推荐算法

    A New Link Prediction Algorithm Based on Social Network ZHANG Mengzhe 1 张萌哲 女 硕士研究生,主要研究方向:社交网络和个性化推 ...

  4. 微博推荐算法实践与机器学习平台演进

    分享嘉宾:申恩兆.李志然 新浪微博 编辑整理:赵文娇.Hoh 出品平台:DataFunTalk 导读:微博作为全球领先的中文广场社交平台,拥有海量用户与数据.在从海量数据中挖掘有价值的信息,为业务赋能 ...

  5. [Spark好友推荐]

    好友推荐概念 目前大量的社交网站上,它们都有一个共同的特性,就是可以在好友关系的基础上推荐更多的联系人.例如,QQ的"你可能认识的人"特性允许用户查看它们可能联系的人.基本思想就是 ...

  6. Hadoop2.6.0+Linux Centos7+idea环境下:MapReduce二度好友推荐案例

    目录 一.问题描述 二.intellij idea中编写代码+打包项目 三.xftp中上传jar包到Linux 四.hadoop中准备输入数据+运行jar包+查看输出结果 一.问题描述 使用MapRe ...

  7. 转载:微博推荐算法简述

    本文来自于:http://www.wbrecom.com/:图就不贴了,有兴趣去看原文. 在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法.有这样一些问题:推荐系统适用哪些场景?用来解决什么问题 ...

  8. 微博多尺度序列推荐算法实践

    今天给大家分享新浪微博机器学习算法专家谌贻荣博士在2021年全球机器学习ji s户大会上所做的分享<微博多尺度序列推荐算法实践.pdf>,关注推荐算法及其实践的伙伴们别错过啦!(到省时查报 ...

  9. 【实践】微博多尺度序列推荐算法实践.pdf(附下载链接)

    今天给大家分享新浪微博机器学习算法专家谌贻荣博士在2021年全球机器学习ji s户大会上所做的分享<微博多尺度序列推荐算法实践.pdf>,关注推荐算法及其实践的伙伴们别错过啦!(到#小程序 ...

最新文章

  1. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
  2. oracle安装报错emca,求助:oracle 安装问题
  3. 谈谈java面向对象思想_对于Java面向对象思想的理解
  4. JUnit:使用Java 8和Lambda表达式测试异常
  5. 在linux怎样删除文件夹里,linux删除文件夹(里头有文件)
  6. windows 启动exe程序前注入dll(c++)
  7. eclipse中选中一个单词 其他相同的也被选中 怎么设置
  8. 【开源工程】之YUVPlayer1.6
  9. SSM框架(Spring + Spring MVC + Mybatis)搭建
  10. 基于PHPExcel的常用方法总结
  11. java框架面试题及答案,年薪50W
  12. 20181225面试
  13. 2019程序员好书盘点:这些畅销新书的时间轴你对上没?
  14. hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
  15. python之常用内置函数(zip和sum)
  16. 打开组策略 计算机配置,组策略怎么打开? 打开组策略命令与4种方法-电脑教程...
  17. 光耦隔离的作用是什么?
  18. 关于nmap -O扫描中出现索尼手机的一份调研
  19. html 设置元素向左浮动
  20. 支持软件是计算机软件,()是计算机必备的支持软件。

热门文章

  1. 微信全文搜索技术优化
  2. 55+令人惊叹的复古风格海报和广告设计素材
  3. 如何将基本类型数组转换为List集合?
  4. 在报复这件事上,为什么那么多人搂不住火?
  5. 中关村计算机配置学生,中关村电脑对比参数 电脑如何配置比较好
  6. 中英文混排的括号选择问题
  7. MySQL主键重复问题解决 Duplicate entry '787192513' for key 'PRIMARY'
  8. 在html中怎么去掉自动编号,Word怎么取消自动编号 烦人的Word自动编号如何取消?...
  9. 掌握ThreadLocal的王者段位
  10. CSS学习中的瓶颈期深入分析