之前学习过几个推荐业务,总结一下。首先,好友推荐业务
好友推荐已经是很常见的业务了,很多软件,我们熟知的qq、微博等社交软件都有该业务。

上图是我画的一个简单的好友关系图,双向箭头表示互为好友关系。我们已分析小明的推荐好友为例分析。
首先,小明的直接好友有:小蓝,小灰,小红,所以,可能推荐给小明的好友就是剩下的小黑或者小白(这里我们分析的是最可能被推荐的一个),所以到底是小黑还是小白呢?
对于这种简单的图,是可以直接从图中看出来的,答案就是:小白
具体分析之前需要知道一个概念:FOF关系,它是指同一个人的任意两个朋友之间就是一对FOF关系。所以,从图中可以看出小明和小黑之间有两对FOF关系:小明-(小蓝)-小黑、小明-(小灰)-小黑,而小明和小白间有三对FOF关系:小明-(小蓝)-小白、小明-(小灰)-小白、小明-(小红)-小白。所以,相比较而言,小白是更可能推荐给小明的好友。
当然对于这种简单的图可以直接看出来,但是具体业务上涉及的节点非常多,肉眼是直接看不出来的,而我们从上述简单案例可以分析出好友推荐的核心思想。就是寻找所有的FOF关系,当给某一个用户推荐好友时,统计出该用户和其他所有非直接好友之间的FOF关系的数量,然后降序排序,取TopN推荐。
需要注意的一点:我们在统计FOF关系时,比如小明-小黑和小黑-小明是一个FOF,而不是两个。
具体代码在我的github上有:https://github.com/yaohuaji/MapReduceStart

推荐系统(一)好友推荐相关推荐

  1. 推荐系统常用的推荐算法

    转载自  推荐系统常用的推荐算法 一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI> ...

  2. 社交网络中基于张量分解的好友推荐

    社交网络中基于张量分解的好友推荐 摘要 引言 相关研究 问题描述 所提好友推荐方法 实验验证 结论 摘要 社交网络中快速增长的用户对现有好友推荐系统提出了挑战.本文我们用张量分解模型基于用户的标签行为 ...

  3. [Spark好友推荐]

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

  4. 浅谈推荐系统之内容推荐

    推荐系统概念相关 维基百科定义: 推荐系统是一种信息过滤系统,用于预测用户对物品的"评分"或"偏好". 推荐系统近年来非常流行,应用于各行各业.推荐的对象包括: ...

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

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

  6. 推荐系统组队学习——推荐系统概述

    文章目录 一.推荐系统简介 二.常用评测指标 1. 用户满意度 2. 预测准确度 3. 覆盖率 4. 多样性 5. 新颖性 6. AUC曲线 三.召回 1.召回层在推荐系统架构中的位置及作用 2.多路 ...

  7. 大数据workshop:《云数据·大计算:海量日志数据分析与应用》之《社交数据分析:好友推荐》篇...

    大数据workshop:<云数据·大计算:海量日志数据分析与应用>之<社交数据分析:好友推荐>篇 实验背景介绍 了解更多2017云栖大会·成都峰会 TechInsight &a ...

  8. 使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户、项目的协同过滤推荐算法实现MusicRecommendSystemWeb

    使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户.项目的协同过滤推荐算法实现MusicRecommendSystemWeb ...

  9. 【山科OJ】Problem A: 社交网络的好友推荐

    Description Jack同学在人人网上注册了一个用户,发现人人网需要回答一些问题,而后网站根据自己的回答向自己推荐了一些具有相似回答的网友.Jack同学恰好正在学习编程,想编写一个程序来模拟这 ...

最新文章

  1. 使用按钮控制HTML5背景音乐开关
  2. 数据库SQL的分组函数
  3. manjaro21 linux安装vscode
  4. PLT redirection through shared object injection into a running process
  5. POJ2018-Best Cow Fences【实数二分答案】
  6. 怎么用vc采集ni卡数据_8bit,200MS/s 低成本模拟输入高速采集卡FCFR-PCI9850
  7. linux下iptables详解
  8. CodeRunner破解
  9. QT之Button插入图片
  10. 国务院:推进太阳能光伏项目国际合作
  11. 基于javaweb+SpringBoot+JPA图书馆座位占座预约管理系统(管理员、老师、学生)
  12. 【通俗易懂】什么是机器学习
  13. 高富帅seajs使用示例及spm合并压缩工具露脸
  14. CSP应用开发-CryptAPI函数库介绍
  15. Python networkx 根据节点坐标来画网络图
  16. oracle如何写不等于号,Oracle中不等于号问题-Oracle
  17. 用MATLAB做矩阵运算
  18. keil如何添加STM32系列
  19. Spring Security学习 详细
  20. centos7安装PostgresSQL14+PostGIS3.2记录

热门文章

  1. uni-app 如何重启app
  2. 神界危机3.4隐藏英雄密码_这就是我解决密码记忆危机的方法
  3. 成为伟大,影响伟大---张一鸣
  4. OMG! 这款大屏可视化神器公测了
  5. 音乐制作软件-Ableton Live Suite 10.1.9 macOS
  6. Long-term Recurrent Convolutional Networks for Visual Recognition and Description
  7. 文本的换行与包裹 之 真的很少使用的 hyphens?
  8. Js声明数组的四种方法
  9. win10家庭版调出组策略_Win10自带杀毒软件怎么关闭?2招教你彻底关闭Windows Defender...
  10. 手写jQuery轮播图(无缝回到第一张)