CCF BDCI 技术需求与技术成果关联度冠军分享
“技術(shù)需求”與“技術(shù)成果”關(guān)聯(lián)度比賽
CCF BDCI?“技術(shù)需求”與“技術(shù)成果”項目之間關(guān)聯(lián)度計算比賽由中國計算機學會和八六三軟件發(fā)起,賽題目的是發(fā)現(xiàn)好的方法、算法或模型,并提供用于驗證的程序源代碼,可應(yīng)用于平臺模擬人工,實現(xiàn)“需求——成果智能匹配服務(wù)”。
文本將介紹冠軍團隊"莽就完事了"的賽題分享,冠軍團隊由馬凱欣一人組成。凱欣來自東北林業(yè)大學,本文將包括凱欣的參賽方案分享和代碼分享。
莽就完事了 |?馬凱欣
我叫馬凱欣,來自東北林業(yè)大學,目前是計算機技術(shù)專業(yè)一年級在讀,專業(yè)方向是自然語言處理。我之前沒有參加過大數(shù)據(jù)與人工智能的相關(guān)比賽,這次是我的頭一次,CCF BDCI的賽題我也不知道挑哪一個好。
說到參賽經(jīng)歷我倒是有一些,本科參加過ACM-ICPC競賽,也取得過一些獎項。
by?馬凱欣
賽題介紹&數(shù)據(jù)
人工判斷技術(shù)需求和技術(shù)成果關(guān)聯(lián)度的方法是:從事技術(shù)轉(zhuǎn)移工作的專職工作人員,閱讀技術(shù)需求文本和技術(shù)成果文本,根據(jù)個人經(jīng)驗予以標注。
“技術(shù)需求”與“技術(shù)成果”項目之間關(guān)聯(lián)度計算模型技術(shù)需求與技術(shù)成果之間的關(guān)聯(lián)度分為四個層級:強相關(guān)、較強相關(guān)、弱相關(guān)、無相關(guān)。
| DataSet.zip | 包含兩個csv文件, 其中Achievements為技術(shù)成果表,Requirements為技術(shù)需求表。 |
| Train_Label.csv | 為關(guān)系表,標注了部分Achievements技術(shù)成果表跟Requirements技術(shù)需求表的關(guān)聯(lián)關(guān)系。 |
| Test.csv | 為待預測的關(guān)系表,需要預測技術(shù)成果表跟技術(shù)需求表的關(guān)聯(lián)關(guān)系。 |
Achievements為技術(shù)成果表,文件中的(.csv)(UTF-8編碼)一行對應(yīng)于一個技術(shù)成果,以“,”分割不同的識別字段,具體描述具體格式如下:
| Guid | string | ID列 |
| Title | string | 技術(shù)成果的標題 |
| Content | string | 技術(shù)成果的具體內(nèi)容? |
Requirements為技術(shù)需求表,文件中的(.csv)(UTF-8編碼)一行對應(yīng)于一個技術(shù)需求,以“,”分割不同的識別字段,具體描述具體格式如下:
| Guid | string | ID列? |
| Title | string | 技術(shù)需求的標題? |
| Content | string | 技術(shù)需求的具體內(nèi)容? |
Train_Label.csv是Achievements技術(shù)成果表跟Requirements技術(shù)需求表的關(guān)聯(lián)關(guān)系:
| Guid | string | ID列 |
| Aid | string | 技術(shù)成果的表的ID |
| Rid | string | 技術(shù)需求的表的ID |
| Level | string | 1無相關(guān)、2弱相關(guān)、3較強相關(guān)、4強相關(guān)? |
評測方法
本次競賽初賽評價指標使用MAE系數(shù)。平均絕對差值是用來衡量模型預測結(jié)果對標準結(jié)果的接近程度一種衡量方法。計算方法如下:
??其中pred_i為預測樣本,y_iy_i為真實樣本。MAE的值越小,說明預測數(shù)據(jù)與真實數(shù)據(jù)越接近。最終結(jié)果為:
最終結(jié)果越接近1分數(shù)越高.
數(shù)據(jù)清洗&數(shù)據(jù)增廣
經(jīng)過對賽題文本的內(nèi)容進行篩選查看,發(fā)現(xiàn)其中存在一定量的空白、"\n"、"未提供"等無效信息。簡單的使用對應(yīng)標題對無用信息進行替換即可。
對問題進一步化簡,可以簡化成兩個文本之間的關(guān)聯(lián)度計算。
那么A文本與B文本之間關(guān)聯(lián)度,同樣也是B文本與A文本之間關(guān)聯(lián)度。該方法在僅取標題時可以提升成績。當加入內(nèi)容時會造成過擬合,最終未采用該方法。
那么假設(shè)A文本與B文本之間關(guān)聯(lián)度為4,A文本與C文本之間關(guān)聯(lián)度為3,那么可以假定B文本與C文本之間關(guān)聯(lián)度為3,按照這個思路可以假設(shè)關(guān)聯(lián)矩陣
其中A文本與B文本之間關(guān)聯(lián)度為i,A文本與C文本之間關(guān)聯(lián)度為j,那么B文本與C文本之間關(guān)聯(lián)度為R_(i,j)。此方法可增加數(shù)據(jù)295994條,從中按照原數(shù)據(jù)集各個關(guān)聯(lián)度等級的比例從中隨機取出10000條。
該方法我認為具有一定的可能性,但由于訓練時間過長、提交次數(shù)有限,嘗試過的參數(shù)均會造成過擬合現(xiàn)象。最終模型中未對數(shù)據(jù)進行數(shù)據(jù)增廣。
構(gòu)建模型
經(jīng)過一定量的實驗對比最終的模型確定為分別進行標題與內(nèi)容關(guān)聯(lián)度判別的孿生BERT模型,其中進行技術(shù)成果標題和技術(shù)需求標題關(guān)聯(lián)度計算的BERT采用谷歌開源的BERT-base;進行技術(shù)成果內(nèi)容與技術(shù)需求內(nèi)容關(guān)聯(lián)度計算的BERT采用哈工大提出的BERT-wmm。
最終只采用這個模型,也沒有進行融合。當然可以很簡單的認為它就是分別使用兩個BERT進行相似度判別然后進行拼接。?
其中進行技術(shù)成果標題與技術(shù)需求標題關(guān)聯(lián)度計算的BERT采用谷歌開源的BERT-base;進行技術(shù)成果內(nèi)容與技術(shù)需求內(nèi)容關(guān)聯(lián)度計算的BERT采用哈工大訊飛聯(lián)合實驗室發(fā)布基于全詞覆蓋的BERT-WWM。該預訓練由于采用了全詞覆蓋,在多數(shù)情況下可以取得更好的效果。
在第一個進行技術(shù)成果標題與技術(shù)需求標題關(guān)聯(lián)度計算的BERT中輸入最大長度MaxLenT設(shè)置為128,兩個標題拼接最大長度也沒有超過128個字,同時這樣可以減少訓練時間和顯存需求;在第二個進行技術(shù)成果內(nèi)容與技術(shù)需求內(nèi)容關(guān)聯(lián)度計算的BERT-WWM中輸入最大長度MaxLenC設(shè)置為512,盡可能多的讀取數(shù)據(jù)內(nèi)容。
兩個BERT都采用12layers, 768hidden states, 12heads版本,該模型采用7折交叉驗證,其中batch size取16,epoch取8,并在訓練時保存較好的模型權(quán)值,初始學習率設(shè)置成5e-5,后續(xù)學習率設(shè)置成1e-5。
預測后處理
通過觀測評測指標發(fā)現(xiàn),當模型判斷關(guān)聯(lián)度為1和2的概率非常接近時,輸出為2更加合理。所以當模型無法判別時,通過修正可以將輸出偏向2或3。
模型對比
1.其中BERT-base、RoBERTa-base、BERT+數(shù)據(jù)增廣-1、BERT+數(shù)據(jù)增廣-2、BERT+數(shù)據(jù)增廣-3模型中輸入均只有技術(shù)成果標題與技術(shù)需求標題,MaxLenT為128,其余超參數(shù)與最終模型中基本相同。
2.孿生BERT-1模型為標題與內(nèi)容拼接的孿生BERT模型,MaxLen為512,其余超參數(shù)與最終模型中基本相同。
3.孿生BERT-2模型為分別進行標題與內(nèi)容關(guān)聯(lián)度判別的孿生BERT模型,MaxLen為512,其余超參數(shù)與最終模型中基本相同。
4.BERT+數(shù)據(jù)增廣-1模型中,數(shù)據(jù)增廣采用第一種方式。
5.BERT+數(shù)據(jù)增廣-2模型中,數(shù)據(jù)增廣采用第二種方式,且取全部增廣數(shù)據(jù)。
6.BERT+數(shù)據(jù)增廣-3模型中,數(shù)據(jù)增廣采用第二種方式,但按照原數(shù)據(jù)集各個關(guān)聯(lián)度等級的比例從中隨機取出。
7.BERT-T128C512模型中BERT均采用谷歌發(fā)布的BERT-base,其余超參數(shù)與最終模型中相同。
8.BERT-WWM-T128C512模型中BERT均采用采用哈工大訊飛聯(lián)合實驗室發(fā)布的BERT-WWM,其余超參數(shù)與最終模型中相同。
9.最終模型中標題采用谷歌發(fā)布的BERT-base,內(nèi)容采用哈工大訊飛聯(lián)合實驗室發(fā)布的BERT-WWM。
比賽總結(jié)
我個人認為BERT-WWM預訓練相比于BERT預訓練對中文效果應(yīng)該更好,而得到這樣的結(jié)果,可能的原因是兩個預訓練在訓練時使用的語料庫不同,標題部分中專業(yè)名詞比重較大且短小,BERT對此比較敏感,而BERT-WWM對常規(guī)文本比較敏感。當然這個成績中也有預測偏好處理的功勞。
本次比賽十分感謝華南理工大學Chevalier同學在知乎上分享的BaseLine。本代碼修改于該代碼。由于剛開始接觸深度學習,也是頭一次參加比賽,本人水平有限歡迎批評指正。郵箱:1239977613@qq.com
冠軍代碼分享:
https://github.com/Makaixin/Correlation-between-requirements-and-achievements
備注:公眾號菜單包含了整理了一本AI小抄,非常適合在通勤路上用學習。
往期精彩回顧那些年做的學術(shù)公益-你不是一個人在戰(zhàn)斗適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎(chǔ)下載(第一部分)備注:加入本站微信群或者qq群,請回復“加群”加入知識星球(4500+用戶,ID:92416895),請回復“知識星球”喜歡文章,點個在看
總結(jié)
以上是生活随笔為你收集整理的CCF BDCI 技术需求与技术成果关联度冠军分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 震惊了!每30秒学会一个Python小技
- 下一篇: 特征工程与规则模型