2013 NeuralIPS Translating Embeddings for Modeling Multi-relational Data
论文基本信息
题目: Translating Embeddings for Modeling Multi-relational Data
作者: Antoine Bordes, Nicolas Usunier, Alberto Garcia-Durán, Jason Weston, Oksana Yakhnenko
机构: Université de Technologie de Compiègne – CNRS (Heudiasyc UMR 7253), Google
发表地点与年份: NeuralIPS,年份为2013年
关键词术语: Knowledge Base (KB), Multi-relational Data, Link Prediction, Embedding, Translation-based Model, TransE
摘要(详细复述)
背景: 多关系数据(如知识库)通常以三元组 (h,l,t)(h, l, t)(h,l,t) 形式存在,表示头实体 hhh 和尾实体 ttt 之间存在关系 lll。传统方法如矩阵分解或贝叶斯聚类虽有效但模型复杂,参数量大,难以扩展到大规模数据。
方案概述: 提出 TransE 模型,将关系解释为实体嵌入空间中的平移操作,即若 (h,l,t)(h, l, t)(h,l,t) 成立,则 h+l≈th + l \approx th+l≈t。该模型仅需为每个实体和关系学习一个低维向量,参数量极少。
主要结果/提升: 在 Wordnet 和 Freebase 数据集上,TransE 在链接预测任务中显著优于当时最佳方法(SOTA),例如在 Wordnet 上 Hits@10 达到 89.2%(过滤设置)。模型可成功训练于超大规模数据集(FB1M:100 万实体、2.5 万关系、1750 万训练样本)。
结论与意义: TransE 以极简的平移假设实现了高效、可扩展的多关系数据建模,为知识库补全提供了强大工具。
研究背景与动机
学术/应用场景: 多关系数据广泛存在于社交网络、推荐系统、知识库(如 Freebase、Wordnet)中,常用于链接预测(知识补全)。
痛点: 传统方法(如张量分解、聚类)模型复杂、参数量大、训练困难,难以扩展至大规模数据,且易过拟合或欠拟合。
主流路线与局限:
方法类别 | 代表工作 | 优点 | 不足 |
---|---|---|---|
张量分解 | RESCAL | 表达能力强 | 参数量大(O(nek+nrk2)O(n_ek + n_rk^2)O(nek+nrk2)),计算成本高 |
能量模型 | SE, SME | 可捕捉复杂关系 | 优化困难,易欠拟合 |
隐因子模型 | LFM | 多关系建模 | 参数量中等,但训练不稳定 |
问题定义(形式化)
输入: 训练集 S={(h,l,t)}S = \{(h, l, t)\}S={(h,l,t)},其中 h,t∈Eh, t \in Eh,t∈E(实体集),l∈Ll \in Ll∈L(关系集)。
输出: 实体嵌入向量 e∈Rk\mathbf{e} \in \mathbb{R}^ke∈Rk(∀e∈E\forall e \in E∀e∈E),关系嵌入向量 l∈Rk\mathbf{l} \in \mathbb{R}^kl∈Rk(∀l∈L\forall l \in L∀l∈L)。
目标函数: 最小化边际排序损失(公式 1),使得正例三元组的能量 d(h+l,t)d(\mathbf{h} + \mathbf{l}, \mathbf{t})d(h+l,t) 低于负例。
评测目标: 链接预测任务中,通过排名指标(平均秩 Mean Rank 和 Hits@10)评估模型性能。
创新点
- 关系作为平移操作: 首次将关系建模为嵌入空间中的平移向量 l\mathbf{l}l,强制 h+l≈t\mathbf{h} + \mathbf{l} \approx \mathbf{t}h+l≈t。该假设直观对应知识库中的层次关系(如父子关系为垂直平移)。
- 极简参数化: 每个实体和关系仅需学习一个 kkk 维向量,总参数量为 O(nek+nrk)O(n_ek + n_rk)O(nek+nrk),远低于同期方法(见表 1)。
- 高效优化: 采用带约束的随机梯度下降(SGD),约束实体嵌入的 L2 范数为 1,防止平凡解。
方法与核心思路
整体框架
TransE 基于能量模型框架,核心思想是将关系 lll 视为头实体嵌入 h\mathbf{h}h 到尾实体嵌入 t\mathbf{t}t 的平移。模型结构如下:
graph TDA[输入三元组 h l t] --> B[查找嵌入向量]B --> C[计算平移向量 h 加 l]C --> D[计算差异度 d(h+l t)]D --> E[与负例三元组对比]E --> F[优化损失函数 L]
步骤分解
- 初始化: 所有实体和关系嵌入向量均匀随机初始化于 [−6k,6k]\left[ -\frac{6}{\sqrt{k}}, \frac{6}{\sqrt{k}} \right][−k6,k6] 区间。
- 归一化: 每轮迭代前,将所有实体嵌入向量归一化为单位范数(防止训练塌陷)。
- 采样: 从训练集 SSS 中采样一个 mini-batch,对每个正例三元组 (h,l,t)(h, l, t)(h,l,t),构造一个负例三元组 (h′,l,t′)(h', l, t')(h′,l,t′),其中 h′h'h′ 或 t′t't′ 被随机实体替换(公式 2)。
- 计算损失: 对每个正负样本对,计算边际损失 [γ+d(h+l,t)−d(h′+l,t′)]+\left[ \gamma + d(\mathbf{h} + \mathbf{l}, \mathbf{t}) - d(\mathbf{h'} + \mathbf{l}, \mathbf{t'}) \right]_+[γ+d(h+l,t)−d(h′+l,t′)]+。
- 梯度更新: 根据损失梯度更新所有嵌入参数。
模块与交互
- 嵌入层: 将实体和关系 ID 映射为 kkk 维向量。
- 平移模块: 计算 h+l\mathbf{h} + \mathbf{l}h+l,得到预测尾实体位置。
- 差异度计算: 使用 L1L_1L1 或 L2L_2L2 距离衡量 h+l\mathbf{h} + \mathbf{l}h+l 与 t\mathbf{t}t 的差异。
- 损失模块: 基于边际排序损失,推动正例差异度小于负例。
公式与符号
能量函数:
d(h+l,t)=∥h+l−t∥p(p=1 或 2) d(\mathbf{h} + \mathbf{l}, \mathbf{t}) = \| \mathbf{h} + \mathbf{l} - \mathbf{t} \|_p \quad (p=1 \text{ 或 } 2) d(h+l,t)=∥h+l−t∥p(p=1 或 2)
损失函数:
L=∑(h,l,t)∈S∑(h′,l,t′)∈S(h,l,t)′[γ+d(h+l,t)−d(h′+l,t′)]+ L = \sum_{(h,l,t) \in S} \sum_{(h',l,t') \in S'_{(h,l,t)}} \left[ \gamma + d(\mathbf{h} + \mathbf{l}, \mathbf{t}) - d(\mathbf{h'} + \mathbf{l}, \mathbf{t'}) \right]_+ L=(h,l,t)∈S∑(h′,l,t′)∈S(h,l,t)′∑[γ+d(h+l,t)−d(h′+l,t′)]+
负例构造:
S(h,l,t)′={(h′,l,t)∣h′∈E}∪{(h,l,t′)∣t′∈E} S'_{(h,l,t)} = \{ (h', l, t) \mid h' \in E \} \cup \{ (h, l, t') \mid t' \in E \} S(h,l,t)′={(h′,l,t)∣h′∈E}∪{(h,l,t′)∣t′∈E}
伪代码
算法 1:TransE 训练流程
输入: 训练集 S, 实体集 E, 关系集 L, 边际 γ, 嵌入维度 k
1: 初始化所有实体和关系嵌入向量
2: loop
3: 对每个实体 e ∈ E: e ← e / ∥e∥₂ # 归一化
4: S_batch ← 从 S 采样 b 个三元组
5: T_batch ← ∅
6: 对每个 (h,l,t) ∈ S_batch:
7: (h',l,t') ← 从 S'_{(h,l,t)} 采样一个负例
8: T_batch ← T_batch ∪ {((h,l,t), (h',l,t'))}
9: 结束循环
10: 根据梯度 ∇∑_{T_batch} [γ + d(h+l,t) - d(h'+l,t')]_+ 更新嵌入
11: end loop
伪代码描述:
该算法通过随机梯度下降优化边际排序损失。每轮迭代先归一化实体嵌入,然后采样正负样本对,计算损失并更新参数。
复杂度分析
- 时间复杂度: 每轮迭代需计算 O(b)O(b)O(b) 个距离(bbb 为 batch size),每个距离计算为 O(k)O(k)O(k),故每轮复杂度为 O(bk)O(bk)O(bk)。
- 空间复杂度: 存储所有实体和关系嵌入,总计 O((ne+nr)k)O((n_e + n_r)k)O((ne+nr)k) 参数。
- 资源开销: 极低,可处理百万级实体和关系。
关键设计选择
- 归一化实体嵌入: 防止训练过程中通过增大嵌入范数降低损失,确保优化聚焦于方向而非尺度。
- 使用边际损失: 而非交叉熵等,更适合排序任务,直接优化正负例的相对顺序。
- 负例采样策略: 仅替换头或尾,而非同时替换,保证负例与正例有较高相似性,增加训练难度。
实验设置
数据集:
数据集 | 实体数 | 关系数 | 训练样本数 | 验证样本数 | 测试样本数 |
---|---|---|---|---|---|
WN | 40,943 | 18 | 141,442 | 5,000 | 5,000 |
FB15K | 14,951 | 1,345 | 483,142 | 50,000 | 59,071 |
FB1M | 1M | 23,382 | 17.5M | 50,000 | 177,404 |
对比基线: Unstructured, RESCAL, SE, SME(linear), SME(bilinear), LFM。
评价指标:
- Mean Rank:正确实体的平均排名(越低越好)。
- Hits@10:正确实体排名在前 10 的比例(越高越好)。
- 提供 Raw(未过滤)和 Filtered(过滤掉所有已知真实三元组)两种设置。
实现细节:
- 框架:自定义实现(开源代码)。
- 超参数:通过验证集选择 k∈{20,50}k \in \{20,50\}k∈{20,50}, γ∈{1,2,10}\gamma \in \{1,2,10\}γ∈{1,2,10}, 学习率 λ∈{0.001,0.01,0.1}\lambda \in \{0.001,0.01,0.1\}λ∈{0.001,0.01,0.1}。
- 硬件与训练时间:未明确说明,但强调可扩展至大规模数据。
实验结果与分析
主结果表
数据集 | 方法 | Mean Rank (Filt) | Hits@10% (Filt) |
---|---|---|---|
WN | Unstructured | 304 | 38.2 |
RESCAL | 1,163 | 52.8 | |
SE | 985 | 80.5 | |
SME(linear) | 533 | 74.1 | |
SME(bilinear) | 509 | 61.3 | |
LFM | 456 | 81.6 | |
TransE | 251 | 89.2 | |
FB15K | TransE | 125 | 47.1 |
FB1M | TransE | 14,615 | 34.0 |
- TransE 在所有数据集和指标上均优于基线,尤其在 WN 上 Hits@10 提升 7.6%。
- 在超大规模 FB1M 上,TransE 仍能有效训练,而部分基线因计算成本过高未实验。
消融实验
- Unstructured 对比: 无平移项的 TransE 变体性能大幅下降(Hits@10 仅 6.3% on FB15K),证明平移机制的关键作用。
- 关系类型分析(表 4): TransE 在 1-to-1、1-to-Many、Many-to-1、Many-to-Many 所有关系类型上均优于或接近最佳基线。
泛化能力
- 少样本学习(图 1): 仅需 10 个新关系样本,TransE 的 Hits@10 即达 18%,显著优于基线,显示其优秀泛化能力。
误差分析与失败案例
错误类别:
- 主要误差出现在复杂多对多关系(Many-to-Many)中,因三元交互未被显式建模。
- 部分错误源于相似实体在嵌入空间中聚集,导致排名竞争激烈。
失败案例: 在 Kinships 数据集上(未包含),因三元交互关键,TransE 性能不及 SOTA,证明其局限性与数据特性相关。
复现性清单
代码与数据: 论文提及开源代码(项目网页),但未提供链接;数据集使用公开 Wordnet 和 Freebase。
环境与依赖: 未明确说明。
运行命令: 未提供。
许可证: 未说明。
结论与未来工作
结论: TransE 以平移假设实现高效、可扩展的知识表示学习,在链接预测任务中取得突破性性能。
未来工作:
- 扩展模型以处理更复杂关系(如对称、组合关系)。
- 结合文本信息(如关系抽取)进行联合学习。
- 应用于词表示学习(受 Word2Vec 启发)。