TransH
為了解決TransE模型在處理一對多 、 多對一 、多對多復(fù)雜關(guān)系時的局限性,TransH模型提出讓一個實體在不同的關(guān)系下?lián)碛胁煌谋硎尽H缦鹿剿?#xff0c;對于關(guān)系rrr,TransH模型同時使用平移向量rrr和超平面的法向量wrw_rwr?來表示它。對于一個三元組(h,r,t)(h, r, t)(h,r,t) , TransH首先將頭實體向量hhh和尾實體向量rrr,沿法線wrw_rwr?,映射關(guān)系rrr對應(yīng)的超平面上,用h⊥h_\perph⊥?和t⊥t_\perpt⊥?表示如下:
h⊥=h?wr?hwrt⊥=t?wr?twrh_\perp=h-w_r^\top hw_r \\ t_\perp = t - w_r ^ \top tw_r h⊥?=h?wr??hwr?t⊥?=t?wr??twr?
需要注意的是,由于關(guān)系r:可能存在無限個超平面,TransH簡單地令r與w_r,近似正交來選取某一個超平面。TransH 使不同的實體在不同的關(guān)系下?lián)碛辛瞬煌谋硎拘问?#xff0c;但由于實體向量被投影到了關(guān)系的語義空間中,故它們具有相同的維度。
我們可以通過先下面這圖來進(jìn)一步加深對這個超平面概念的理解:
根據(jù)上圖,我們可以得一個三元組元素的數(shù)學(xué)表示,h和t分別代表頭結(jié)點和尾節(jié)點的向量,而關(guān)系超平面由平面的法向量wrw_rwr?以及平面上的平移向量 drd_rdr?表示。
具體的算法實現(xiàn),對于一個三元組,我們首先需要將h和t映射到我們的超平面上,從而得到映射向量 [公式] 和 [公式] , 具體公式如下:
h⊥=h?wr?hwrt⊥=t?wr?twrh_\perp=h-w_r^\top hw_r \\ t_\perp = t - w_r ^ \top tw_r h⊥?=h?wr??hwr?t⊥?=t?wr??twr?
其中簡單說明下wr?hwrw_r^\top h w_rwr??hwr?的含義,這里wr?h=∣w∣∣h∣cosθw_r^\top h = | w| |h|cos\thetawr??h=∣w∣∣h∣cosθ表示hhh在wrw_rwr?方向上投影的長度(帶正負(fù)號),乘以wrw_rwr?即hhh在wrw_rwr?上的投影。
得到投影之后,我們就可以根據(jù)下面的score function來求得三元組的差值:
fr(h,t)=∣∣(h?wr?hwr)+dr?(t?wr?twr)∣∣22f_r(h,t) = || (h-w_r^\top hw_r) +d_r-(t - w_r ^ \top tw_r) ||_2^2 fr?(h,t)=∣∣(h?wr??hwr?)+dr??(t?wr??twr?)∣∣22?
這個公式中所期望的結(jié)果為,如果三元組關(guān)系是正確的,則結(jié)果數(shù)值較小,反之則結(jié)果數(shù)值較大。
為了實現(xiàn)上述所期望的結(jié)果,作者引入了margin-base ranking function 作為損失函數(shù)來訓(xùn)練模型:
L=∑(h,r,t)∈Δ∑(h′,r′,t′)∈Δ(h′,r′,t′)[fr(h,t)+γ?fr′(h′+t′)]+\mathcal{L}=\sum_{(h,r,t) \in \Delta} \sum_{(h^\prime,r^\prime,t^\prime) \in \Delta _{(h^\prime,r^\prime,t^\prime)}} [f_r(h,t) + \gamma -f_{r^\prime}(h^\prime + t^\prime) ]_+ L=(h,r,t)∈Δ∑?(h′,r′,t′)∈Δ(h′,r′,t′)?∑?[fr?(h,t)+γ?fr′?(h′+t′)]+?
其中,[x]+[x]+[x]+看做max(0,x)max(0,x)max(0,x),Δ\DeltaΔ表示正確三元組的集合,Δ′\Delta ^\primeΔ′表示負(fù)例集合,γ\gammaγ為margin值用于區(qū)分正例和負(fù)例。這個loss通過Mini-SGD進(jìn)行訓(xùn)練,需要強(qiáng)調(diào)的一點是,訓(xùn)練過程中,需要讓fr(h,t)f_r(h,t)fr?(h,t)盡可能的小,fr′(h′,t′)f_{r^\prime}(h^\prime,t^\prime)fr′?(h′,t′)盡可能大。
除此之外,在最小化loss function的過程中,模型還需要遵循三個軟約束原則:
?e∈E,∣∣e∣∣2≤1,//scale(1)?r∈R,∣wr?dr∣/∣∣dr∣∣2≤?,//orthogonal(2)?r∈R,∣∣wr∣∣2=1,//unitnormalvector(3)\forall e \in E, ||e||_2 \leq 1, // scale (1) \\ \forall r \in R, |w_r^\top d_r| /||d_r||_2 \leq \epsilon, //orthogonal (2)\\ \forall r \in R, ||w_r||_2=1,//unit normal vector (3) ?e∈E,∣∣e∣∣2?≤1,//scale(1)?r∈R,∣wr??dr?∣/∣∣dr?∣∣2?≤?,//orthogonal(2)?r∈R,∣∣wr?∣∣2?=1,//unitnormalvector(3)
公式一是保證所有實體的embedding都?xì)w一化。
公式二則用于保證wrw_rwr?和drd_rdr?正交垂直,保證drd_rdr?在超平面上。
公式三則保證法向量的模為1。
為了體現(xiàn)上面三個約束條件,需要對loss function進(jìn)行修改,加上對公式一和公式二的約束:
L=∑(h,r,t)∈Δ∑(h′,r′,t′)∈Δ(h′,r′,t′)[fr(h,t)+γ?fr′(h′+t′)]++C{∑e∈E[∥e∥22?1]++∑r∈R[(wr?dr)2∥dr∥22??2]+}(4)\mathcal{L} = \sum_{(h,r,t) \in \Delta} \sum_{(h^\prime,r^\prime,t^\prime) \in \Delta _{(h^\prime,r^\prime,t^\prime)}} [f_r(h,t) + \gamma -f_{r^\prime}(h^\prime + t^\prime) ]_+ + C \left\{ \sum _{e \in E} \left[ \left \| e\right \| _2^2 -1 \right ] _+ + \sum_{r \in R}\left [ \frac {(w_r^\top d_r)^2}{\left \| d_r \right \| _2^2} - \epsilon ^2 \right ] _+ \right\} \\(4) L=(h,r,t)∈Δ∑?(h′,r′,t′)∈Δ(h′,r′,t′)?∑?[fr?(h,t)+γ?fr′?(h′+t′)]+?+C{e∈E∑?[∥e∥22??1]+?+r∈R∑?[∥dr?∥22?(wr??dr?)2???2]+?}(4)
其中C表示軟約束的權(quán)重,它也是訓(xùn)練過程中的一個超參數(shù)。
而公式三則是在每次Mini-SGD后,對 wrw_rwr?結(jié)果進(jìn)行歸一化實現(xiàn)。
最后,TransH與TransE還有一點不同之處,在于負(fù)例的生成。現(xiàn)實中的知識圖譜不完整,需要減少假負(fù)例(即替換了一個節(jié)點后的三元組,恰好是整個知識圖譜中存在的另一個三元組)的出現(xiàn),因此需要根據(jù)頭尾節(jié)點關(guān)系,進(jìn)行節(jié)點替換,比如,對于一對多的關(guān)系,我們更多的替換頭結(jié)點而不是尾節(jié)點,這樣才能避免假負(fù)例出現(xiàn)的情況,具體的標(biāo)準(zhǔn)如下:
對于一個關(guān)系rrr, 我們首先要統(tǒng)計兩個數(shù)值,即這個關(guān)系每個頭結(jié)點平均對應(yīng)的尾節(jié)點數(shù),記做tphtphtph;及這個關(guān)系每一個尾節(jié)點平均對應(yīng)的頭節(jié)點數(shù),記做 hpthpthpt 。最后通過公式p=tphtph+hptp=\frac{tph}{tph+hpt}p=tph+hpttph?來表示頭結(jié)點被替換的概率,而尾節(jié)點替換的概率為1?p1-p1?p
相比于transE, TransH新增了很多參數(shù),使得loss 在SGD中求梯度變得更為復(fù)雜,下面簡單介紹下,各個參數(shù)梯度求解結(jié)果。首先Loss 可以分解為一下三個式子:
其中Loss1的各參數(shù)求導(dǎo)如下:
總結(jié)
- 上一篇: 怎么让单眼皮变双眼皮
- 下一篇: 拔了牙以后多久才可以上牙套