【第六章:项目实战之推荐/广告系统】1.推荐系统基础与召回算法-(7)召回算法之u2u2i: Graph Embedding(Node2Vec、DeepWalk、GraphSAGE)算法

第六章:项目实战之推荐/广告系统

第一部分:推荐系统基础与召回算法

第七节:召回算法之u2u2i: Graph Embedding(Node2Vec、DeepWalk、GraphSAGE)算法原理与精讲

在推荐系统中,召回是“从全量候选中快速筛出与你最相关的 Top-N 候选集合”。当用户与物品之间存在“图结构关系”时(例如用户共同点击、共同收藏、共同购买、共同浏览等),图表示学习(Graph Embedding)就成为一种非常强大的召回技术路线。本节我们将系统拆解:

DeepWalk → Node2Vec → GraphSAGE

理解它们如何把图中的点(item/user)转成向量,再用于u2u / i2i / u2u2i 召回场景


1. 图召回的来源:为什么是 Graph Embedding?

推荐系统中常见召回方法:

方法特点局限
协同过滤 CF简单有效稀疏、冷启动弱
i2i / u2i 基于共现工程可落地只看局部关系
双塔召回效果稳定仅建模用户和物品,图关系利用不足
Graph Embedding(图召回)利用社交关系、行为关系、时序关系,能挖掘“潜在结构”需要建图,训练成本高

图召回最核心一句话:

让“相连关系强的节点”在向量空间里越靠越近,用距离找 Top-K 完成召回


2. 图召回适用的经典场景

召回目标:u2u2i

用户 → 找相似用户 → 找相似用户喜欢/行为过的物品。

适用场景包括:

  • 同看推荐(看相同电影的人)

  • 同买推荐(买相同商品的人)

  • 同收藏推荐(收藏行为稠密)

  • 社交推荐(关注网络)

  • 教育 / 广告 / 资讯推荐(阅读轨迹相似)

其中图构建一般形式为:

User — Item — User — Item — User ...

或压缩成 Item 图:

Item — co_click — Item
Item — co_buy   — Item
Item — tag      — Item

3. 三种算法的直观类比

算法本质思想训练方式优点缺点
DeepWalk图 = 语料,随机游走当 skip-gramWord2Vec简单有效只随机,结构表达弱
Node2VecBFS / DFS 可控游走权衡Word2Vec可表达“结构相似”或“邻居相似”参数多
GraphSAGE聚合邻居特征(GNN)minibatch 训练可 inductive,工业强训练复杂但最强

一句话区别:

  • DeepWalk:不加思考走(Random Walk + Word2Vec)

  • Node2Vec:有策略地走(p/q 控制 BFS/DFS)

  • GraphSAGE:不走了,我聚合邻居就能学到结构


4. DeepWalk 原理(最适合 i2i 图)

核心 pipeline:

图 → 随机游走生成序列 → Word2Vec → 得到节点 embedding

本质:把节点当词,把随机游走序列当句子

类比 NLP在图中的含义
word节点
sentence随机游走路径
corpus图上的所有游走序列

优点:简单、高效、适合电商/视频共现召回
流程图如下:

random walk → skip-gram → embedding → faiss ANN → recall Top-K

5. Node2Vec 原理(结构表达更强)

Node2Vec 核心 = DeepWalk + 可控随机游走

参数:

参数含义
p回到原节点的概率
q更远 or 更近搜索的倾向

q>1 偏 BFS (更像同类 item)
q<1 偏 DFS (更像结构 role 相似)

适用两个召回需求:

需求选择
找同类 itemBFS(q>1)
找功能角色相似 itemDFS(q<1)

6. GraphSAGE 原理(最强,工业可扩展)

核心思想:

在节点自身特征 + 邻居特征聚合下,学习节点 embedding

通俗理解:不是走路径,而是:

item_vec = agg(item + neighbors)

常用聚合器:

聚合器特点
Mean最常用最快
Pooling表达更强
LSTM-Aggregator表达最强但慢

优势:

泛化能力强(新节点冷启动有解
mini-batch 训练,适合大规模工业化
与 GNN 接轨


7. 工程实战 Pipeline(生产可落地)

图召回完整流程如下:

行为日志 → 共现建图 → DeepWalk/Node2Vec/GraphSAGE → embedding → ANN 检索(Faiss) → Top-K → 进入排序

召回代码示例(最简 DeepWalk):

from gensim.models import Word2Vec

walks = random_walk(graph, walk_length=20, num_walks=10)
model = Word2Vec(walks, vector_size=128, window=5, sg=1)
embedding = model.wv

ANN 检索示例(Faiss):

import faiss
faiss_index = faiss.IndexFlatL2(128)
faiss_index.add(embedding_matrix)
D, I = faiss_index.search(user_vec, 50)  # Top 50

8. 总结:三者如何在推荐系统中选型?

场景最佳选择
电商/视频共现 i2iDeepWalk / Node2Vec
社交网络 / 图结构强Node2Vec
工业级召回(新用户/新节点)GraphSAGE(企业最常用)

一句最重要的落地建议:

中小规模用 Node2Vec,大规模工业用 GraphSAGE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值