中科院信工所雏鹰团队在SemEval上大显神威
中科院信工所雛鷹團隊在SemEval上大顯神威
道翰天瓊認知智能機器人平臺API接口大腦為您揭秘。國際語義評測研討會(International Workshop on Semantic Evaluation, SemEval)是由ACL下屬的SIGLEX主辦,是全球范圍內影響力最強、規模最大、參賽人數最多的自然語言語義評測競賽。
?
在本屆SemEval-2020國際語義評測大賽中,中國科學院信息工程研究所胡玥老師帶領的參賽團隊雛鷹團隊(系統名:III-ENLP-NUT)(團隊成員:邢璐茜、謝玉強、彭偉)在Task4: Commonsense Validation and Explanation (常識驗證與解釋, 子任務A-常識驗證及子任務B-常識解釋選擇上均取得了Top-3的好成績。https://competitions.codalab.org/competitions/21080
?
論文鏈接:https://arxiv.org/abs/2007.00924以下胡玥團隊將為大家帶來詳細的大賽分享。
1
任務介紹&分析
任務介紹
SemEval-2020 常識驗證與解釋任務由西湖大學博士生王存翔、 SUTD博士生梁帥龍、西湖大學張岳教授和Queen’s University 朱曉丹教授共同舉辦。該賽題進一步劃分為三個子任務,分別是a) Commonsense Validation,b) Commonsense Explanation(Multi-Choice),c) Commonsense Explanation(Generation)子任務A: Commonsense Validation常識驗證子任務中,輸入為兩個有相似結構的陳述,要求系統判斷出哪個陳述是符合常識的,哪個陳述相對不符合常識。評價指標采用準確率。子任務B: Commonsense Explanation (Multi-Choice)常識解釋選擇子任務中,輸入為子任務A中不符合常識的錯誤陳述,以及三個可能為不符合常識陳述的解釋選項,要求系統從候選選項集合中,選出最能夠解釋不符合常識陳述出錯的原因。評價指標采用準確率。子任務C: Commonsense Explanation (Generation)常識解釋生成子任務中,輸入同樣為子任務A中不符合常識的錯誤陳述,要求系統?成可以解釋不符合常識陳述的原因。評價指標采用文本生成的評價指標BLEU以及人工評價。
任務分析
子任務A的目標是檢驗模型是否具有區分違反常識的自然語言陳述的能力。子任務A的主要挑戰在于,違反常識的陳述在句法層面通常是符合語言學結構的,但是在語義層面上,其含義是不符合通常的常識知識,考驗模型所具備的常識知識。子任務B的目標是通過選擇合適的解釋的方式,檢驗模型是否真正地理解了一個陳述為什么是違反常識的。子任務B的挑戰在于,盡管所有的候選解釋都與違反常識陳述的內容有關,但是有些候選項并不包含解釋不符合常識的主要原因,反而由于在內容上存在關聯,會分散模型的判斷能力。近期一些工作表明,預訓練語言模型除了在語言理解上具有很好的性能之外,通過在大規模語料上進行學習,其內部已經習得了某些常識知識。因此,我們不僅僅將預訓練語言模型看做上下文編碼器,用以產生句子的表示,同時,我們還把預訓練語?模型看做知識存儲器,希望在問答過程中可以隱式地利用預訓練語言模型提供常識知識。針對上述挑戰,我們從以下兩個主要指導意圖出發,以多選型問答的式設計兩個?任務的解決方法:(1)意圖1:如何“喚醒”并利用預訓練語言模型內部的隱式知識來幫助完成常識驗證和解釋任務?(2)意圖2:豐富違反常識陳述的上下文是否能夠/如何幫助系統更好地選擇正確的解釋?針對第一點,我們設計了一種基于提示模板(prompt template)的方法,用于重構子任務輸入以適用于問答任務。針對第二點,我們為子任務B構建了一個提示問題(prompt question),并且利?額外的信息對其進行擴展,以提供對比信息,幫助模型能夠定位到造成違反常識的原因。此外,我們還探索了基于預訓練語言模型打分的方法來完成常識驗證子任務,并探索了預訓練語言模型內部隱含的常識知識能夠在多大程度上幫助常識驗證子任務。
2
摘要&介紹
摘要本文介紹了針對SemEval Task4的前兩個子任務的系統:常識驗證和解釋。為了闡明判斷的意圖并注入對比信息以供選擇,我們提出了帶有模板的輸入重建策略。具體來說,我們將子任務形式化為多項問題,并使用提示模板構造輸入,然后,將最終回答預測視為子任務的結果。實驗結果表明,與基準系統相比,我們的方法具有顯著的性能。我們的方法在前兩個子任務的兩個正式測試集中都獲得了第三名,其準確度分別為96.4和94.3。介紹自然語言理解(NLU)要求系統不僅能夠弄清文本的語義,而且能夠在現實世界的常識知識的約束下理解文本。識別無意義的自然語言陳述,并產生對無意義的文本的解釋的能力是實現對自然語言理解的基礎。SemEval-2020任務4提供了結構良好的評估任務,旨在評估基于常識驗證和解釋的系統能力。常識驗證和解釋(ComVE)任務分為三個子任務:驗證、解釋選擇、解釋生成。我們主要關注并參與前兩個子任務。第一個子任務(subtaskA)的目標是檢查系統區分區別于常識的自然語言語句(即,無意義/錯誤語句)的能力。第二個子任務(subtaskB)的目標是測試系統是否可以正確理解造成反事實的原因。在子任務A中,區分無意義的陳述所面臨的挑戰在于,這種陳述通常在句法層面上符合語言結構,但其含義卻不符合語義層面上的一般常識。在子任務B中,為虛假陳述選擇適當的解釋的困難在于,盡管候選解釋與虛假陳述的內容相關,但它們可能不包含解釋虛假陳述的主要原因,并且會分散系統的注意力。為了解決上述挑戰,我們首先將兩個子任務形式化為一種多選問答(QA)任務。此外,我們將PLM用作上下文編碼器來生成句子的表示形式,還通過兩階段的預訓練將PLM視為知識存儲,可以在回答問題時隱式提供常識知識。為了應對前面提到的挑戰,我們設計了多選QA方式解決兩個子任務的方法,具有以下兩個指導意圖:(a)如何喚醒和利用PLM的隱性知識進行常識驗證和解釋?。(b)上下文的擴展將如何幫助系統為錯誤陳述選擇正確的解釋。對于第一點,我們探索了一種基于模板的方法來重建編碼器的輸入。在子任務A中,我們設計了一個提示性問題,并將此子任務轉換為多項選擇QA樣式格式,其中將語句用作候選答案。在子任務B中,我們將帶有提示模板的錯誤陳述重新格式化,比如A陳述是反事實的,是因為B解釋。提示模板旨在激活預訓練模型內部的常識知識,并且可以將其視為查詢以檢索PLM中的常識知識。另外,提示模板豐富了PLM的輸入,以明確表達子任務的意圖。對于第二點,我們建議在子任務B中用更多上下文擴展prompt question,帶有更多文本信息,比如正確和錯誤陳述的對比信息。
?
3
方法
任務定義 :5個元素 ${S^1, S^2, O^1, O^2, O^3}$分別表示兩個陳述和三個解釋。${S^1, S^2}$ 一個是真實事實。一個是反事實。$O^i$ 只有一個是正確的解釋原因。我們把兩個子任務轉成多選問題,包含一個PLM的編碼器和一個任務確定的分類層。對于每一個問題答案對,我們可以得到下面的計算公式。inp,表示的是經過重構的輸入 。$C^i$表示的是陳述的First Token,即[CLS]。擁有打分更高的候選答案將會被視為最后的預測。
?Sense-Making?陳述驗證方法
在第1個子任務中,模型要求能夠去選擇一個反事實的陳述。我們把這個子任務轉成多選的qa問題。其中問題是我們人工構造的一個prompt question。這個prompt question有兩個功能:第一,他能夠去檢索(激活)預訓練語言模型內部的常識知識;第二,扮演一個潛在問題的角色,用有意義的陳述來回答。因此我們直接構造了一個啟發式的prompt question,比如:If the followingstatement is in common sense?我們認為這種方式,從語義角度來說,能夠包含子任務的背后的意圖(驗證常識).所以對每一個樣例,我們都能夠去構造一個這樣子的問題和陳述對。然后分別取每一個陳述的cls向量,作為分類層的輸入,得到最后的結果。除此之外,考慮到長度的限制以及計算效率,我們用另一個方式去結合問題和陳述。比如:[CLS] If “ Si ” is in common sense? [SEP].解釋選擇方法對于第二個來說系統需要從三個候選當中去選擇最合理的解釋。這也是一個很直覺的多選任務,但是we argue:錯誤的陳述從語法上來說是一個完全正確的自然語言的句子,如果直接把這個錯誤的陳述和每一個候選解釋連接起來,可能會干擾模型的表現。也就是說模型非常容易去關注到陳述和解釋之間的相似性,而不是我們所需要的因果關系。基于上述考慮,我們會構造一個prompt template,為了能夠讓模型去理解作為待回答的問題假陳述。因此我們構造的模板如下:[CLS] Sf is against common sense because Oj [SEP] .下劃線會被這個候選的解釋去替代。然而如果僅僅是使用這種錯誤的事實信息是不足夠的。他會干擾模型發現在錯誤事實和候選解釋間的因果關系的能力。我們對數據進行了觀察,發現 true statement經常會和false statement,共享同一個主題。另外true statement的內容是in come sense的。所以我們重新利用上真實陳述的信息,可以與錯誤的事實形成了一個對比的信息。因此我們又構造了如下的模板:[CLS] If St is in common sense. [SEP] Sf is against common sense because Oj [SEP]
4
實驗&結果
具體的實驗設置大家可以移步論文,這里就不作贅述了。下圖是我們對兩個子任務構造的模板:
主實驗
我們在兩個子任務上進行了實驗。其中omcs是指我們用額外的常識語料對模型進行二階段訓練。P和C表示對應的模板。在子任務一上,我們發現通過增加模板信息能夠使模型效果提升,通過額外的語料去預訓練語言模型,能夠達到一個更好的效果,但是兩個模板在子任務一上面的表現并不是很明顯,我們認為這個原因是因為這兩個模板帶來的效果是一致的,即使他們的表現形式有所不同。對于第2個子任務來說,我們的模型通過增加P和增加P+C,模型的效果都在提升,說明這兩個模板構造獲得的語義信息也是有所差異的。和我們的假設一致,通過增加對比信息,模型的效果能夠達到最好。
5
討論
探索PLM中的常識知識
我們想要去探究預訓練語言模型當中是否真的隱含了常識知識。因此我們進行如下的操作:對每一個陳述中的token順序的mask,然后能夠得到每一個token的概率值。所有的token概率值乘起來得到這個陳述的概率。因此我們能夠去獲得真實事實和錯誤事實的打分。如果模型足夠理想的話,那么真實事實的打分肯定是大于錯誤事實的。如果模型把真實事實的打分,誤判成小于錯誤事實的打分,那么error+1。因此我們可以計算一個準確率,最后我們發現:RoBERTaLarge 達到79.5%的準確率,RoBERTaOMCS 保持了86.3%的準確率。子任務A上提問模板效果表征RoBERTa的原始輸入格式我們在任務a上做了一些case study。對于第1個例子來說,增加模板能夠使得模型都判斷準確。說明模板能夠去對模型有一定的暗示作用。對于第2個例子來說,第1個模板任然不奏效,但是第2個模板提供了一個更好的hint。對于第3個例子來說,所有的模型都做錯了。有可能是模型自己的問題,語料當中的偏置或者是TV這個詞出現的詞頻等等。總之,模板能夠幫助模型去理解這個任務中的一些對象,但是在數據集里面仍然有一些還未被解決的問題。同時我們在任務b上也做了一些case study的展示,我們發現通過增加p+c這個模板,能夠對大部分的數據都預判正確,說明這個模板給模型帶來的信息還是比較豐富的,比如說顯式給出因果關系,以及真實事實和錯誤事實的對比關系。除此之外,我們還嘗試了數據增強,因為我們發現數據中的錯誤事實部分是對真實事實進行主語替換,詞位置順序改變等方式,但是增加了部分數據加入訓練發現效果并沒有帶來很大的提升,原因可能是因為模型的效果已經達到了96%+,在通過增加部分數據,效果難以有明顯的提升。
團隊介紹
中科院信息工程研究所雛鷹團隊主要研究方向包括智能對話、機器翻譯、閱讀理解、跨媒體智能分析等。在ACL,AAAI 、IJCAI、TMM等頂級會議及期刊發表論文70余篇。團隊指導老師為胡玥教授,中國科學院信息工程研究所研究員/博士生導師,主要研究方向為人工智能、自然語言處理。
道翰天瓊認知智能未來機器人接口API簡介介紹
- 認知智能是計算機科學的一個分支科學,是智能科學發展的高級階段,它以人類認知體系為基礎,以模仿人類核心能力為目標,以信息的理解、存儲、應用為研究方向,以感知信息的深度理解和自然語言信息的深度理解為突破口,以跨學科理論體系為指導,從而形成的新一代理論、技術及應用系統的技術科學。 認知智能的核心研究范疇包括:1.宇宙、信息、大腦三者關系;2.人類大腦結構、功能、機制;3.哲學體系、文科體系、理科體系;4.認知融通、智慧融通、雙腦(人腦和電腦)融通等核心體系。 認知智能四步走:1.認知宇宙世界。支撐理論體系有三體(宇宙、信息、大腦)論、易道論、存在論、本體論、認知論、融智學、HNC 等理論體系;2.清楚人腦結構、功能、機制。支撐學科有腦科學、心理學、邏輯學、情感學、生物學、化學等學科。3.清楚信息內涵規律規則。支撐學科有符號學、語言學、認知語言學、形式語言學等學科。4.系統落地能力。支撐學科有計算機科學、數學等學科。
認知智能CI機器人是杭州道翰天瓊智能科技有限公司旗下產品。認知智能機器人是依托道翰天瓊10年研發的認知智能CI體系為核心而打造的認知智能機器人大腦,是全球第一個認知智能機器人大腦。具有突破性,創新性,領航性。是新一代智能認知智能的最好的產品支撐。 認知智能機器人技術體系更加先進,更加智能,是新一代智能,認知智能領域世界范圍內唯一的認知智能機器人。 認知智能機器人是新時代的產物,是新一代智能認知智能的產物。代表了新一代智能認知智能最核心的優勢。和人工智能機器人大腦相比,優勢非常明顯。智能度高,客戶粘性大,客戶滿意度高,易于推廣和傳播等核心特點。 依托認知智能機器人平臺提供的機器人大腦服務,可以賦能各個行業,各個領域的智能設備,各類需要人機互動的領域等。認知智能機器人平臺網址:www.weilaitec.com,www.citec.top。歡迎注冊使用,走進更智能機器人世界。
認知智能和人工智能的優劣勢對比主要可以分為四大方面: 第一:時代發展不同。人工智能是智能時代發展的第二個階段,認知智能是智能時代發展的第三個階段。時代發展上決定了認知智能更顯具有時代領先性。 第二:基礎理論體系不同。人工智能的基礎理論體系以數學為基礎,以統計概率體系為基礎。認知智能基礎理論體系以交叉許可理論體系為基礎。包含古今中外哲學體系,心理學體系,邏輯學體系,語言學體系,符號學體系,數學體系等學科。其基礎理論體系更加具有創新性,突破性和領先性。且交叉學科理論體系的研究也是未來智能發展的大方向。其具體理論體系,還包含三體論(宇宙,信息,大腦三者關系),融智學,和HNC等。 第三:技術體系不同。人工智能的核心技術體系主要是算法,機器學習,深度學習,知識圖譜等。其主要功用在感知智能。感知智能其核心主要是在模仿人類的感知能力。認知智能的核心技術體系是以交叉學科理論體系而衍生出來的。具體包含三大核心技術體系,認知維度,類腦模型和萬維圖譜。認知智能的技術體系核心以類腦的認知體系為基礎。以全方位模仿類腦能力為目標。人工智能以感知智能為基礎的體系,只能作為認知智能中的類腦模型技術體系中的感知層技術體系。類腦模型大致包含,感知層,記憶層,學習層,理解層,認知層,邏輯層,情感層,溝通層,意識層等9大核心技術層。因此人工智能的核心只是作為認知智能類腦模型中的感知層。因此在技術體系上,人工智能和認知智能基本上沒有太多的可比性。 第四:智能度成本等方面的不同:人工智能產品的綜合智能程度,普遍在2-3歲左右的智力水平。認知智能產品其智能程度大致在5-8歲左右。認知智能體系構建的機器人更加智能。且更省時間,更省人力和資金。優勢非常多。具體請看下列的逐項對比。
道翰天瓊CiGril機器人API
道翰天瓊CiGril認知智能機器人API用戶需要按步驟獲取基本信息:
開始接入
請求地址:http://www.weilaitec.com/cigirlrobot.cgr
請求方式:post
請求參數:
| 參數 | 類型 | 默認值 | 描述 |
| userid?? | String?? | 無 | 平臺注冊賬號 |
| appid?? | String?? | 無 | 平臺創建的應用id |
| key?? | String?? | 無 | 平臺應用生成的秘鑰 |
| msg?? | String?? | "" | 用戶端消息內容 |
| ip?? | String?? | "" | 客戶端ip要求唯一性,無ip等可以用QQ賬號,微信賬號,手機MAC地址等代替。 |
?
接口連接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552
注意事項:參數名稱都要小寫,五個參數不能遺漏,參數名稱都要寫對,且各個參數的值不能為空字符串。否則無法請求成功。userid,appid,key三個參數要到平臺注冊登錄創建應用之后,然后查看應用詳情就可以看到。userid就是平臺注冊賬號。
示例代碼JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
?? ?/**
?? ? * Get請求,獲得返回數據
?? ? * @param urlStr
?? ? * @return
?? ? */
?? ?private static String opUrl(String urlStr)
?? ?{?? ??? ?
?? ??? ?URL url = null;
?? ??? ?HttpURLConnection conn = null;
?? ??? ?InputStream is = null;
?? ??? ?ByteArrayOutputStream baos = null;
?? ??? ?try
?? ??? ?{
?? ??? ??? ?url = new URL(urlStr);
?? ??? ??? ?conn = (HttpURLConnection) url.openConnection();
?? ??? ??? ?conn.setReadTimeout(5 * 10000);
?? ??? ??? ?conn.setConnectTimeout(5 * 10000);
?? ??? ??? ?conn.setRequestMethod("POST");
?? ??? ??? ?if (conn.getResponseCode() == 200)
?? ??? ??? ?{
?? ??? ??? ??? ?is = conn.getInputStream();
?? ??? ??? ??? ?baos = new ByteArrayOutputStream();
?? ??? ??? ??? ?int len = -1;
?? ??? ??? ??? ?byte[] buf = new byte[128];
?? ??? ??? ??? ?while ((len = is.read(buf)) != -1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?baos.write(buf, 0, len);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?baos.flush();
?? ??? ??? ??? ?String result = baos.toString();
?? ??? ??? ??? ?return result;
?? ??? ??? ?} else
?? ??? ??? ?{
?? ??? ??? ??? ?throw new Exception("服務器連接錯誤!");
?? ??? ??? ?}
?? ??? ?} catch (Exception e)
?? ??? ?{
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally
?? ??? ?{
?? ??? ??? ?try
?? ??? ??? ?{
?? ??? ??? ??? ?if (is != null)
?? ??? ??? ??? ??? ?is.close();
?? ??? ??? ?} catch (IOException e)
?? ??? ??? ?{
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?try
?? ??? ??? ?{
?? ??? ??? ??? ?if (baos != null)
?? ??? ??? ??? ??? ?baos.close();
?? ??? ??? ?} catch (IOException e)
?? ??? ??? ?{
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?conn.disconnect();
?? ??? ?}
?? ??? ?return "";
?? ?}
?? ?
?? ?
?? ?public static void main(String args []){?? ??? ?
?? ??? ???? //msg參數就是傳輸過去的對話內容。?? ??? ??? ?
?? ??? ???? System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
?? ??? ??? ?
?? ?}
}
?
?
總結
以上是生活随笔為你收集整理的中科院信工所雏鹰团队在SemEval上大显神威的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS下连VisualSVN服务器
- 下一篇: MVS_Tutorial-1