想象你是一名城市设计师,要为一座多元城市绘制多功能地图。这座城市里有学校、医院、商场、住宅区,人们用不同方式流动:学生乘公交去学校,病人打车去医院,顾客步行去商场。若只用一张“标注距离”的简图,你会丢失大量语义信息;只有标注了“地点类型”和“道路类型”的详细地图,才能揭示城市运转的深层规律。 异构图嵌入要解决的核心问题正是如此:把节点类型多样、关系类型丰富的数据压缩到低维向量空间,让语义相近的实体在空间中彼此靠近。它就像一位聪明的绘图师,不需要人工标注,仅靠观察“谁通过什么方式联系谁”,就能自动画出一张多功能城市地图——每个地点、每条路都获得一个向量坐标,坐标之间的距离暗示着它们的语义相似度。

岗位关联

异构图嵌入是知识图谱、推荐系统等应用的核心基础设施。掌握它,你就能让模型自动理解多类型实体间的复杂语义,在真实业务中实现精准推荐与高效推理。

目录
  1. 可视化演示
  2. 异构图基础
  3. 表示原理
  4. 经典算法
  5. 模型训练
  6. 效果评估
  7. 工程实践
  8. 应用前沿
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

异构图基础

城市里有学校、医院、商场、住宅区,每种地点都扮演独特角色。如果画图时把所有地点都画成同一种圆点、所有道路都画成同一种线,这张图虽然简洁,却丢失了关键语义——“从家到学校”和“从家到医院”是性质完全不同的联系。这种丢失,正是同构图(Homogeneous Graph)的局限。而异构图(Heterogeneous Graph)主动保留“地点的类型”和“道路的类型”,让城市信息完整呈现。

在技术语境中,异构图的形式化定义包含两个类型映射:节点类型映射函数将每个节点映射到其类型集合中的一个类别,边类型映射函数将每条边映射到关系集合中的一个类别。当一个图中同时存在两种及以上节点类型或边类型时,它就是异构图。

异构图最核心的导航工具是元路径(Metapath)。元路径是一条在类型层面定义的路径模式,它限定了游走时每一步经过的节点类型和边类型。

依托元路径,模型可以沿类型约束的路线在异构图上做随机游走,把多类型邻居关系转化为可训练的结构信号。异构图的孩子——同构图,则只是它的一种特例:当所有 $V_i$ 和 $R_i$ 都相同,异构图就退化为同构图。

P=V1→R1V2→R2⋯→RlVl+1P = V_1 \xrightarrow{R_1} V_2 \xrightarrow{R_2} \cdots \xrightarrow{R_l} V_{l+1}
元路径就像“家→公交站→公司”的通勤模板,它不指定具体是哪一站,只规定必须先走哪种路、经过哪种地点。
  1. 起点类型$V_1$ 是元路径的起点节点类型,如“用户”
    V1V_1
  2. 逐跳约束$R_1$ 到 $R_l$ 依次规定每一步的关系类型,如“购买”“关注”
    V2→R2V3V_2 \xrightarrow{R_2} V_3
  3. 路径长度$l$ 表示元路径包含 $l$ 条关系边,路径越长语义越丰富
    Vl+1V_{l+1}

表示原理

拿到一张标注了类型的城市地图后,下一步是给每个地点生成向量名片。但问题来了:学校名片的字段是“在校人数、升学率”,商场名片的字段是“日均客流、坪效”。字段含义完全不同,直接比较就像把“苹果的重量”和“苹果的颜色”做加法,没有意义。

类型专属映射是解决这个问题的标准手法。每种节点类型配备一个专属投影矩阵,把原始特征从各自的“方言空间”翻译到统一的“普通话空间”:

真实系统中,这种映射可能升级为多层非线性变换,但“先翻译再比较”的原则贯穿始终。类型映射把不同语义空间对齐后,模型才能在下游任务中同时处理多种类型的信息。这就好比城市地图把所有地点的信息统一成“经纬度+标签”的标准格式,不论它是学校还是商场,都能在同一坐标系下参与分析。

hv′=Mϕ(v)⋅hvh'_v = M_{\phi(v)} \cdot h_v
投影矩阵就像随身翻译官,每种地点类型配备一位,负责把本类型的原始信息准确译成统一语义。
  1. 原始特征$h_v$ 是节点 $v$ 的原始特征向量,如用户的年龄、性别拼接
    hv∈Rdinh_v \in \mathbb{R}^{d_{in}}
  2. 投影矩阵$M_{\phi(v)}$ 是类型 $\phi(v)$ 专属的线性变换矩阵,每种类型独享一份
    Mϕ(v)∈Rdout×dinM_{\phi(v)} \in \mathbb{R}^{d_{out} \times d_{in}}
  3. 投影结果$h'_v$ 是变换后落入统一语义空间的特征向量,可与任意类型的向量直接做相似度计算
    hv′∈Rdouth'_v \in \mathbb{R}^{d_{out}}

经典算法

有了类型地图和翻译机制,算法就要解决“如何自动学出好名片”的问题。业界主流方案可以分成三派,各有各的导航哲学。

metapath2vec 采用“按图索骥”策略:先依据元路径在异构图上做随机游走,生成一系列遵循类型约束的节点序列,再用 Skip-gram 模型学习嵌入。它的核心目标函数是最大化给定当前节点的条件下,其异构邻居出现的概率:

HAN(异构图注意力网络)采用“重点观察”策略。它引入两层注意力机制:节点级注意力决定元路径内哪些邻居更值得关注,语义级注意力决定多条元路径之间如何加权融合。公式中的注意力系数如下:

RGCN(关系图卷积网络)走的是“分类施策”路线。它把每种关系类型都配一个独立的变换矩阵,消息传递时先按关系类型分别聚合邻居信息,再加总更新:

三派算法各有千秋:metapath2vec 依赖元路径质量、HAN 擅长多语义融合、RGCN 能处理复杂关系网络。实践中常根据数据特点组合使用——就像规划城市交通时,既需要固定公交线路,也需要智能调度中心,还需要分车型管理。

max⁡f∑v∈V∑t∈N(v)log⁡p(t∣v;f)\max_f \sum_{v \in V} \sum_{t \in N(v)} \log p(t | v; f)
RGCN 就像城市交通局为公交、地铁、步行分别制定通行规则,各走各道,互不干扰,最后汇总成一个完整的出行方案。
  1. 关系遍历外层 $\sum_{r \in \mathcal{R}}$ 遍历所有关系类型,每种关系单独处理
    ∑r∈R\sum_{r \in \mathcal{R}}
  2. 邻居聚合内层 $\sum_{j \in N_i^r}$ 只聚合与节点 $i$ 具有关系 $r$ 的邻居,并用度数 $c_{i,r}$ 归一化
    1ci,rWr(l)hj(l)\frac{1}{c_{i,r}} W_r^{(l)} h_j^{(l)}
  3. 自连接$W_0^{(l)} h_i^{(l)}$ 保留节点自身的信息,防止深层传播导致自身特征丢失
    W0(l)hi(l)W_0^{(l)} h_i^{(l)}

模型训练

地图画好了,名片也设计好了,接下来是“验收调整”环节:如何让名片上的数字越调越准?这里的关键是训练信号的设计。如果只告诉模型“相邻节点要靠近”,模型会偷懒——把所有节点都挤到同一个位置,就像在学生没有任何反例的情况下,他们可能把“相似”理解为“完全相同”。

负采样(Negative Sampling)是打破这种偷懒的关键。训练时不仅拉近正样本对,还随机抽取一批“负样本”(与中心节点无关的节点)并推远它们。最终损失函数由两部分构成:

训练时还需配合优化策略:使用 Adam 等自适应学习率优化器加速收敛,设置合适的负采样数量(常见取 5~20 个),并控制每个 epoch 的采样比例来平衡类型分布。训练好的嵌入向量就是每个节点的“多功能名片”——它把拓扑结构、类型语义和邻居关系压缩成一组低维实数。城市里每块地皮的名片经过多轮迭代,位置不断微调,最终形成稳定布局。

L=−log⁡σ(uTvc)−∑n∈Nneglog⁡σ(−uTvn)\mathcal{L} = -\log \sigma(u^T v_c) - \sum_{n \in N_{neg}} \log \sigma(-u^T v_n)
这就像教孩子认苹果:不仅要告诉他“这是苹果”(正样本),还要指着橙子和香蕉说“这不是苹果”(负样本)。有了对比,概念才清晰。
  1. 正样本项$u^T v_c$ 是中心节点与上下文节点的向量点积(相似度),通过 sigmoid 压缩为概率,取负对数期望其最大化
    −log⁡σ(uTvc)-\log \sigma(u^T v_c)
  2. 负样本项$N_{neg}$ 是从全图随机抽取的负样本集合,$\sigma(-u^T v_n)$ 期望负样本的相似度趋近 0
    ∑n∈Nneglog⁡σ(−uTvn)\sum_{n \in N_{neg}} \log \sigma(-u^T v_n)
  3. 整体目标两项联合优化,达到“正样本靠近、负样本远离”的平衡状态
    min⁡θL\min_{\theta} \mathcal{L}

效果评估

名片质量到底如何?就像城市地图交付前要验收一样,异构图嵌入需要多维度的效果检验。链接预测是最常用的验收方式:从图中遮住一部分边,让模型预测这些边是否存在。预测的准确率直接反映嵌入是否保留了图结构信息。

链接预测的评分函数通常采用双线性形式:

节点分类是另一项关键验收:给部分节点标注类别(如用户是否高活跃),用嵌入向量训练一个分类器,看分类准确率。如果嵌入质量高,仅凭向量就能把不同类别的节点区分开,就像仅凭名片的字段就能判断一个机构是学校还是医院。可视化检验则是人工验收手段——用 t-SNE 或 PCA 把高维嵌入降到二维平面,观察同类节点是否聚成一团、异类节点是否自然分离。三类评估方法构成完整验收体系,确保地图既准确又直观。

score(u,v)=zuTzv\text{score}(u, v) = z_u^T z_v
两个节点嵌入向量的点积越高,说明它们语义越接近,存在连边的可能性越大。这就像两个地点的名片关键词重合度越高,它们之间有业务往来的概率就越大。
  1. 嵌入向量$z_u$ 和 $z_v$ 分别是节点 $u$ 与 $v$ 学到的低维嵌入
    zu,zv∈Rdz_u, z_v \in \mathbb{R}^{d}
  2. 相似度计算点积运算衡量两个向量在语义空间中的方向一致性
    zuTzvz_u^T z_v

工程实践

当城市从县城扩张为千万人口的都市,手绘地图彻底失效,必须引入系统性工程手段。异构图嵌入在生产环境中同样面临三大挑战:稀疏性、规模和冷启动。

现实中的异构图通常极度稀疏——大多数节点只有少量连边,就像小城市里许多街道鲜有人迹。直接训练容易过拟合。工程上的常用对策是类型子图抽样:按关系类型对图进行分层抽样,每种类型保留代表性的子图,降低稀疏带来的方差。同时引入边类型加权,让出现频率低但语义强的边类型获得更高的训练权重。

处理大规模图时,图分区并行是核心策略。把整张图切成多个子图分片,各分片在独立计算节点上训练,通过参数服务器同步嵌入参数。这个局面就像城市规划局把全市划分为若干区块,每个区块由单独的团队测绘,最后统一拼图校准。冷启动问题则针对新加入的节点——它们没有任何历史交互。解决办法包括:利用节点的属性特征做初始嵌入,或借助元路径从邻居信息中“借”一个合理的初始向量。

工程实践的核心法则是:先分区、再采样、后并行。分区降低通信开销,采样缓解稀疏噪声,并行缩短训练时间。每一步都需要在效果和效率之间做权衡,就像城市扩张中既要保证规划质量,又要控制建设成本。

应用前沿

多功能城市地图绘制完成后,它能服务于哪些城市功能?异构图嵌入的价值在三大场景中得到充分释放。

推荐系统是最成熟的应用方向。在电商平台中,用户、商品、品牌、品类构成天然的异构图。用户“购买”商品、商品“属于”品牌、品牌“主营”品类——不同类型的交互提供了纯用户-商品二分图无法捕捉的丰富语义。通过异构图嵌入,系统能为用户生成更精准的推荐向量,推荐的点击率显著提升。

推荐场景的预测公式与链接预测一致:

知识图谱领域,异构图嵌入被用于实体链接和关系推理。知识图谱中实体类型繁多(人物、电影、奖项),关系种类丰富(主演、获奖、提名),异构图嵌入能把符号化的三元组转化为可计算的向量空间,让推理从“查表”升级为“向量运算”。社交网络分析则利用多类型交互(关注、私信、加入同群)判断用户亲密度和社区结构,用于好友推荐和内容分发。

一张多功能地图,既能服务商业选址(推荐),又能辅助城市治理(知识推理),还能促进社区交流(社交分析),这正是异构图嵌入“一图多用”的魅力所在。

y^ui=σ(zuTzi)\hat{y}_{ui} = \sigma(z_u^T z_i)
把用户嵌入和商品嵌入做点积,结果就是“推荐得分”。这相当于地图系统告诉你:这位用户的名片和这个商品的名片“气场相合”。
  1. 用户嵌入$z_u$ 是用户节点在异构图上学习到的向量表示,融入了其浏览、购买、关注等多类行为
    zuz_u
  2. 商品嵌入$z_i$ 是商品节点的向量表示,融合了品牌、品类、价格带等属性信息
    ziz_i
  3. 激活函数$\sigma$ 将相似度得分映射到 0~1 区间,作为推荐概率
    y^ui∈[0,1]\hat{y}_{ui} \in [0,1]

AI 应用场景

电商推荐:用户-商品-品牌异构图

阶段:特征工程 + 召回排序

解决的问题:传统协同过滤只利用用户-商品二部图,无法利用品牌、品类等辅助信息。冷门商品缺乏交互数据时,推荐效果急剧下降。异构图嵌入把品牌、品类等节点纳入统一向量空间,冷门商品可以通过“与畅销品同品牌/同品类”获得合理嵌入,召回准确率显著提升。

具体案例:某电商平台构建用户-商品-品牌-品类四类节点的异构图,使用 metapath2vec 在“用户→商品→品牌→商品”元路径上游走并学习嵌入。模型上线后,商品点击率提升 18%,冷门商品的曝光量提升 32%。

医疗知识图谱:疾病-症状-药物推理

阶段:知识表示 + 推理

解决的问题:医学知识图谱中疾病、症状、药物、检查指标等实体类型丰富,关系包括“表现为”“治疗用”“禁忌于”等。传统规则推理难以覆盖全图谱,异构图嵌入将实体和关系映射到向量空间后,可通过向量相似度发现潜在关联,辅助医生进行诊断建议。

具体案例:基于 RGCN 构建疾病-症状-药物异构图嵌入模型,输入患者症状向量,检索最相似疾病嵌入,再关联推荐药物。在 5 万条真实病历上的验证表明,top-10 诊断命中率达 76%。

Python 演示

python85 行
import mathimport random  class Metapath2Vec:    """Simplified metapath2vec with negative sampling."""     def __init__(self, num_nodes, dim=8, lr=0.01):        self.dim = dim        self.lr = lr        self.embed = [            [random.gauss(0, 0.1) for _ in range(dim)]            for _ in range(num_nodes)        ]        self.context = [            [random.gauss(0, 0.1) for _ in range(dim)]            for _ in range(num_nodes)        ]     def dot(self, a, b):        return sum(x * y for x, y in zip(a, b))     @staticmethod    def sigmoid(x):        return 1.0 / (1.0 + math.exp(-x))     def train_step(self, center, pos, negatives):        # positive pair: pull closer        score = self.dot(self.embed[center], self.context[pos])        g = self.sigmoid(score) - 1.0        for d in range(self.dim):            self.embed[center][d] += self.lr * g * self.context[pos][d]            self.context[pos][d] += self.lr * g * self.embed[center][d]        # negative pairs: push away        for neg in negatives:            score = self.dot(self.embed[center], self.context[neg])            g = self.sigmoid(score)            for d in range(self.dim):                self.embed[center][d] -= self.lr * g * self.context[neg][d]                self.context[neg][d] -= self.lr * g * self.embed[center][d]  def metapath_walks(adj, metapath, num_walks=50, walk_len=6):    walks = []    nodes = list(adj.keys())    for _ in range(num_walks):        for start in nodes:            walk = [start]            cur = start            for step_idx in range(walk_len - 1):                target_type = metapath[(step_idx + 1) % len(metapath)]                candidates = [n for n in adj[cur] if n[1] == target_type]                if not candidates:                    break                cur = random.choice(candidates)[0]                walk.append(cur)            walks.append(walk)    return walks  def main():    # toy heterogeneous graph: (neighbor, node_type)    adj = {        0: [(1, "item"), (2, "item"), (3, "user")],        1: [(0, "user"), (4, "item")],        2: [(0, "user"), (4, "item")],        3: [(0, "user"), (4, "item")],        4: [(1, "item"), (2, "item"), (3, "user")],    }    metapath = ["user", "item", "user", "item"]    walks = metapath_walks(adj, metapath, num_walks=50, walk_len=6)    model = Metapath2Vec(num_nodes=5, dim=8, lr=0.01)    for _ in range(20):        for walk in walks:            for i in range(1, len(walk) - 1):                center = walk[i]                pos = walk[i + 1]                negatives = [random.randint(0, 4) for _ in range(3)]                model.train_step(center, pos, negatives)    print("embedding[0] =", model.embed[0])    print("embedding[1] =", model.embed[1])  if __name__ == "__main__":    main()
目的:在 5 节点的玩具异构图上,用元路径引导随机游走生成训练序列,通过负采样方式训练 Skip-gram 模型,得到每个节点的向量嵌入。
  1. metapath_walks(adj, metapath, ...)按元路径约束在异构图上随机游走,每一步只走与目标类型匹配的邻居,就像游客只沿规定类型的道路前进。
  2. candidates = [n for n in adj[cur] if n[1] == target_type]过滤邻居时先检查节点类型,这是异构区别于同构的关键筛选逻辑。
  3. model.train_step(center, pos, negatives)同时执行“正样本拉近”和“负样本推远”两种更新,是嵌入学习的核心训练引擎。
  4. g = self.sigmoid(score) - 1.0正样本的梯度信号为负值,驱动向量朝增大相似度的方向移动。
  5. for d in range(self.dim)逐维度地更新 embedding 和 context 两套向量,这是浅层嵌入模型的标准做法。

常见误区

误区“异构图不就是有几种类型的节点嘛,我把每种类型分别嵌入,最后拼起来不就行了?为什么要专门设计算法?”

正解分别嵌入会丢失跨类型的结构关联。就像分别绘制学校地图和医院地图,却不知道“学校旁边就是医院”这个关键空间关系。异构图嵌入的核心价值在于联合学习——在同一个优化目标中融合所有类型节点和边的约束,让类型间的交互信息自然进入向量表示。你可以把不同类型映射到统一向量空间,但必须是在同一目标函数下协同优化。

为何常见:初学者往往先接触同构图嵌入(如 DeepWalk、node2vec),容易形成“嵌入=随机游走+Skip-gram”的思维定式,忽略了异构图在采样和目标设计上的本质差异。

误区“元路径越长,经过的类型越多,包含的语义就越丰富,效果肯定更好吧?”

正解元路径过长会引入大量噪声。就像一条跨越 10 个地点的旅游路线,游客很难记住每个地点之间的联系。在长元路径上,远端的节点与起点已经几乎没有直接语义关联。研究表明,长度 3~5 的元路径通常在效果上最优。更关键的是,元路径的设计质量远比长度重要——一条“用户→商品→用户”的元路径虽然短,却精准刻画了“相似购买行为”这一核心语义。

为何常见:直觉上“信息越多越好”,但忽略了图中随机游走的传播损耗和噪声累积。

误区“用户比商品多 100 倍有什么关系?反正模型会平均对待所有节点。”

正解类型不均衡会导致训练偏向高频类型。如果用户节点占 99%,模型会花大量算力优化用户间的相似度,商品、品牌等低频类型的嵌入质量严重下降。就像城市居民都在谈论商场,却没人关注公园和学校——公园的地图就会画得很粗糙。解决方案包括按类型重采样、在损失中按类型加权等。

为何常见:延续同构图的经验,默认节点是独立同分布的,忽略了异构图本身的类型分布偏差。

误区“链接预测准确率到 90% 了,嵌入肯定没问题。”

正解单指标可能掩盖真实问题。链接预测高分可能只是因为模型掌握了度数规律,而非学到了语义结构。需要同时用节点分类、可视化、case study 等多维度评估。就像验收城市地图时,不能只看道路长度是否精确,还要看地标标注是否准确、比例尺是否一致、图例是否清晰。

为何常见:单个指标量化方便、汇报直观,导致从业者倾向于“一个数字定乾坤”。

面试题

Q1. 异构图与同构图的核心区别是什么?

单选题 · easy

  • A.异构图的节点数量一定更多
  • B.节点和边各有多种类型← 正确答案
  • C.异构图一定有向且有权重
  • D.同构图只包含一个连通分量

答案:B。异构图的本质是节点类型和边类型都大于等于 2 种。B 准确描述了这一特征。A 的数量、C 的有向有权、D 的连通性都与同构/异构的划分无关。

Q2. 元路径“用户→商品→用户”描述了什么?

单选题 · easy

  • A.一条具体的物理路径
  • B.一种抽象的类型关联模式← 正确答案
  • C.一个训练样本的唯一编号
  • D.一种特征降维的处理方式

答案:B。元路径在类型层面定义关联模式,“用户→商品→用户”表示“两位用户购买过同一商品”这一语义。它是模式模板而非具体路径,与训练编号、降维手段无关。

Q3. metapath2vec 的随机游走最大的特点是什么?

单选题 · mid

  • A.每一步完全等概率随机选邻居
  • B.按照元路径约束选择下一跳← 正确答案
  • C.只选择与目标类型相反的邻居
  • D.用深度优先搜索替代随机游走

答案:B。metapath2vec 的核心创新是元路径引导的随机游走,每一步的邻居选择必须符合元路径规定的节点类型。A 是 DeepWalk 的做法,C 是对元路径的误解,D 中 DFS 是另一种遍历方式。

Q4. 异构图嵌入可以应用于哪些场景?

多选题 · mid

  • A.电商平台的商品推荐← 正确答案
  • B.医疗知识图谱的疾病推理← 正确答案
  • C.社交网络的好友推荐← 正确答案
  • D.图像像素级别的语义分割

答案:ABC。异构图嵌入适用于存在多类型实体和多关系交互的场景。推荐系统(用户-商品-品牌)、知识图谱(疾病-症状-药物)、社交网络(用户-群组-帖子)都是典型应用。图像语义分割处理的是规则网格像素,不涉及图结构。

Q5. HAN 中两层注意力的分工是什么?

单选题 · mid

  • A.一层看权重,一层看方向
  • B.分别建模元路径内和元路径间重要性← 正确答案
  • C.一层做嵌入,一层做分类
  • D.一层加速训练,一层防止过拟合

答案:B。HAN 的节点级注意力在单条元路径内为不同邻居分配权重,语义级注意力则在不同元路径间权衡贡献。这两层分工对应“选邻居”和“选路线”两个层面的注意力决策。

Q6. RGCN 与普通 GCN 的消息传递最本质的区别是什么?

单选题 · hard

  • A.RGCN 使用更深层的网络结构
  • B.每种关系类型有独立的变换矩阵← 正确答案
  • C.RGCN 不使用归一化邻接矩阵
  • D.RGCN 只对叶子节点做消息传递

答案:B。RGCN 为每种关系类型 $r$ 配备独立的权重矩阵 $W_r$,消息传递时按关系类型分别聚合。GCN 共享同一套权重。这正是 RGCN 能建模多关系异构图的关键。

Q7. 异构图嵌入的常见评估方式有哪些?

多选题 · hard

  • A.链接预测的准确率或 AUC← 正确答案
  • B.节点分类的 F1 分数← 正确答案
  • C.嵌入向量可视化的聚类分离度← 正确答案
  • D.模型参数量的大小

答案:ABC。链接预测、节点分类、可视化是三大标准评估手段。参数量反映模型复杂度而非嵌入质量,不能作为效果评估指标。

Q8. 推荐系统冷启动问题指的是什么?

单选题 · easy

  • A.系统启动时加载模型过慢
  • B.新用户或新商品缺乏历史交互← 正确答案
  • C.模型在 GPU 上训练温度过高
  • D.推荐结果始终固定不变

答案:B。冷启动指新实体(新用户、新商品)没有历史交互数据,无法通过协同过滤获得推荐。异构图嵌入通过属性特征和元路径邻居信息缓解这一问题。

Q9. 负采样在异构图嵌入训练中的作用是什么?

单选题 · mid

  • A.减少模型的参数量
  • B.提供反例以加速收敛← 正确答案
  • C.增加训练数据的规模
  • D.把异构图转化为同构图

答案:B。负采样随机抽取无关节点作为反例,推动模型把负样本向量推远,避免所有嵌入坍缩到同一位置。它不改变参数量、不增加数据规模,更不改变图的类型。

Q10. 大规模异构图训练的工程策略包括哪些?

多选题 · extreme

  • A.图分区并行采样← 正确答案
  • B.类型子图分层抽样← 正确答案
  • C.分布式参数服务器同步← 正确答案
  • D.全图批量梯度下降

答案:ABC。大规模场景下,图分区降低通信开销,类型子图抽样缓解稀疏噪声,参数服务器支持分布式同步训练。全图批量梯度下降在超大图上内存不可行、计算代价过高,故不适用。