Hadoop/Spark推荐系统(四)——推荐链接(二度好友)

Django与Spark构建大数据图书推荐系统实战 推荐系统作为大数据技术的典型应用,通过分析用户行为和物品特征实现个性化推荐。其核心技术原理包括协同过滤、内容推荐和混合算法,需要处理特征工程、冷启动等关键问题。在工程实现上,Django框架与Spark分布式计算的结合,既能快速开发Web应用,又能处理海量数据。本文以图书推荐场景为例,详细解析如何构建混合推荐系统,涵盖Lambda架构设计、多数据库选型策略以及单机模拟分布式计算等实用技巧,为中小规模推荐系统开发提供可复用的解决方案。 阅读详情

思路

如果两个人有一组共同好友,但这两个人本身不是好友,那个就会推荐他们联系,最后都可以归结为查找。用户1的所有好友里两两互为推荐好友,用户1和好友的关系为直接好友。先循环所有用户的所有好友,找出全部推荐好友和直接好友,在全部推荐好友去除直接好友即为推荐好友。所有的推荐好友中会按图论中的路径数对好友有个评分,只显示推荐联系的10个人,即取top 10.

与共同好友的区别

共同好友在于计算两个朋友集合的交集,推荐好友在于计算两个朋友集合的(并集-交集)
A–>B–>C && A<>C ->A–>C 二度好友
A–>B<–C && A<>C -> A–>C C–>A 共同好友
对于单向网络,二度好友和共同好友是两种结构,对于双向网络(无向图),二度好友和共同好友是同一种网络结构。共同好友可以有共同好友数,按共同好友数进行候选的排序,二度好友同理。

输入:

P F1,F2,…Fn

算法:

map(key,friends){
	for(friend:friends){
		directFriend=Tuple2(friend,-1);
		emit(key,directFriend);
	}
	for(int i=0;j<friends.size();i++){
		for(int j=i+1;j<friends.size();j++){
			possibleFriend1=Tuple2(friends.get(j),person);
			emit(friends.get(i),possibleFriend1);
			possibleFriend2=Tuple2(friends.get(i),person);
			emit(friends.get(j),possibleFriend2);
		}
	}
}
reduce(key,values){
	Map<Long,List> mutualFriends=new HashMap<Long,List>();
	for(Tuple2<toUser,mutualFriend> t2:values){
		Long toUser=t2.toUser;
		Long mutualFriend=t2.mutualFriend;
		boolean alreadyFriend=(mutualFriend==-1);
		if(mutualFriends.containsKey(toUser)){
			if(alreadyFriend){
				mutualFriends.put(toUser,null);
			}else if(mutualFriends.get(toUser)!=null){
				mutualFriends.get(toUser).add(mutualFriend);
			}
		}else{
			if(alreadyFriend){
				mutualFriends.put(toUser,null);
			}else{
				mutualFriends.put(toUser,List<mutualFriends>)
			}
		}
	}
	String reducerOutput=formaterOutput(mutualFriends);
	emit(key,reduceOutput);
}

好友关系是对称的,边是偶数的
关注是非对称的,边不一定是偶数的

u1:u2,u3,u4
u2:u5,u6,u1
u3:u7,u8
u4:u1
u5:u2
u6:u2
u7:u3
u8:u3

map:
[u1,u2],[u2,u3,u4]
[u1,u3],[u2,u3,u4]
[u1,u4],[u2,u3,u4]
[u1,u2],[u1,u5,u6]
[u2,u5],[u5,u6]
[u2,u6],[u5,u6]
[u3,u7],[u7,u8]
[u3,u7],[u7,u8]
[u1,u4],[u1]
[u2:u5],[u2]
[u2:u6],[u2]
[u3:u7],[u3]
[u3:u8],[u3]

reduce
[u1,u2],[u1,u5,u6],[u2,u3,u4]

map
[u1],[u3,u4]
[u2],[u5,u6]

Python+Django新闻推荐系统:从爬虫到协同过滤实战 推荐系统作为解决信息过载的核心技术,通过算法模型实现用户与内容的智能匹配。其工作原理主要基于用户行为分析和内容特征提取,在电商、资讯、社交等领域有广泛应用。本文以新闻推荐场景为例,详细解析如何结合Scrapy爬虫、Hadoop分布式存储与协同过滤算法构建完整系统。针对工程实践中的典型挑战,如数据稀疏性和冷启动问题,提出采用时间衰减因子和矩阵填充等优化方案。特别在架构设计上,通过Django REST框架与Spark实时处理的组合,实现每秒300+请求的高并发处理能力,为同类项目提供可复用的技术方案。 阅读详情

相关推荐

图数据库学习路线:从Neo4j到图算法,大数据工程师成长指南

本文为大数据工程师提供了一条从0到1的图数据库学习路线入门:用Neo4j掌握图模型、Cypher查询;进阶:学习图算法(PageRank、Louvain、Dijkstra);落地:结合大数据生态(Spark、Hadoop),解决实际问题;优化:掌握性能调优和常见问题解决。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1119

第三节 Hadoop学习案例——MapReduce课程设计 好友推荐功能

Hadoop学习案例——MapReduce课程设计 好友推荐功能

qq_53114527的博客 5450

Hadoop好友推荐系统-去重后的数据存入数据库

一、去重后的数据存入数据库 1、前端展示 jsp页面 table> tr> td>label for="name">输入路径:label>td> td>input class="easyui-validatebox" type="text"

想作会飞的鱼的博客 1492

大数据Hadoop学习之——好友推荐

一、算法说明 好友关系如图: 1、直接相连的表示两个人是直接好友关系; 2、两个人有相同的好友表示两个人是间接好友(当然可能两个人同时也是直接好友,如图hello和hive)。 3、好友推荐列表就是按照两个用户的共同好友数量排名 二、MapReduce分析 1、分两步MapReduce计算完成; 2、第一步先得到用户的间接好友关系数目,注意有直接好友关系的用户需要过滤掉; 3、第二步根...

xdkb159的博客 5003

Hadoop实例:二度人脉与好友推荐

Hadoop实例:二度人脉与好友推荐,供大家一起共同分享学习。

基于hadoop的好友推荐系统

基于hadoop的好友推荐系统 使用 MapReduce 内含系统说明文件

【Hadoop】MapReduce案例——好友推荐度案例

MapReduce案例——好友推荐度案例

啥也不会~ 1973

MapReduce实现二度好友推荐算法

hadoop之MapReduce实现二度好友算法,包含输入数据demo,完整运算代码,在windows10下成功运行,输出结果为cat hello:2,hadoop:2,mr:1,world:1类似。

CentOS 7.6 下利用 Spark 1.6.1 + Scala 运行 MapReduce 案例之二度好友算法

本文主要讲解如何在 CentOS 7 下利用已经安装好的 Spark 工具运行 二度好友算法,包含二度好友算法的简单介绍和代码。

渣渣的夏天 1414

基于Hadoop的好友推荐系统.zip

人工智能-Hadoop

Geneformer实战指南:基于Hugging Face Transformers的基因序列分类模型解析

本文详细解析了基于Hugging Face Transformers的Geneformer模型在基因序列分类任务中的应用。通过介绍模型架构、数据处理流程和实战案例,帮助生物信息学研究者掌握这一前沿技术,实现高效的基因表达数据分析与分类。

weixin_28224217的博客 582

Hadoop/Spark推荐系统(一)——共同好友

输入:,mapper-input: #好友关系是对称的,整个数据的关系边是偶数 (u1,[f1,f2,f3]) (u2,[f2,f3]) (f1,[u1,f3]) (f2,[u1,u2]) (f3,[u1,u2,f1])mapper-output将一条用户的好友列表数据,拆成这个用户每个好友对为key的表示形式(key的表示字母或数字有序),value依然为好友里列表形式,共12组 ([

wang2008start的专栏 1197

HybridCLR热更新全流程实操:用Addressables实现资源+代码双热更(Unity 2021版)

本文详细介绍了在Unity 2021 LTS版本中,如何结合HybridCLR代码热更新与Addressables资源管理系统,实现资源与代码的双热更解决方案。通过环境配置、技术架构设计、实战案例和性能优化,帮助开发者解决中大型项目中的依赖管理和版本协同问题,提升游戏迭代效率。

cc789的博客 848

图数据库为何成为AI关系推理的默认底座

图数据库是一种专为高效建模和查询实体间复杂关系而设计的数据存储范式,其核心在于将‘关系’作为一等公民,通过节点、边与路径原生表达连接语义。相比SQL依赖JOIN模拟关联,图数据库采用指针跳转式遍历,使多跳推理、邻居聚合、路径发现等操作具备亚秒级响应能力。这一特性使其天然适配图神经网络(GNN)的邻接输入需求、大模型RAG中的跨文档因果链检索,以及实时风控里的动态路径分析。在AI驱动的应用架构中,图数据库并非替代SQL,而是补足其在关系密集型任务上的根本性短板——当系统需要从海量连接中挖掘隐含逻辑而非仅查询结

liangqilang的专栏 102

MIMO技术入门

MIMO:多天线技术,发射端和接收端有多个天线(注意:并不是指多个天线板,而是多套振子,每一套是一个独立的天线。) 4G:2、8天线 5G:4、64天线(64T64R) 手机也是多天线 MIMO实现效果的分类: 1)空间分集 。2)空间复用。3)波束赋形。 空间分集(space diversity) 作用:提升接收质量 利用多个天线发射或者接收一个数据流,避免单个信道衰落对整个链路的影响。(比如你的耳机坏了一只并不影响另一只) 空间复用(space multiplexing) 作用:提升速率 利

About1129的博客 2876

Hadoop/MapReduce 好友推荐解决方案

目标:如果用户A与用户C同时都跟B是好友,但用户A与用户C又不是好友,则向用户A推荐C,向用户C推荐A,同时说明A与C的共同好友有哪些 例如: 有如下的好友关系: 1 2,3,4,5,6,7,8 2 1,3,4,5,7 3 1,2 4 1,2,6 5 1,2 6 1,4 7 1,2 8 1 其中每一行空格前的元素为用户ID,空格后的元素为用户的好友ID列表 其对应的好友

陈杰 1300

3.38 工业缺陷检测实战:物体表面缺陷检测,从图像处理到深度学习

本文介绍了工业缺陷检测的完整流程,从传统图像处理到深度学习方法。首先定义了缺陷检测任务的目标和应用场景,然后详细讲解了传统图像处理方法(边缘检测、阈值分割等)和深度学习方法(分类、检测、分割模型)。文章最后总结了核心要点,提出了思考题和实践建议,建议从简单方法开始逐步优化。下一篇将介绍工业视觉基础技术——相机标定与角点检测。

yonggeit的博客 2887

[Spark好友推荐]

好友推荐概念      目前大量的社交网站上,它们都有一个共同的特性,就是可以在好友关系的基础上推荐更多的联系人。例如,QQ的“你可能认识的人”特性允许用户查看它们可能联系的人。基本思想就是:如果tom是jack的好友,而tom又是peter的好友,也就是说,tom是jack和peter的共同好友,但是jack和peter可能并不认识你。那么社交网络系统可能就会推荐jack与peter联系,又或...

程序车轮 6894

【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(五)Adapter 微调

Adapter 微调(Adapter Fine-tuning)是一种高效的参数高效微调(PEFT)方法。相较于全参数微调(Full Fine-tuning),Adapter 在预训练模型的特定层插入轻量级的可训练模块,而冻结原始模型参数,从而减少计算和存储开销。是缩放因子,控制 Adapter 输出的影响程度。设 Transformer 层的隐藏状态为。为 Adapter 层的可训练参数,为非线性激活函数,如 ReLU。为冻结的预训练模型参数,

AI科研社 184

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。............

HowieXue 薛永浩的博客 1万+

Hadoop学习之路(八):MapReduce进阶案例之寻找社交共同好友

内容简介一、需求分析二、算法分析三、编写代码1.构建Java工程,引入Maven支持2.编写第一阶段MapReduce作业代码3.编写第二阶段MapReduce作业代码4.将作业代码打包并提交到集群5.将friend.txt上传至HDFS6.运行第一阶段作业,查看结果7.运行第二阶段作业,查看结果四、总结 一、需求分析 社交软件的盛行让我们的生活越来越便捷,我们经常使用社交软件添加好友,即每个人...

萧邦主的城邦 1316

【WRF理论第十九期】内陆湖泊、水体的处理方式

【WRF理论第十九期】内陆湖泊、水体的处理方式

WW、forever的博客 358
上一篇: Hadoop/Spark推荐系统(三)——经常一起购买的商品
下一篇: tensorflow模型save和restore
wang2008start
博客等级 码龄19年 104粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值