第 293 题:实现知识图谱的TransE训练,负采样的破坏策略。
题目
实现知识图谱的TransE训练,负采样的破坏策略。
完整讲解
一、TransE 与知识图谱
- TransE:将关系视为头实体到尾实体的平移,即 $h + r \approx t$($h,r,t$ 为向量)。损失为 margin-based:正例 $(h,r,t)$ 的 $|h+r-t|$ 要小,负例要大;$\mathcal{L} = \sum [\gamma + |h+r-t| - |h’+r-t’|]_+$,$(h’,t’)$ 为负样本。
二、训练与负采样
- 训练:对每个正三元组 $(h,r,t)$,采样若干负样本。负样本通常由破坏正样本得到:替换头 $(h’,r,t)$ 或替换尾 $(h,r,t’)$,$h’,t’$ 从实体集中采样,保证 $(h’,r,t)$ 与 $(h,r,t’)$ 不在正例集中(否则为假负)。
- 破坏策略:随机替换(uniform)、按类型约束替换(同类型实体)、或按流行度采样(热门实体更常被采为负);可 1:1 头尾各采若干。避免假负(破坏后仍在知识库中)可过滤或降低权重。
- 实现:每 batch 取正例,对每条生成 K 个负例(替换头或尾),算正负 margin loss 并反向;实体与关系 embedding 可初始化随机或预训练。
三、扩展
- 可结合类型信息、多跳路径做改进(TransH、TransR、RotatE 等);负采样质量对 TransE 效果影响大,破坏策略可做均匀/类型感知/对抗采样等。
面试要点
- 能写出 TransE 的目标 $h+r\approx t$ 与 margin 损失形式;能说明负采样由「替换头或尾」得到。
- 能说清破坏策略(随机、类型、过滤假负)及实现流程(batch 正例+生成负例+margin loss)。
记忆要点
- TransE:$h+r\approx t$,margin 损失;负样本=替换头或尾,过滤假负。
- 破坏策略:随机/类型/流行度;实现 batch 正例+K 负例算 loss。