日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TransH

發布時間:2024/9/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TransH 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了解決TransE模型在處理一對多 、 多對一 、多對多復雜關系時的局限性,TransH模型提出讓一個實體在不同的關系下擁有不同的表示。如下公式所示,對于關系rrr,TransH模型同時使用平移向量rrr和超平面的法向量wrw_rwr?來表示它。對于一個三元組(h,r,t)(h, r, t)(h,r,t) , TransH首先將頭實體向量hhh和尾實體向量rrr,沿法線wrw_rwr?,映射關系rrr對應的超平面上,用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?
需要注意的是,由于關系r:可能存在無限個超平面,TransH簡單地令r與w_r,近似正交來選取某一個超平面。TransH 使不同的實體在不同的關系下擁有了不同的表示形式,但由于實體向量被投影到了關系的語義空間中,故它們具有相同的維度。

我們可以通過先下面這圖來進一步加深對這個超平面概念的理解:

根據上圖,我們可以得一個三元組元素的數學表示,h和t分別代表頭結點和尾節點的向量,而關系超平面由平面的法向量wrw_rwr?以及平面上的平移向量 drd_rdr?表示。

具體的算法實現,對于一個三元組,我們首先需要將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=whcosθ表示hhhwrw_rwr?方向上投影的長度(帶正負號),乘以wrw_rwr?hhhwrw_rwr?上的投影。

得到投影之后,我們就可以根據下面的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?
這個公式中所期望的結果為,如果三元組關系是正確的,則結果數值較小,反之則結果數值較大。

為了實現上述所期望的結果,作者引入了margin-base ranking function 作為損失函數來訓練模型:
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Δ表示負例集合,γ\gammaγ為margin值用于區分正例和負例。這個loss通過Mini-SGD進行訓練,需要強調的一點是,訓練過程中,需要讓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) ?eE,e2?1,//scale(1)?rR,wr??dr?/dr?2??,//orthogonal(2)?rR,wr?2?=1,//unitnormalvector(3)
公式一是保證所有實體的embedding都歸一化。
公式二則用于保證wrw_rwr?drd_rdr?正交垂直,保證drd_rdr?在超平面上。
公式三則保證法向量的模為1。

為了體現上面三個約束條件,需要對loss function進行修改,加上對公式一和公式二的約束:
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{eE?[e22??1]+?+rR?[dr?22?(wr??dr?)2???2]+?}(4)
其中C表示軟約束的權重,它也是訓練過程中的一個超參數。

而公式三則是在每次Mini-SGD后,對 wrw_rwr?結果進行歸一化實現。

最后,TransH與TransE還有一點不同之處,在于負例的生成。現實中的知識圖譜不完整,需要減少假負例(即替換了一個節點后的三元組,恰好是整個知識圖譜中存在的另一個三元組)的出現,因此需要根據頭尾節點關系,進行節點替換,比如,對于一對多的關系,我們更多的替換頭結點而不是尾節點,這樣才能避免假負例出現的情況,具體的標準如下:

對于一個關系rrr, 我們首先要統計兩個數值,即這個關系每個頭結點平均對應的尾節點數,記做tphtphtph;及這個關系每一個尾節點平均對應的頭節點數,記做 hpthpthpt 。最后通過公式p=tphtph+hptp=\frac{tph}{tph+hpt}p=tph+hpttph?來表示頭結點被替換的概率,而尾節點替換的概率為1?p1-p1?p

相比于transE, TransH新增了很多參數,使得loss 在SGD中求梯度變得更為復雜,下面簡單介紹下,各個參數梯度求解結果。首先Loss 可以分解為一下三個式子:

其中Loss1的各參數求導如下:

總結

以上是生活随笔為你收集整理的TransH的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。