Text-Enhanced Representation Learning for Knowledge Graph
0. 问题
- TransE、TransH、TransR 在 1-N,N-1 和 N-N 关系中的表现不佳
- 图谱结构稀疏导致学习到的表征不准确
1. 总结
利用Word2Vec从文本中学习实体和关系的上下文表征, 然后线性变换到图谱嵌入空间中.学习线性变换的参数, 使得图谱嵌入空间中, 正确三元组的 ∥ h ^ + r ^ − t ^ ∥ 2 2 \|\widehat{\mathrm{h}}+\widehat{\mathbf{r}}-\widehat{\mathbf{t}}\|_{2}^{2} ∥h +r −t ∥22 接近于0.
2. 输入
- 知识图谱 K G KG KG, 以三元组 ( h , r , t ) (h,r,t) (h,r,t)表示
- 语料库 D = { w 1 , w 2 , ⋯ , w m } D=\left\{w_{1}, w_{2}, \cdots, w_{m}\right\} D={w1,w2,⋯,wm}, w i w_{i} wi为单词, m m m为文本长度
3. 方法
-
Entity Annotation
使用实体链接工具(AIDA, TAGME, Wikify! 等)来标注 D D D中的实体. 标注后得到 D ′ = { x 1 , x 2 , ⋯ , x m } {\rm{D'}}=\left\{x_{1}, x_{2}, \cdots, x_{m}\right\} D′={x1,x2,⋯,xm}, x i x_{i} xi为 K G KG KG中的实体或 D D D中的单词. m ′ < m {\rm{m'}} < m m′<m, 因为 D D D中的一些词组(连续几个单词)被标为了一个实体.
-
Textual Context Embedding
构建共现网络 G = ( X , Y ) \mathcal{G}=(\mathcal{X}, \mathcal{Y}) G=(X,Y) , 其中 x i ∈ X x_{i} \in \mathcal{X} xi∈X表示单词或实体, y i j ∈ Y y_{ij} \in \mathcal{Y} yij∈Y 表示 x i x_{i} xi和 y i y_{i} yi的共现频率, 共现窗口设置为5.
按下述步骤计算.
pointwise textual context:
n ( x i ) = { x j ∣ y i j > θ } n\left(x_{i}\right)=\left\{x_{j} | y_{i j}>\theta\right\} n(xi)={xj∣yij>θ}
pairtwise textual context:
n ( x i , x j ) = { x k ∣ x k ∈ n ( x i ) ∩ n ( x j ) } n\left(x_{i}, x_{j}\right)=\left\{x_{k} | x_{k} \in n\left(x_{i}\right) \cap n\left(x_{j}\right)\right\} n(xi,xj)={xk∣xk∈n(xi)∩n(xj)}
pointwise textual context embedding:
n ( x i ) = 1 ∑ x j ∈ n ( x i ) y i j ∑ x j ∈ n ( x i ) y i j x j \mathbf{n}\left(x_{i}\right)=\frac{1}{\sum_{x_{j} \in n\left(x_{i}\right)} y_{i j}} \sum_{x_{j} \in n\left(x_{i}\right)} y_{i j} \mathbf{x}_{j} n(xi)=∑xj∈n(xi)yij1xj∈n(xi)∑yijxj
pairwise textual context embedding:
n ( x i , x j ) = 1 ∑ x k ∈ n ( x i , x j ) min ( y i k , y j k ) ∑ x k ∈ n ( x i , x j ) min ( y i k , y j k ) x k {\bf{n}}\left( {{x_i},{x_j}} \right) = {1 \over {\sum\limits_{{x_k} \in n\left( {{x_i},{x_j}} \right)} {\min } \left( {{y_{ik}},{y_{jk}}} \right)}}\sum\limits_{{x_k} \in n\left( {{x_i},{x_j}} \right)} {\min } \left( {{y_{ik}},{y_{jk}}} \right){{\bf{x}}_k} n(xi,xj)=xk∈n(xi,xj)∑min(yik,yjk)1xk∈n(xi,xj)∑min(yik,yjk)xk -
Entity/Relation Representation Modeling (算法核心)
h h h的点嵌入的线性变换
h ^ = n ( h ) A + h \widehat{\mathbf{h}}=\mathbf{n}(h) \mathbf{A}+\mathbf{h} h =n(h)A+h
t t t的点嵌入的线性变换
t ^ = n ( t ) A + t \widehat{\mathbf{t}}=\mathbf{n}(t) \mathbf{A}+\mathbf{t} t =n(t)A+t
r r r的对嵌入的线性变换
r ^ = n ( h , t ) B + r \widehat{\mathbf{r}}=\mathbf{n}(h,t) \mathbf{B}+\mathbf{r} r =n(h,t)B+r
其中A, B为权重矩阵, h,t和r是偏差.
Score Fuction
f ( h , r , t ) = ∥ h ^ + r ^ − t ^ ∥ 2 2 f(h, r, t)=\|\widehat{\mathrm{h}}+\widehat{\mathbf{r}}-\widehat{\mathbf{t}}\|_{2}^{2} f(h,r,t)=∥h +r −t ∥22 -
Representation Traning
优化目标
L = ∑ ( h , r , t ) ∈ S ( h ′ , r , t ′ ) ∈ S ′ max ( 0 , f ( h , r , t ) + γ − f ( h ′ , r , t ′ ) ) L=\sum_{(h, r, t) \in \mathcal{S}\left(h^{\prime}, r, t^{\prime}\right) \in \mathcal{S}^{\prime}} \max \left(0, f(h, r, t)+\gamma-f\left(h^{\prime}, r, t^{\prime}\right)\right) L=(h,r,t)∈S(h′,r,t′)∈S′∑max(0,f(h,r,t)+γ−f(h′,r,t′))
其中 f ( h , r , t ) f(h, r, t) f(h,r,t)表示正样本, f ( h ′ , r , t ′ ) f\left(h^{\prime}, r, t^{\prime}\right) f(h′,r,t′)表示负样本.
4. Question
- 为什么能解决图谱的稀疏性问题?
- 利用Word2Vec从文本中学习表征,而不是从稀疏的图谱中学习表征。
- 为什么能更好处理 1-N,N-1 和 N-N 关系?
- 例如在 h ^ = n ( h ) A + h \widehat{\mathbf{h}}=\mathbf{n}(h) \mathbf{A}+\mathbf{h} h =n(h)A+h 中, 对于不同的头实体, A A A和 h h h是共享的, 因此只要 n ( h ) \mathbf{n}(h) n(h)不同, h ^ \widehat{\mathbf{h}} h 就不会相同.
- 当 t t t固定时, 即使关系相同, 对于不同的 h h h, 对嵌入 n ( h , t ) \mathbf{n}(h,t) n(h,t)也不尽相同, 也就是说同一个关系会有多个表征.
- 由以上两点可知, 在训练时, r ^ \widehat{\mathbf{r}} r 会不断改变,因此不会出现TransE中相同的关系下不同头(尾)实体的表示近似相等的情况.
- 同样的关系有不同的表示, 那么要使用某个关系的时候要用哪个表示?
- 在 1-1 关系上的性能不如 TransH 和 TransR