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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PCNN实践

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

學習了這份代碼, 但我出了bug沒有跑起來

PCNN的原理省略. 這個模型希望通過已知實體的上中下三部分的文本環境, 基于環境判斷關系是否存在.
使用CNN我猜是因為textCNN的影響. textCNN可以無視輸入句子尺寸地進行訓練, 依靠max pooling和卷積層強大的信息提取能力, 保證訓練結果. PCNN需要同樣的機制.

PCNN+ATT

主要是想總結一下attention的使用.
關系抽取方面, 因為數據過于難搞, 所以大多用多示例學習+遠程監督的方式, 即搜羅很多包含a和b的句子, 然后假定這些句子里必有一個表示a和b關系的句子, 就把這些句子打個包, 給這個包標上a和b的關系.
PCNN+ONE是在訓練過程中通過最大熵的計算, 獲得那個最有可能存在關系的句子, 只做這個句子的輸出.
PCNN+ATT認為ONE的處理太硬性, 其實其他的句子也可能包含一些能學到的東西, 所以利用attention做一個輸出與標簽之間的相似度, 相似度歸一化后用它來決定每個句子的輸出信息保留多少. 這里的attention用xAr, 其中x就是每個句子的輸出特征矩陣, r是標簽矩陣, A是轉移矩陣. 如果這里用xr, 那就是PCNN+ONE. 因為對一個包來說只有一個關系標簽, 所以r就是個零一矩陣, 只有對應的關系上是1. 也就相當于Ar是在選擇A的某一個向量, 也就相當于A是所有關系在高維空間上的映射.

這一點很重要

接上文, 如果A是標簽的映射, 那xA就必然是特征經轉移矩陣到關系空間的路徑, xAr可以計算相似度, 那xA+b就肯定能得到對應的關系標簽. 所以這個A既作為attention的矩陣, 又作為預測關系的W.

代碼: mask機制

此mask與bert中的訓練詞向量的mask不同, 它只是一個計算時的小trick. 這個trick來源于openNRE的PCNN實現.
PCNN要對三部分矩陣分別進行max pooling, 那就要在pooling之前把卷積結果分割, 再求pooling.
mask是這樣做的. 為方便我就以實例來說明:
有一個句子, 一共5個詞, 所以它某個核卷積后的結果是[3,4,7,1,5]. 正常方法是分割成[3,4],[7,1],[5], 然后逐段做pooling得到[4,7,5].
而mask將這個矩陣變成這樣:
[[103, 3, 3],
[104, 4, 4]
[7, 107, 7]
[1, 101, 1]
[5, 5, 105]]
另: mask矩陣是這樣
[[100, 0, 0],
[100, 0, 0],
[0, 100, 0],
[0, 100, 0],
[0, 0, 100]]
可以看到, 第一個矩陣是[3,4,7,1,5]T^TT+第二個矩陣的結果, 這個預先處理的mask矩陣可以把一句話的三部分有效地摘出來, 只要在列向量上求max. 對其求max后獲得[104, 17, 105], 同時減去100, 結果為[4,7,5], 和普通的pooling操作結果一致, 空間占用*3, 但由于不用逐個句子切割所以pooling速度大大加快.

總結

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

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