首页>博客>行业科普>抖音/小红书的关系链推荐,为什么离不开图数据库做实时子图计算?
抖音/小红书的关系链推荐,为什么离不开图数据库做实时子图计算?

2026 年第二季度,某头部短视频平台的推荐团队做了一次架构复盘。平台日活 3 亿,每天产生约 80 亿次内容消费行为——点赞、评论、转发、收藏、完播、跳过。这些行为不仅发生在用户和内容之间,还发生在用户和用户之间——关注、互粉、@、合拍、转发到私信。推荐系统的核心逻辑从早期的"内容标签匹配用户标签"演进为"通过用户的关系链找到他可能感兴趣的内容"——你的好友点赞了什么、你关注的人收藏了什么、和你互动过的人最近在讨论什么。这就是关系链推荐。
但关系链推荐在工程上面临一个根本性挑战:它需要在用户发起请求的 100 毫秒内,从一张包含 3 亿用户节点、80 亿行为边、200 亿社交边的巨型图中,实时提取与当前用户相关的子图(通常 3-5 跳范围、覆盖数千到数万节点),在这个子图上运行推荐算法,再返回排序后的内容列表。传统方案用离线计算预生成推荐列表——但关系链是动态的,你好友 3 秒前点赞的视频无法出现在你的预生成列表里。用关系型数据库做实时多跳查询——3 跳 JOIN 在亿级数据上需要数秒到数十秒。关系链推荐的本质是实时子图计算——从一张百亿级边的图中,在请求到达的 100 毫秒内,提取、计算、排序、返回。这不是"查询优化"的问题,而是"数据结构选择"的问题。图数据库不是推荐系统的性能加速器,而是关系链推荐的唯一原生计算引擎。
一、关系链推荐为什么是子图计算问题
要理解为什么图数据库是关系链推荐的核心引擎,需要先拆解"关系链推荐"的计算本质——它不是一次查询,而是对一个动态子图的多维计算。
传统推荐的逻辑是"点对点匹配"。 内容推荐早期依赖协同过滤——找到与目标用户行为相似的一群用户,把他们喜欢而目标用户没看过的内容推过来。这种计算的本质是矩阵乘法——用户-内容矩阵的转置乘以自身,得到用户-用户相似度矩阵。在离线计算场景下,这个矩阵可以预先计算好存储。但协同过滤有两个致命缺陷:第一,它只考虑了用户和内容的直接关系,忽略了用户之间的社交关系——你和好友的兴趣相似度远高于你和一个陌生人的相似度,但协同过滤一视同仁。第二,它无法处理实时信号——你好友 3 秒前点赞的视频,在预计算矩阵中不存在。
关系链推荐的逻辑是"图上的多跳推理"。 关系链推荐引入了用户之间的社交关系——关注、互粉、互动。推荐算法不再只看"用户-内容"矩阵,而是看一张包含用户节点、内容节点、社交边、行为边的异构图。当用户 U 打开 App 时,推荐系统需要回答的问题变成了一个图遍历问题:找到 U 的 1 跳好友(关注的人)、2 跳好友(好友的好友)、这些好友最近 24 小时内点赞/评论/转发的内容、这些内容与 U 的历史兴趣的匹配度、U 与这些好友的互动强度对推荐权重的影响。这本质上是从 U 出发、在异构图上做 3-5 跳遍历、提取一个包含数千节点的子图、在子图上运行排序算法——这就是实时子图计算。
| 推荐范式 | 数据模型 | 计算方式 | 实时性 | 社交关系利用 |
|---|---|---|---|---|
| 协同过滤 | 用户-内容矩阵 | 离线矩阵分解 | 小时级延迟 | 不利用 |
| 内容匹配 | 标签向量 | 实时向量检索 | 秒级 | 不利用 |
| 关系链推荐 | 异构图(用户+内容+社交+行为) | 实时子图遍历+排序 | 百毫秒级 | 多跳社交关系 |
| GraphRAG推荐 | 异构图+大模型 | 子图提取+语义推理 | 百毫秒级 | 多跳+语义推理 |
关系链推荐的计算过程可以形式化描述:给定用户 U 和时间窗口 T,从图数据库中提取以 U 为中心、3-5 跳范围内的子图 G_U——G_U 包含 U 的社交邻居、这些邻居在 T 内的行为、这些行为指向的内容节点、内容节点的标签和属性。然后在 G_U 上运行推荐算法——计算每个候选内容节点的推荐分数(社交权重 × 行为权重 × 内容匹配权重 × 时间衰减因子),排序后返回 Top-N。这个过程的全部计算必须在 100 毫秒内完成——因为用户打开 App 后等待推荐列表的时间不能超过 200 毫秒,否则跳出率显著上升。
二、图数据库如何支撑实时子图计算
图数据库对关系链推荐的支撑不是"比 SQL 快一点",而是从数据模型到计算引擎的全面重构。
异构图原生建模:四类节点 + 五类边。 关系链推荐的数据模型天然是异构图——用户节点(携带兴趣标签、活跃时段、地域等属性)、内容节点(携带类型、标签、发布时间、热度等属性)、话题节点(携带话题名、参与人数等属性)、作者节点(携带创作领域、粉丝量等属性)。五类边连接这些节点——"关注"边(用户→用户,携带关注时间)、"互动"边(用户→内容,携带行为类型、时间戳、情感极性)、"创作"边(作者→内容,携带发布时间)、"归属"边(内容→话题,携带相关度)、"提及"边(内容→用户,携带上下文)。四类节点和五类边在同一个图空间中,一次遍历即可走完"用户 U → 关注的好友 V → V 点赞的内容 C → C 的话题 T → T 下的其他热门内容 C2"——这是关系链推荐的核心路径,在关系型数据库中需要 4 张表的 4 次 JOIN,在图数据库中是一次连续遍历。
多跳子图提取:从百亿级图中百毫秒取子图。 关系链推荐的关键操作是"以用户 U 为中心,提取 3-5 跳子图"。悦数图数据库的分布式存储和并行查询引擎在百亿级边规模下,3 跳子图提取(覆盖约 5000-20000 个节点)在百毫秒内完成——这得益于 Shared-Nothing 架构下每个存储分片并行执行局部遍历,结果汇总后返回。子图提取不是全图扫描——图数据库沿边遍历,只访问与 U 相关的节点和边,I/O 量与子图大小成正比,而非全图大小。这是图数据库与关系型数据库的根本差异——关系型数据库的 JOIN 是全表扫描后过滤,图数据库的遍历是指针跳转,复杂度从 O(N) 降为 O(k^d)(k 为平均度数,d 为跳数)。
子图上实时排序:边遍历边计算。 子图提取不是最终目的——提取后需要在子图上运行推荐算法。悦数图数据库支持在遍历过程中携带计算逻辑——遍历到"互动"边时,根据行为类型(点赞 0.3 / 评论 0.5 / 转发 0.8 / 收藏 0.7)和互动强度计算行为权重;遍历到"关注"边时,根据关注时间(近期关注权重高)和互动频率计算社交权重;遍历到内容节点时,根据内容标签与用户兴趣标签的匹配度计算内容权重。遍历完成后,每个候选内容节点携带一个综合推荐分数——排序后取 Top-N 返回。整个过程在一次查询中完成——子图提取和推荐排序不是两个步骤,而是融合在一个图遍历流水线中。
三、大模型 + 图算法:推荐从"匹配"到"推理"
关系链推荐的传统逻辑是"找到好友互动的内容,按权重排序推给你"。大模型和图算法的引入,让推荐从"权重匹配"进化为"关系推理"。
PageRank 量化用户的全局社交影响力。 在社交图上运行 PageRank 算法,每个用户节点获得的分数反映"有多少人关注他,以及这些人的影响力有多高"。一个被 100 万粉丝关注的头部创作者的 PageRank 分数远高于一个只有 50 个粉丝的普通用户。推荐算法在计算社交权重时引入 PageRank——"你的好友 V 点赞了内容 C,V 的 PageRank 分数为 0.85,则 C 的社交推荐权重 × 0.85"。这意味着同样是好友点赞,高影响力好友的点赞对推荐结果的贡献更大——这与真实社交逻辑吻合。PageRank 在悦数图数据库中直接在引擎层执行,一条 nGQL 语句即可获得全图影响力分数——不需要离线预计算,新增节点和边的变化实时反映在分数中。
Louvain 识别兴趣社群做群体推荐。 社交图上运行 Louvain 社群发现算法后,用户自动划分为若干"兴趣社群"——科技数码群、美妆护肤群、母婴育儿群、户外运动群。每个社群内部用户之间互动频繁、兴趣高度重叠。推荐算法利用社群信息做两层增强——第一层,当用户 U 的直接好友互动信号不足时(新用户或低活跃用户),从 U 所属社群的其他成员行为中补充推荐候选;第二层,识别"跨社群桥梁用户"——同时属于多个社群的用户——他们的行为可以为社群之间做内容导流。Louvain 分群结果在图数据库中作为节点属性持久化,推荐查询时直接读取,不需要实时计算。
大模型做关系级推荐推理。 传统推荐算法只能回答"好友点赞了什么"——但无法回答"为什么好友点赞的内容适合你"。大模型在 GraphRAG 架构下做关系级推理——当推荐系统提取到子图"用户 U 关注了 V,V 是科技博主,V 转发了内容 C(一篇关于芯片制程的深度分析),U 的历史兴趣标签包含半导体和投资"时,大模型推理出"V 转发 C 的原因是 C 的技术深度与 V 的专业领域匹配,U 对半导体的兴趣使其大概率对 C 感兴趣,且 U 的投资标签意味着 C 中的产业分析部分对 U 有额外价值"——推荐不仅给出内容,还给出推荐理由。这个推理过程基于图数据库提取的子图结构——大模型不是在"猜",而是在子图的事实上做推理。
GraphRAG 的推荐解释链。 用户在信息流中看到一条推荐内容时,如果能看到"推荐理由"——"你的好友 @科技老王 在 2 小时前转发了这条视频,你们都关注了@半导体观察,这条内容在你们的共同兴趣圈中热度排名前三"——点击率会提升 20-35%。GraphRAG 生成这样的推荐解释链——从图数据库中提取推荐路径(U→V→C)、社交关系(U 和 V 的共同关注、互动历史)、内容热度(C 在 U 的兴趣社群中的排名),大模型把这些结构化事实组装成自然语言推荐理由。每一条推荐都附带可验证的图路径——不是黑盒排序,而是白盒推理。
四、三大实战场景:关系链推荐的落地
场景一:抖音的社交裂变推荐。 抖音的推荐核心是"社交裂变"——当一条视频被发布后,推荐系统需要快速判断它适合通过哪些社交链路传播。图数据库的做法是:以视频内容节点 C 为中心,沿"归属"边找到话题 T,沿话题边找到 T 下的活跃用户群——这些用户是 C 的第一波传播起点。每位活跃用户点赞 C 后,推荐系统沿"关注"边找到他们的粉丝——这些粉丝是第二波传播对象。整个裂变路径在图上清晰可见——C→活跃用户→粉丝→粉丝的粉丝——每一跳的传播概率由社交权重(关注时间、互动频率)和行为权重(点赞、转发、完播率)决定。图数据库在裂变过程中实时更新传播路径和权重——某条路径的转化率低于阈值时自动降权,高于阈值时加速扩散。某短视频平台部署图数据库后,热门视频的社交裂变速度提升 40%——从发布到百万播放的时间从平均 6 小时缩短到 3.5 小时。
场景二:小红书的社区种草推荐。 小红书的核心价值是"真实用户分享"——推荐系统需要识别"种草链路":用户 A 发了一篇护肤品测评笔记→用户 B(A 的粉丝)收藏了笔记并评论"求链接"→用户 C(B 的好友)看到 B 的评论后浏览了笔记→用户 C 购买了产品并发布了回购笔记。这条种草链路在图数据库中是一条 4 跳路径——A→笔记→B→C→回购笔记——每一跳携带行为类型、情感极性和时间戳。推荐系统利用种草链路做两件事:第一,识别"高种草力用户"——频繁出现在种草链路起点的用户,他们的笔记推荐权重更高;第二,预测种草路径——当新笔记发布时,沿图找到与作者历史种草链路结构相似的用户群,优先推荐给他们。某社区电商平台用图数据库构建种草链路后,笔记到购买的转化率提升 28%。
场景三:跨场景实时兴趣迁移推荐。 用户在抖音刷短视频、在小红书看笔记、在淘宝购物——同一用户在不同平台的行为构成一张跨平台行为图。图数据库统一建模——用户节点连接各平台的行为节点,行为节点连接内容/商品节点。当用户在抖音看完一条美妆视频后,打开小红书时,推荐系统沿图遍历"用户→抖音行为(看完美妆视频)→内容标签(美妆/口红)→小红书上相同标签的热门笔记"——跨平台兴趣迁移在百毫秒内完成。图数据库的动态 Schema 支持不同平台的行为边携带不同属性——抖音边携带完播率、小红书边携带收藏/评论、淘宝边携带加购/购买——统一在一张图中,一次遍历即可跨平台推荐。
五、悦数图数据库的核心支撑
关系链推荐对图数据库提出了四项硬性要求,悦数在每一项上有明确的工程支撑。
亿级多跳百毫秒子图提取。 关系链推荐的规模随用户和内容增长——亿级用户节点、百亿级行为边和社交边。推荐请求的核心操作是 3-5 跳子图提取——在百亿级图上提取数千到数万节点的子图。悦数的分布式存储和并行查询引擎在百亿级边规模下保持 3 跳子图提取百毫秒级响应——用户打开 App 后推荐列表在 200 毫秒内返回,体验丝滑无感。存算分离架构让存储和计算独立扩展——社交图持续写入新边(每秒数十万条行为边写入),查询引擎不受写入压力影响,推荐延迟稳定。
动态 Schema 兼容多元关系建模。 关系链推荐的数据模型不是静态的——新行为类型(直播打赏、短视频合拍、AI 对话互动)、新内容类型(图文笔记、短视频、直播回放、AI 生成内容)、新社交关系(粉丝团、兴趣小组、临时聊天室)不断涌现。悦数动态 Schema 允许在不停机的情况下新增节点类型和边类型——新增"合拍"边只需要定义 Schema 模板,图数据库自动索引,推荐查询立即可用。业务团队不需要为每次新功能发版做数据迁移——推荐系统随业务持续进化。
内置 PageRank 与 Louvain 推荐算法。 关系链推荐不是简单的"多跳遍历"——它需要图算法量化社交影响力和识别兴趣社群。悦数图数据库内置 PageRank、Louvain 社群发现、介数中心性等核心图算法,直接在引擎层执行——用户的全局影响力分数、兴趣社群划分、关键传播节点识别,一条 nGQL 语句即可获得算法结果,与子图遍历结果融合输出。推荐系统不需要维护独立的图算法计算平台——算法和查询在同一引擎中完成,数据零拷贝。
Text2nGQL 自然语言推荐查询。 关系链推荐的查询逻辑复杂——多跳遍历 + 行为权重计算 + 社交权重计算 + 内容匹配 + 排序——一条完整的推荐查询语句可能超过 50 行 nGQL。推荐工程师想调整推荐策略时,不需要手写复杂查询——Text2nGQL 把自然语言翻译为图查询:"找到用户 U 的 2 跳好友最近 6 小时内点赞的短视频,按好友互动频率加权排序,取 Top 20"自动翻译为多跳遍历 + 边权重计算 + 排序的复合查询语句。推荐策略迭代从"改代码上线一周"降到"改描述即时验证"。
六、从"千人千面"到"千圈千链":关系链推荐升级路线图
关系链推荐从"内容匹配"到"关系推理"的演进,是三个阶段的递进升级。
| 阶段 | 目标 | 核心工作 | 参考周期 |
|---|---|---|---|
| 第一阶段:社交图构建 | 用户-内容-社交异构图统一建模 | 节点边类型定义、社交关系导入、行为边实时写入、基础多跳推荐查询 | 4-6 周 |
| 第二阶段:实时子图推荐 | 百毫秒级子图提取+排序,社交裂变推荐上线 | 多跳子图提取优化、边权重计算流水线、PageRank 影响力评分、社交裂变路径追踪 | 8-12 周 |
| 第三阶段:关系推理推荐 | 图算法+大模型协同做关系级推荐推理 | Louvain 兴趣社群分群、GraphRAG 推荐解释链、Text2nGQL 策略即时验证、跨场景兴趣迁移 | 12-16 周 |
第一阶段解决的是"有图可查"的问题——社交图和行为图统一建模,推荐查询从多表 JOIN 变为图遍历。这是关系链推荐的数据基座——没有统一的异构图,关系链推荐无从谈起。
第二阶段解决的是"实时推荐"的问题——子图提取和推荐排序在百毫秒内完成,社交裂变路径实时追踪。用户打开 App 时看到的推荐列表不再依赖离线预计算——它基于此刻的社交图状态,你好友 3 秒前的行为已经影响你的推荐结果。
第三阶段解决的是"智能推理"的问题——图算法量化社交影响力,大模型生成推荐解释,推荐从"权重排序"进化为"关系推理"。用户不仅看到推荐内容,还看到"为什么推荐给你"——推荐透明度提升用户信任,点击率和留存率显著增长。
关系链推荐的本质不是"给用户推什么内容",而是"通过谁的关系链把内容推给用户"。传统推荐系统把用户当成孤立的个体——你看了什么就推类似的。关系链推荐把用户放在社交网络中——你的好友、你关注的人、和你互动的人,他们的行为是你兴趣的延伸。社交网络的数据原生形态就是图——用户是节点,关注和互动是边,推荐是图上的多跳推理。当推荐系统终于建在了图数据库上,关系链推荐才真正回到了它该在的计算模型里——不是把社交关系压成矩阵再做分解,而是直接在关系链上遍历、计算、推理、推荐。

