- k: Q; ~2 R' O9 e" F9 v C3 a & I4 k1 f9 N. { B) j图2.1:显式反馈和隐式反馈- r1 V8 [% \, o% q3 ]
传统的推荐系统使用显式/隐式信息作为输入来进行预测,存在两个主要的问题: 4 B# k; i, W/ m M( H4 m; W (1)稀疏性问题: 实际场景中,用户和物品的交互信息往往是非常稀疏的。如电影推荐中,电影往往成千上万部,但是用户打过分的电影往往只有几十部。使用如此少的观测数据来预测大量的未知信息,会极大增加过拟合的风险。4 _# W- x$ n+ n3 k
图3.1:精确性示例 ( }8 [" v7 v$ F. E3 [ - z! K: u; c/ B/ a+ ^9 d 7 L, {% Q# k7 S$ B7 V: I* m图3.2:多样性性示例: g, h4 p! F6 V9 J P% L& a
4 a* R; W! P( g" L7 h
2 d: N1 p- d( v, |; ^6 c- M. H# s, v
图3.3:可解释性示例 3 e. _* F7 L5 S8 Q( i- g4. 知识图谱与推荐系统相结合 ! z. h% ?; E+ U; [" z N# |" y. x- e( x+ Y- s% r7 D$ P) D
4.1 基于特征的推荐方法' N" l1 Y- |: k3 |4 d5 X/ g
* ~% N7 H% T3 c x
基于特征的推荐方法,主要是从知识图谱中抽取一些用户和物品的属性作为特征,放入到传统模型中,如FM模型、LR模型等等。这并非是专门针对知识图谱设计,同时也无法引入关系特征。& W+ W$ I5 z3 o' C9 J* o* G. E0 K
# M! m* C$ @2 R. N* N4.2 基于路径的推荐方法 & r, I" j" ]+ J, {# }$ y+ d. F. K' X @+ J# G
基于路径的推荐方法,以港科大KDD 2017的录用论文《Meta-Graph Based Recommendation Fusion over Heterogeneous Information Networks》为代表。该类方法将知识图谱视为一个异构信息网络(heterogeneous information network),然后构造物品之间的基于meta-path或meta-graph的特征。简单地说,meta-path是连接两个实体的一条特定的路径,比如“演员->电影->导演->电影->演员”这条meta-path可以连接两个演员,因此可以视为一种挖掘演员之间的潜在关系的方式。这类方法的优点是充分且直观地利用了知识图谱的网络结构,缺点是需要手动设计meta-path或meta-graph,这在实践中难以到达最优;同时,该类方法无法在实体不属于同一个领域的场景(例如新闻推荐)中应用,因为我们无法为这样的场景预定义meta-path或meta-graph。. O! Y0 Y/ q4 e. L
9 |7 o. V# j4 E' X9 l4.3 知识图谱特征学习 0 p9 J- {8 ?- ] I, R+ B . r% x' g b9 m. s 知识图谱特征学习(Knowledge Graph Embedding)为知识图谱中的每个实体和关系学习得到一个低维向量,同时保持图中原有的结构或语义信息。一般而言,知识图谱特征学习的模型分类两类:基于距离的翻译模型和基于语义的匹配模型。 / | F' u$ S' t2 k( z" a, r+ R9 `* F$ I0 J; X
4.3.1 基于距离的翻译模型:使用基于距离的评分函数 0 \' W) C# P# w: \6 A; R9 G. s, [8 _. \
知识库中的实体关系类型可分为 一对一 、一对多 、 多对一 、多对多4 种类型,而复杂关系主要指的是 一对多 、 多对一 、多对多的 3 种关系类型。 ! q8 J' [6 J) {& p2 j! E, ^6 D! G2 V 2 T5 K) m& x6 U8 X$ d1 _% S* JTransE模型:' c, f1 _% g, A6 C% D) {$ J- Z+ [8 g
Border等人提出了TransE模型,将知识库中的关系看作实体间的某种平移向量。对于每个事实三元组(h,r,t),TransE模型将实体和关系表示为同一空间中,把关系向量r看作为头实体向量h和尾实体向量t之间的平移即h+r≈t。比如:对于给定的2个事实(姜文, 导演, 邪不压正)和(冯小刚, 导演, 芳华) ,除了可以得到:姜文+ 导演≈邪不压正和冯小刚+导演≈芳华,还可以通过平移不变性得到:邪不压正 - 姜文 ≈芳华 –冯小刚,即得到两个事实相同的关系(DirectorOf)的向量表示。我们也可以将r,看作从h到t,的翻译,因此TransE也被称为翻译模型,如图4.1(a)所示,对于每一个三元组(h,r,t)TransE希望:h+r≈t,评分函数在表1中所示。 6 u; u9 X5 l( Y- c: l7 d3 T) k* j5 H& x) C 虽然TransE模型的参数较少,计算的复杂度显著降低,并且在大规模稀疏知识库上也同样具有较好的性能与可扩展性。但是TransE 模型不能用在处理复杂关系上 ,原因如下:以一对多为例,对于给定的事实,以姜文拍的民国三部曲电影为例,即《让子弹飞》、《一步之遥》和《邪不压正》。可以得到三个事实三元组即(姜文,导演,让子弹飞)、(姜文,导演,一步之遥)和(姜文,导演,邪不压正)。按照上面对于TransE模型的介绍,可以得到,让子弹飞≈一步之遥≈邪不压正,但实际上这三部电影是不同的实体,应该用不同的向量来表示。多对一和多对多也类似。 - a' U1 H) Z1 j- ~ 7 L5 j! h, ~" TTransH模型: ; C" [& q. L5 X; a0 B; O; F 为了解决TransE模型在处理一对多 、 多对一 、多对多复杂关系时的局限性,TransH模型提出让一个实体在不同的关系下拥有不同的表示。如图4.1(b)所示,对于关系r,TransH模型同时使用平移向量r和超平面的法向量wr w_rw * y I7 g: T; D7 @4 w
r* G/ d5 j/ X" T' Q/ U5 \
* `4 ~! c8 {3 Z' Y1 r: y1 {- X 来表示它。对于一个三元组(h, r, t) , TransH首先将头实体向量h和尾实体向量r,沿法线wr w_rw j" v" o, L: y) u3 K9 Zr/ k& \' ~$ d+ Q7 f) _: E+ S
7 o; s9 c" F/ K' J ,影到关系r对应的超平面上,用h⊥ h_⊥h 6 J& W0 P9 p* \3 _- U r& ]⊥ 4 }% r0 H2 G' r" y/ Z- Z : [2 `. [ a" W
和t⊥ t_⊥t + X1 T. u$ s1 A) {+ l1 O' z0 W8 S* @
⊥ * b7 }/ l( D& J. J3 W ; x! N6 i9 S; q2 K8 R
表示如下: {% A% X' w: T( T- f R% gh⊥=h−wTrhwr,t⊥=t−wTrtwr. h_⊥=h-w_r^T hw_r, t_⊥=t-w_r^T tw_r.$ F# T7 W9 t5 A2 w' n, X5 m6 z
h # ~+ z7 j% R+ ?' I
⊥& |7 {" |) x0 [" K g Y s8 Y+ Z6 e
1 m" e2 G, I6 g% i) J! x* g$ a =h−w : M4 V9 B, m; z9 j0 [. w* b3 Wr7 [6 v/ z% ~+ H: b- x
T 1 q3 j. W, [& V; P) z2 m * a: S4 P4 U# G% t
hw 8 i2 i6 @6 ^1 z) d5 Br - V) i6 v \1 O* G 6 }8 } g& z6 P4 R7 v ,t + R- B+ w; u. A* S6 o8 S⊥( e* p. _+ u6 \# q
3 Y2 L4 |+ z& Z, q( u6 N, D& x6 ~
=t−w / `( a" b# `/ b7 [( | Nr ! [$ T+ g9 u( `+ T C& H( R9 F% C! fT# D4 J" V# o+ q/ d2 {$ M9 B9 o
8 C8 |# x. ] K1 k* ] tw c' Z; r7 A/ N5 A# ~r7 s+ l# Z( r3 Q0 H% c
9 q# r7 d3 x# I . 7 I/ z7 i7 R- z: g$ B! W2 t 因此TransH定义了如下评分函数如表1中所示,需要注意的是,由于关系r:可能存在无限个超平面,TransH简单地令r与wr w_rw 6 r% z1 f* Z9 k! @r4 G: j6 d, A: _/ c
2 k: j& I% a0 |$ Y5 _
,近似正交来选取某一个超平面。TransH 使不同的实体在不同的关系下拥有了不同的表示形式,但由于实体向量被投影到了关系的语义空间中,故它们具有相同的维度。 6 c; ~& ?' q ] - P: L2 D2 k- W( X, HTransR模型:: V, H2 D! Y5 n E
虽然TransH模型使每个实体在不同关系下拥有了不同的表示,它仍然假设实体和关系处于相同的语义空间中,这一定程度上限制了TransH的表示能力。TransR模型则认为,一个实体是多种属性的综合体,不同关系关注实体的不同属性。TransR认为不同的关系拥有不同的语义空间。对每个三元组,首先应将实体投影到对应的关系空间中,然后再建立从头实体到尾实体的翻译关系。如图4.1(c)所示是TransR模型的简单示例。 2 B8 V( h, t4 i! y3 ] 对于每个三元组(h,r,t),我们首先将实体向量向关系r空间投影。具体而言,对于每一个关系r,TransR定义投影矩阵Mr,将实体向量从实体空间投影到关系r的子空间,用h⊥ h_⊥h 1 F c7 t, \) n# h. \& K5 [: w⊥! I3 W; U& R8 z
/ i# V/ H0 Z" I- g
和t⊥ t_⊥t % U' I. ^7 e6 l
⊥ 8 t |! n3 \! R! Z. a! u / e( x6 W: t7 w, t 表示如下:0 g% X3 Z: U) R0 w( M- A( a
h⊥=Mrh,t⊥=Mrt. h_⊥=M_r h, t_⊥=M_r t.0 q3 s- _4 N6 j1 L: L
h 1 T8 F8 ]% }" N6 p⊥1 E3 ]& B) y% {/ b5 t8 Q
6 @! r3 }' p( ^% s =M # E: k8 L3 U* Jr - E' P" B! X% C) @3 M & m' o, j! N9 O% R# g
h,t 9 E% @$ G. }7 o. c! F2 ~⊥ ! U* N7 Y/ Z3 Z $ ?1 C- V4 \0 a9 X( q
=M " \1 H) h1 X( _# `7 lr 7 U5 ?7 Z& O7 e/ ~" U) h! `/ m 4 p# V$ l) @" {: o* g- ?! M2 T8 w
t. 9 y" N6 z# j6 d1 \% c% c然后使h⊥+r≈t⊥ h_⊥+r≈t_⊥h ; ?; V- \& _( n8 B3 q3 i" l⊥ / G" `5 `9 V6 {& V 4 S- r: Q8 G% V& q3 Z5 v/ [4 w/ S +r≈t ; e/ Q3 ?" r" i% S% U⊥1 L: w0 z( M' a4 C: C# [, S* ]& r
; m: @; U3 O+ _, ~. I , 评分函数如表1所示。 9 C$ r2 b! k8 V" u+ z6 ?% L : m2 p$ y n! b+ G U' O. ~2 u# F9 U $ ~2 ?0 a" J* W5 w图4.1:TransE,TransH和TransR的简要说明 : d+ B1 `) i9 J! Q( yTransD模型: ' R- ~1 z$ S3 a' _. Y( Z8 t6 M 虽然TransR模型较TransE和TransH有显著改进,它仍然有很多缺点: (1) 在同一个关系:下,头、尾实体共享相同的投影矩阵。然而,一个关系的头、尾实体的类型或属性可能差异巨大.例如,对于三元组(美国,总统,奥巴马),美国和奥巴马的类型完全不同,一个是国家,一个是人物。(2)从实体空间到关系空间的投影是实体和关系之间的交互过程,因此TransR让投影矩阵仅与关系有关是不合理的。(3)与TransE和TransH相比,TransR由于引入了空间投影,使得TransR模型参数急剧增加,计算复杂度大大提高。 / M6 V6 R) d: ?# p 为了解决这些问题,Ji等人提出了TransD模型。给定三元组(h, r, t), TransD模型设置了2个分别将头实体和尾实体投影到关系空间的投影矩阵M_r1和M_r2,具体定义如下:1 z" T& L+ `- R0 X+ S
M1r=wrwTh+I,M2r=wrwTt+I. M_r^1=w_r w_h^T+I, M_r^2=w_r w_t^T+I. 4 q5 ?( Y3 x/ h* W9 s' J- WM ' O* D+ F& @3 f' A P( x( B4 kr * Z2 X! y" f( V1 $ k2 x5 L7 E- R2 d + U3 N. z! _. V9 T& B7 ?) ?
=w 9 f# \5 f/ G3 R# m0 V
r5 E7 \, }# k: n, r! W2 t! h+ k. f
: [: g# Z9 j/ q) A% G3 a
w 7 ?: \2 ]' C) `( ?6 g* x5 i; }
h ! K2 k. ? G n5 k$ jT $ i" w0 u# N! a6 _, F f $ K5 P& v' i( L) X3 _ +I,M - f( P# E! i! P. i8 gr7 C+ y4 c9 f- @2 Q3 o' h2 r
2- b" k- p; v& a- [2 n
* I0 o7 D6 q8 R. T =w + Q/ ]- [ L6 jr5 [6 k. ]$ t9 @1 S
8 I) u' B% S: y: r. G
w ( m( G; _* d! B5 d2 ]4 V; ?
t $ X2 X% t1 K3 J8 r% gT7 }. C! A6 [) t% V/ H, ?. f
1 h$ y1 c# O/ y, V8 b: i: Z+ ]: A, Z
+I.1 S( k+ l8 e- B* q+ w" a2 E2 z
h⊥=M1rh,t⊥=M2rt. h_⊥=M_r^1 h, t_⊥=M_r^2 t. 9 W( D1 b9 ?, C2 I* Z$ {& ~: {h , i" X* s! |! P2 K$ y' M* C8 w⊥ . N) n- q/ p8 f. Y) ] / P6 \/ @3 i# G' V! B
=M ) K- l4 Z! T% C+ { lr ! q! q) F0 |! N1 v% W4 f1 4 Y! @) Z( H8 K Z " @+ d; |3 R" z- @7 o h,t $ G4 d+ U: d" q( _; E
⊥ ; T5 O9 \1 E0 W8 P5 l ; a0 v. T: g3 E5 e0 W" ^
=M & Y" ]% c3 W; X7 m( X4 P p) lr7 J3 V$ |& b4 F: G2 Y- N8 z$ p/ }
2- B1 @* I8 g/ w* Z# }/ c
* i. {% ~5 s8 j7 \# c' f" F t. - j X# K0 L" y, ?% t% U7 f1 d" y" s9 F0 @' f8 G* a
TransSparse模型:* G/ q0 ?2 |+ V$ B$ `1 O: J
TranSparse是通过在投影矩阵上强化稀疏性来简化TransR的工作。它有两个版本:TranSparse (共享)和TranSparse (单独)。前者对每个关系r使用相同的稀疏投影矩阵Mr,即:6 Z9 p8 @; D# @* Y5 D
h⊥=Mr(θr)h,t⊥=Mr(θr)t. h_⊥=M_r (θ_r )h, t_⊥=M_r (θ_r)t. / F8 `5 s6 U* U( h& Dh , X! h0 T$ v* H/ {0 D3 b& a
⊥ 1 \7 {- M- x! \6 a 9 x! \& d n x =M . ]/ O, p- i8 u
r1 [0 u- M* o/ S; f2 ~! s
I8 {6 s5 k! i% Y8 u (θ ; o" l0 b# v& M' a j: o( {2 lr2 m. ~# w) r6 J5 ~2 B1 i9 |3 J2 B1 s
- u$ H; G; Z" y7 f. O# f
)h,t 7 {/ h9 T1 u7 K+ S⊥ p% s1 M( l# n ?! k) M0 Q ' w$ s5 R8 V' ^4 X =M " x9 x3 _$ {1 H7 Y n8 c
r % W9 T3 x: A$ l. l1 v; @9 B! _$ F' J ' Z( @& L- H9 H (θ + D' k& y! \& {r , ~/ n. Y3 s+ X; i 6 j& h% o7 `; X3 S$ q )t. 5 X* N% c& m3 L后者对于头实体和尾实体分别使用2个不同的投影矩阵Mr1 M_{r1}M 2 U6 n5 f/ p7 n
r1 , q4 l8 d2 r4 s1 |' Y. E, w 7 C9 M9 k0 Y$ {: R* l5 J 和Mr2 M_{r2}M 5 T& ^" W" Q3 L1 L3 O6 B
r2 2 u3 R- B/ U9 x7 L. v 1 O( y: Q/ K& \, M/ ~
。5 n6 Y' T! f, C
h⊥=M1r(θ1r)h,t⊥=M2r(θ2r)t. h_⊥=M_r^1 (θ_r^1 )h, t_⊥=M_r^2 (θ_r^2)t.8 t7 I" \# U) X, D
h . L* w* z" J# g7 {7 u: }! P. x% h
⊥ " x# T* D/ q# E" g) i% f @; `- W2 e3 m; E& `. Q8 ~6 ~8 c
=M 3 y. p* T8 T$ _3 f$ I" E& @
r% ~9 [* u2 j2 P
1( U* c3 j0 f# g9 N
' G* t# t' A9 W" v+ B5 J. H/ d$ \* y
(θ 7 j3 @" G8 Q# k
r3 L0 k) T+ a1 u* a _7 U/ k
19 n9 y7 m% ~- W ^+ ] v
7 C0 Z. q; v4 @( {! h# Y )h,t 6 }: W0 `5 R% \: m" N⊥# l5 E5 q+ ?6 v6 J; k6 n
5 w. ~2 ^( m4 }9 ?! L# j( j
=M - |, f" [$ d3 k. B
r3 A8 m1 o+ G: o$ ]
26 W4 Q( r$ I" H8 ^+ [0 l( n# n1 D
, s X, }$ p* h/ g (θ " l- q. e9 |( |- U1 j% Y( M
r 2 M$ Z2 d3 e. p5 R% Q4 b: B2 3 ?- h6 g: V. @. X! } 7 a( l! g% z5 M+ o0 [) A
)t.7 `6 c! d+ J! c2 k. P- q% D; r
TransSparse模型评分函数如表1所示。通过引入稀疏投影矩阵,TransSparse模型减少了参数个数。 ; o% @7 Y9 Q+ G; s+ b6 w4 p3 M: l3 b5 h . R# w+ x6 V# |4 k3 ?( g7 FTransM模型: + N/ q0 S* c2 w: \; j; Q 除了允许实体在涉及不同关系时具有不同的嵌入之外,提高TransE模型性能可以从降低h+r≈t的要求研究开始。TransM模型将为每个事实(h,r,t)分配特定的关系权重theta_r,定义的评分函数如表1所示。通过对一对多、多对一和多对多分配较小的权重,TransM模型使得t在上述的复杂关系中离h+r更远。 4 H8 {. X8 t8 A! u7 O2 \9 g7 F$ s$ d8 j( G) O
ManifoldE模型: 2 i! p4 F4 y3 W2 k% C ManifoldE模型则是对于每个事实三元组(h,r,t)将h+r≈t 转换为为(h+r-t)的L2范式约等于theta_r的平方。同样地,ManifoldE把t近似地位于流形体上,即一个以h+r为中心半径为theta_r的超球体,而不是接近h+r的精确点。评分函数如表1所示。TransF使用了类似的思想。而不是执行严格的翻译h+r≈t,TransF只需要t与h+r位于同一个方向,同时h与t-r也位于同一个方向。则评分函数(即t和h+r匹配,h也要与t-r匹配)如表1所示。 % l: ~: ?5 _& }+ X( u1 v. L# ?4 a/ U o2 h
TransA模型:) a! X1 ^3 r, X1 g
TransA模型为每个关系r引入一个对称的非负矩阵Mr M_rM : O8 g3 m# d$ O; k; p3 r6 Q x; ]4 @
r / ~4 u. b) }: k* {8 M/ e & ~* @& k! r" ` ,并使用自适应马氏距离定义评分函数,评分函数如表1所示。通过学习距离度量Mr M_rM 7 i- a N' u* B+ E/ A+ pr0 |/ _" ]. \! L7 z& z. S
; f# T# t6 d' H: {, }, d0 ^
, TransA在处理复杂关系时更加灵活。Xiao等人认为TransE及其之后的扩展模型均存在2个重要问题:1)评分函数只采用L1或L2距离,灵活性不够;2)评分函数过于简单,实体和关系向量的每一维等同考虑。为了解决这2个问题,Xiao等人提出TransA模型,将评分函数中的距离度量改用马氏距离,并为每一维学习不同的权重。对于每个三元组(h,r,t),TransA模型定义的评分函数如表1所示。其中Mr为与关系r相关的非负权值矩阵。如图4.2所示,(h1,r1,t1) ( h_1, r_1, t_1)(h : E$ c* U8 C, @8 ^+ u& l3 I
1 . v$ Y0 S6 i% }) o# Z( W; E & i, a! ^# w8 X" S2 v7 U
,r 4 j& j3 G7 b5 D4 }1/ i: p! g. z @1 o: }
! F8 L& I4 u- }5 G
,t ( _5 Q/ ? O$ j
1 ) e4 A: _3 }! Q; _' Q1 C# u # r- @4 Q8 V1 q2 d3 r$ t
)和(h2,r2,t2) (h_2,r_2,t_2)(h ( B# h. P" A9 e% x0 J1 V* X3 K
2 & s7 X3 A& h6 E. M2 H$ A& W \ % o* e3 ?+ G. ~4 P6 j9 E; f ,r 9 P7 a7 j" E2 V- G; M! x7 h6 k$ B24 {/ j8 V; ]* l5 z
1 y3 ]4 K" }, X) N9 e* y ,t * h+ J/ D# Z% I2 k& v" w! g6 i2+ F9 i: U. s8 P" {
4 j! V' q2 z5 h( M$ Q
)两个合法的事实三元组,t3是错误的尾实体。如果使用欧氏距离,如图4.2(a)所示,错误的实体t3会被预测出来。而如图4.2(b)所示,TransA模型通过对向量不同维度进行加权,正确的实体由于在x轴或者y轴上距离较近,从而能够被正确预测。 7 j O* C" ^7 T) p3 c6 G- k V4 Z6 }& u5 W* Y: B% j