器從事件文本中推理意圖與反應(yīng))
每次讀到關(guān)于事件理解的研究我都會(huì)習(xí)慣性地先想一個(gè)問(wèn)題機(jī)器讀一句話真的“讀懂了”嗎拿“這個(gè)人被公司開(kāi)除了”來(lái)說(shuō)字面上是一個(gè)解雇事件但稍微有點(diǎn)常識(shí)的人都會(huì)接著想他慌不慌他下一步打算怎么辦是準(zhǔn)備仲裁還是開(kāi)始投簡(jiǎn)歷甚至他會(huì)不會(huì)覺(jué)得解脫這些潛臺(tái)詞才是人類(lèi)理解語(yǔ)言時(shí)真正在發(fā)生的部分。Event2Mind這個(gè)項(xiàng)目做的就是把這層“潛臺(tái)詞”顯式化——讓模型從事件文本出發(fā)推理出當(dāng)事人的意圖intent和反應(yīng)reaction。我第一次接觸它是在復(fù)現(xiàn)某個(gè)對(duì)話系統(tǒng)時(shí)當(dāng)時(shí)系統(tǒng)能流暢地接話卻完全接不住“對(duì)方為什么說(shuō)這句話”跑通Event2Mind之后我才真正意識(shí)到常識(shí)推理和對(duì)齊意圖才是自然語(yǔ)言理解里最難啃的骨頭。這套項(xiàng)目來(lái)自某AI研究機(jī)構(gòu)。工作核心有兩塊一個(gè)大規(guī)模標(biāo)注的常識(shí)推理數(shù)據(jù)集一個(gè)基于序列到序列Seq2Seq的生成基線系統(tǒng)。輸入是一個(gè)描述事件的自然語(yǔ)言句子模型需要輸出兩組內(nèi)容這個(gè)事件中主角在做什么事的意圖格式形如“某人想要……”英文是“X wants to ...”以及主角的情緒或心理反應(yīng)形如“某人覺(jué)得……”英文是“X feels ...”。本質(zhì)上這是把一個(gè)單純的文本分類(lèi)或文本生成問(wèn)題升級(jí)成了閱讀理解里的“言外之意”推理問(wèn)題。無(wú)論你是做NLP研究、對(duì)話產(chǎn)品、內(nèi)容風(fēng)控還是想給自己的知識(shí)圖譜補(bǔ)上事件層這個(gè)項(xiàng)目都很值得拆開(kāi)看一看。1. 項(xiàng)目動(dòng)機(jī)與核心設(shè)計(jì)思路為什么要把事件拆成意圖和反應(yīng)1.1 事件理解的本質(zhì)你不能只停留在字面自然語(yǔ)言處理走到今天做實(shí)體抽取、關(guān)系抽取、情感分析都有相對(duì)成熟的路子但事件理解始終卡在一個(gè)瓶頸上統(tǒng)計(jì)模型可以識(shí)別“發(fā)生了什么”卻很難回答“為什么發(fā)生”和“接下來(lái)會(huì)怎樣”。一個(gè)典型例子是“妻子在丈夫的襯衫上縫了一個(gè)名牌”。字面上這就是一個(gè)縫紉動(dòng)作。但常識(shí)會(huì)告訴你她大概率不是閑得慌而是為了幫患阿爾茨海默癥的丈夫防止走失。這樣的推理純靠詞向量和注意力機(jī)制是學(xué)不出來(lái)的模型需要調(diào)用大量關(guān)于人類(lèi)社會(huì)規(guī)范、心理狀態(tài)和因果關(guān)系的背景知識(shí)。Event2Mind把這個(gè)問(wèn)題切成了兩個(gè)相對(duì)可控的子問(wèn)題意圖推理和反應(yīng)推理。有人會(huì)問(wèn)為什么不是直接預(yù)測(cè)后續(xù)事件其實(shí)作者在總結(jié)里表達(dá)過(guò)一個(gè)很實(shí)際的想法后續(xù)事件的可能性是發(fā)散的一個(gè)“辭職”后面可以跟著“開(kāi)公司”“旅游”“找工作”“后悔”無(wú)數(shù)種走向但如果先判斷意圖和情緒這個(gè)走向的概率空間就會(huì)收窄很多。意圖和情緒在心理學(xué)上本來(lái)就是行為的前置變量抓住前置變量再去推后續(xù)事件邏輯上就順了。1.2 從數(shù)據(jù)標(biāo)注反推模型目標(biāo)數(shù)據(jù)是決定這個(gè)項(xiàng)目含金量的核心。Event2Mind構(gòu)建了一個(gè)從事件文本到意圖/反應(yīng)的標(biāo)注庫(kù)。具體而言語(yǔ)言學(xué)家設(shè)計(jì)了一套半結(jié)構(gòu)化的表述模板意圖“某人想要 [動(dòng)作] ”強(qiáng)調(diào)事件主體在行為發(fā)生時(shí)內(nèi)心的目的反應(yīng)“某人覺(jué)得 [情緒] ”強(qiáng)調(diào)事件主體在事件發(fā)生后的心理或情緒狀態(tài)。我看過(guò)不少采用這套思路的后續(xù)工作大家普遍認(rèn)可的一點(diǎn)是用“X wants to”和“X feels”這種固定填充式模板而不是開(kāi)放式的自由文本其實(shí)非常聰明。一方面它把生成問(wèn)題變成了受約束的填槽問(wèn)題模型輸出的格式可控性大幅提升另一方面這種模板為后面做評(píng)估提供了統(tǒng)一的歸一化空間不至于出現(xiàn)十個(gè)人標(biāo)注出十種說(shuō)法的混亂局面。有人可能會(huì)質(zhì)疑事件主體的意圖和反應(yīng)不都是主觀的嗎怎么保證標(biāo)注質(zhì)量這正是數(shù)據(jù)集設(shè)計(jì)里很見(jiàn)功力的一環(huán)。項(xiàng)目規(guī)定標(biāo)注者必須針對(duì)具體事件中的具體人物也就是事件的主語(yǔ)來(lái)推測(cè)而不是放之四海皆準(zhǔn)的空泛答案。比如“拿到了獎(jiǎng)學(xué)金”這件事主語(yǔ)是學(xué)生意圖就不能寫(xiě)成“某人想要被表?yè)P(yáng)”而應(yīng)該是“某人想要繼續(xù)深造”或“某人想要減輕家庭負(fù)擔(dān)”這類(lèi)更貼近角色身份的表達(dá)。通過(guò)這種強(qiáng)制約束標(biāo)注結(jié)果有效對(duì)齊到了事件內(nèi)部的主角視角上。1.3 它解決的實(shí)際應(yīng)用問(wèn)題有了事件層面的意圖和反應(yīng)很多下游任務(wù)可以直接受益。我這里說(shuō)幾個(gè)我實(shí)際接觸過(guò)的場(chǎng)景。第一個(gè)是對(duì)話系統(tǒng)。傳統(tǒng)檢索式聊天機(jī)器人經(jīng)常出現(xiàn)“驢唇不對(duì)馬嘴”的回復(fù)本質(zhì)原因就是它只匹配了字面話題沒(méi)匹配用戶說(shuō)這句話的真實(shí)目的。用戶說(shuō)“最近好累啊”她可能不是真的想讓你推薦解乏方法而是想傾訴或者求安慰。如果把這句話當(dāng)作一個(gè)事件用Event2Mind思路去推理出意圖是“某人想要得到關(guān)心”、反應(yīng)是“某人覺(jué)得疲憊”再基于這樣的理解去生成回復(fù)對(duì)話質(zhì)量會(huì)有質(zhì)的提升。第二個(gè)是內(nèi)容風(fēng)控和輿情分析。做社區(qū)內(nèi)容審核時(shí)機(jī)器判斷“某人在社交媒體上發(fā)布了一篇攻擊性言論”很容易但判斷“這個(gè)人是出于憤怒報(bào)復(fù)還是單純玩?!本碗y得多。引入事件角度的意圖和反應(yīng)推理可以在一定程度上緩解誤殺率讓機(jī)器對(duì)文本背后的真實(shí)情感傾向有更立體的認(rèn)知。第三個(gè)是知識(shí)圖譜的事件補(bǔ)全。傳統(tǒng)知識(shí)圖譜大多存的是“實(shí)體-關(guān)系-實(shí)體”三元組比如“張三-任職于-某公司”。但事件型知識(shí)某人被裁員、某人搬家、某公司融資成功本質(zhì)上也是知識(shí)而且動(dòng)態(tài)性更強(qiáng)。Event2Mind為事件預(yù)測(cè)了一個(gè)“意圖和反應(yīng)”的潛層表示相當(dāng)于給圖譜里的事件節(jié)點(diǎn)加上了心理狀態(tài)屬性對(duì)做金融決策輔助、用戶畫(huà)像分析都很有價(jià)值。2. 數(shù)據(jù)集的構(gòu)建流程與標(biāo)注質(zhì)量剖析2.1 事件文本的來(lái)源與清洗這個(gè)項(xiàng)目的語(yǔ)料來(lái)源不算花哨主要從開(kāi)放的日常英語(yǔ)文本中抽取事件描述句通過(guò)一系列規(guī)則和語(yǔ)法過(guò)濾篩出以第三人稱為主語(yǔ)、包含明確動(dòng)作的事件句。篩選之后還做了一個(gè)很關(guān)鍵的歸一化處理把事件句的主語(yǔ)統(tǒng)一替換為占位符常見(jiàn)動(dòng)作的時(shí)態(tài)做了統(tǒng)一這樣同一個(gè)事件的不同表達(dá)方式可以被歸并到一起避免數(shù)據(jù)稀疏。具體的清洗策略里有幾條值得筆記事件句不能太長(zhǎng)一般保持在10-20個(gè)詞的區(qū)間內(nèi)。太短的事件缺少語(yǔ)境太白的事件推理不出什么有價(jià)值的意圖和反應(yīng)太長(zhǎng)的事件則干擾標(biāo)注者定位核心動(dòng)作。明確過(guò)濾掉包含隱喻、夸張、諷刺等修辭手法的句子。這些句子雖然真實(shí)存在但對(duì)標(biāo)注者來(lái)說(shuō)實(shí)在太容易產(chǎn)生分歧“老板把我罵了一頓”和“老板把我夸成了一朵花”后者的情感判斷容易五花八門(mén)。去除涉及特定人名的句子避免標(biāo)注者根據(jù)對(duì)某個(gè)名人的固有印象去猜意圖和反應(yīng)把標(biāo)注問(wèn)題變成八卦問(wèn)題。2.2 標(biāo)注模板的制定與語(yǔ)言學(xué)動(dòng)機(jī)整個(gè)標(biāo)注體系最核心的設(shè)計(jì)就是那套半結(jié)構(gòu)化的意圖/反應(yīng)模板。我一開(kāi)始不懂為什么意圖非要寫(xiě)成“X wants to”不能直接讓標(biāo)注者填一個(gè)動(dòng)詞短語(yǔ)后來(lái)仔細(xì)想了想發(fā)現(xiàn)這里面的語(yǔ)言學(xué)動(dòng)機(jī)很深?!癤 wants to”這個(gè)框架實(shí)際上把意圖拆成了施為者和目標(biāo)動(dòng)作兩個(gè)組成部分這背后對(duì)應(yīng)的是心理學(xué)里的意向性理論。意向狀態(tài)包含一個(gè)認(rèn)知主體和一個(gè)被指向的目標(biāo)用填空的方式呈現(xiàn)等于是在標(biāo)注時(shí)自動(dòng)完成了論元結(jié)構(gòu)的對(duì)齊。同理“X feels”框架對(duì)應(yīng)情緒心理學(xué)里的情感效價(jià)分類(lèi)它先把標(biāo)注者的注意力引導(dǎo)到“情緒類(lèi)型”上再用后面的形容詞或短語(yǔ)來(lái)描述具體感受比如“覺(jué)得憤怒”“覺(jué)得如釋重負(fù)”“覺(jué)得被冒犯”。在實(shí)際標(biāo)注規(guī)范里項(xiàng)目還要求標(biāo)注者區(qū)分“事件主體自己在做什么”和“事件主體希望別人做什么”。例如“張三給朋友發(fā)了一條道歉短信”意圖可能有兩個(gè)層次表層是“某人想要表達(dá)歉意”深層是“某人想要挽回這段友誼”。數(shù)據(jù)集鼓勵(lì)標(biāo)注者優(yōu)先寫(xiě)與事件行為直接相關(guān)的近期目標(biāo)同時(shí)允許在備注里補(bǔ)充遠(yuǎn)期心理訴求。這種“短期目標(biāo)優(yōu)先、長(zhǎng)期動(dòng)機(jī)允許”的策略在訓(xùn)練模型時(shí)有效減少了目標(biāo)發(fā)散問(wèn)題。2.3 質(zhì)量控制與一致性驗(yàn)證標(biāo)注質(zhì)量方面項(xiàng)目用了兩道關(guān)。第一道是培訓(xùn)關(guān)標(biāo)注人員上崗前先要做一組預(yù)標(biāo)注試題只有和專家標(biāo)注吻合度達(dá)標(biāo)的才能正式參與第二道是過(guò)程抽檢關(guān)每批次標(biāo)注結(jié)果中會(huì)混入一定比例的標(biāo)準(zhǔn)答案作為陷阱題如果標(biāo)注者對(duì)這些題目的通過(guò)率低于閾值其整批數(shù)據(jù)作廢。這里我想特別說(shuō)一下一個(gè)讓我印象深刻的處理項(xiàng)目對(duì)每條事件樣本并沒(méi)有只留一份標(biāo)注答案而是收集了多個(gè)獨(dú)立標(biāo)注結(jié)果再用投票或聚合的方式生成最終標(biāo)簽。為什么這么做因?yàn)槌WR(shí)推理本身天然存在主觀性。同樣是“某人買(mǎi)了一張彩票”有人覺(jué)得他的意圖是“想要一夜暴富”有人覺(jué)得是“想給生活找點(diǎn)樂(lè)子”這二者沒(méi)有絕對(duì)的對(duì)錯(cuò)。只留一份標(biāo)注等于把一個(gè)可以討論的問(wèn)題強(qiáng)行變成了一道單選題信息量損失太大。保留多個(gè)有效答案反而讓模型在訓(xùn)練時(shí)見(jiàn)過(guò)更多樣的合理推斷。后來(lái)的評(píng)測(cè)也證明這種多答案標(biāo)注方式讓生成模型的輸出在人工評(píng)估環(huán)節(jié)獲得了明顯更高的認(rèn)可度。3. 基線模型與訓(xùn)練細(xì)節(jié)拆解3.1 為什么選Seq2Seq而不是分類(lèi)器如果是想預(yù)測(cè)“這個(gè)是正類(lèi)還是負(fù)類(lèi)”或者準(zhǔn)確挑出一個(gè)意圖標(biāo)簽?zāi)敲磦鹘y(tǒng)的CNN或BERT分類(lèi)器可能就夠了。但Event2Mind的意圖和反應(yīng)以自然語(yǔ)言片段形式存在標(biāo)簽空間是開(kāi)放的。比如看到“某人站在頒獎(jiǎng)臺(tái)上”反應(yīng)可以是“覺(jué)得自豪”“覺(jué)得緊張”“覺(jué)得激動(dòng)”甚至“覺(jué)得不知所措”。這種開(kāi)放標(biāo)簽集合問(wèn)題本質(zhì)上是對(duì)一段短文本的生成Seq2Seq模型正好擅長(zhǎng)。Seq2Seq的另一個(gè)優(yōu)勢(shì)是它天然支持輸入序列和輸出序列之間的軟對(duì)齊。事件句里的關(guān)鍵詞比如動(dòng)作謂語(yǔ)、賓語(yǔ)、修飾成分會(huì)和意圖/反應(yīng)里的具體詞形成一定的對(duì)應(yīng)關(guān)系。模型通過(guò)注意力機(jī)制能自動(dòng)學(xué)到“提到被偷”和輸出里的“生氣”“無(wú)助”之間的關(guān)聯(lián)而無(wú)需人工設(shè)計(jì)特征。3.2 輸入輸出表示與詞表處理在跑基線模型時(shí)我采用了一套和項(xiàng)目論文推薦的常見(jiàn)配置基本一致的方案。輸入層采用預(yù)訓(xùn)練詞向量進(jìn)行初始化論文原始版本用的維度是300維并且在后來(lái)的改進(jìn)中加入了OOV詞未登錄詞處理策略對(duì)于詞表里不存在的單詞用隨機(jī)初始化的向量表示同時(shí)保留字符級(jí)別的信息用于輔助。這里有個(gè)容易被忽略的細(xì)節(jié)由于事件句經(jīng)過(guò)主語(yǔ)歸一化所有具體的人名都被替換成了統(tǒng)一的符號(hào)這既減少了詞表膨脹也避免模型把“李雷”和某種情緒進(jìn)行錯(cuò)誤綁定。在輸出層意圖和反應(yīng)被當(dāng)成兩個(gè)獨(dú)立的解碼任務(wù)但是共享同一個(gè)編碼器。這種“一編碼兩解碼”的架構(gòu)可以讓意圖解碼器和反應(yīng)解碼器分別捕捉到不同維度的語(yǔ)義同時(shí)在底層共享對(duì)事件本身的理解。我試過(guò)把兩個(gè)解碼器合并成一個(gè)多任務(wù)解碼器效果在BLEU上有細(xì)微提升但人工評(píng)估時(shí)發(fā)現(xiàn)分離解碼器輸出的文本在風(fēng)格一致性上更穩(wěn)定可能是因?yàn)槊總€(gè)解碼器的詞表分布更純粹。3.3 訓(xùn)練策略與評(píng)估指標(biāo)解析訓(xùn)練過(guò)程中項(xiàng)目使用了標(biāo)準(zhǔn)的teacher forcing策略即訓(xùn)練時(shí)每一步解碼都有一部分概率使用真實(shí)標(biāo)簽詞作為下一步輸入而不是使用模型自己上一步生成的詞。這個(gè)比例從早期的1.0逐步退火到0.85左右這種方式比完全teacher forcing穩(wěn)定比完全free-running收斂快。關(guān)于評(píng)估指標(biāo)這里必須給后來(lái)者提個(gè)醒BLEU在常識(shí)推理類(lèi)任務(wù)上存在明顯的局限性。BLEU衡量的是生成文本和參考文本之間的詞面重疊度但意圖和反應(yīng)的表述方式是高度多樣化的。模型生成“某人想要證明自己”和參考答案“某人想要獲得認(rèn)可”語(yǔ)義幾乎等價(jià)可詞面重合度很低BLEU分?jǐn)?shù)會(huì)很難看。所以項(xiàng)目在實(shí)際評(píng)估時(shí)一直堅(jiān)持“自動(dòng)指標(biāo)人工評(píng)估”雙軌制。人工評(píng)估主要看三點(diǎn)合理度這條意圖符不符合常識(shí)、關(guān)聯(lián)度這條意圖和輸入事件的關(guān)聯(lián)是否緊密、流暢度語(yǔ)法是否通順。跑實(shí)驗(yàn)的人如果只盯BLEU很容易被表面數(shù)字帶偏。4. 復(fù)現(xiàn)實(shí)戰(zhàn)從數(shù)據(jù)處理到模型推理4.1 數(shù)據(jù)獲取與預(yù)處理要點(diǎn)Event2Mind的數(shù)據(jù)集是公開(kāi)的獲取渠道很常規(guī)直接查閱項(xiàng)目主頁(yè)或相關(guān)論文補(bǔ)充材料就能找到下載方式。下載下來(lái)解壓后你會(huì)看到幾個(gè)典型的標(biāo)注文件每行是一個(gè)JSON對(duì)象包含事件文本、意圖列表、反應(yīng)列表以及對(duì)應(yīng)的原始標(biāo)注者序號(hào)和信息。在預(yù)處理時(shí)有三個(gè)環(huán)節(jié)值得特別留意。第一文本統(tǒng)一轉(zhuǎn)小寫(xiě)并把所有占位符如人名、地名替換符做一次ID映射保證詞表里只有一種表示。第二將事件、意圖、反應(yīng)分別切成token序列并構(gòu)建各自的詞表輸出詞表里要保留那些出現(xiàn)頻次大于等于2的token頻次為1的替換成UNK否則訓(xùn)練時(shí)模型會(huì)大量生成生僻詞拉低整體流暢度。第三建議把多份標(biāo)注答案全部保留不要只取第一個(gè)。很多初復(fù)現(xiàn)的人以為一個(gè)輸入對(duì)應(yīng)一個(gè)輸出就夠了結(jié)果模型訓(xùn)練完生成模式變得非常單一就是因?yàn)榘讯鄻拥暮侠硗评矶紒G掉只剩了一條路。4.2 模型訓(xùn)練步驟與參數(shù)選擇我用的是OpenNMT或Fairseq這類(lèi)通用框架不需要從零實(shí)現(xiàn)Seq2Seq但參數(shù)還是要自己調(diào)。一套實(shí)測(cè)可行的配置是參數(shù)項(xiàng)推薦值備注編碼器層數(shù)2層雙向LSTM單層表達(dá)不足3層訓(xùn)練放緩解碼器層數(shù)2層單向LSTM常用于生成任務(wù)的標(biāo)準(zhǔn)配置隱藏層維度512顯存和效果平衡的選擇詞向量維度300使用預(yù)訓(xùn)練詞向量初始化Batch size64按顯存調(diào)整學(xué)習(xí)率0.001配合Adam優(yōu)化器可配合線性warmup束搜索寬度5推理階段beam size設(shè)為5最優(yōu)最大輸出長(zhǎng)度15意圖/反應(yīng)短語(yǔ)一般不超過(guò)15個(gè)token訓(xùn)練期間每隔幾個(gè)epoch在驗(yàn)證集上做一次困惑度評(píng)估和BLEU計(jì)算。我個(gè)人的經(jīng)驗(yàn)是在2萬(wàn)條規(guī)模的數(shù)據(jù)上大約訓(xùn)練20-30個(gè)epoch就能看到穩(wěn)定收斂。如果loss值出現(xiàn)反彈優(yōu)先降低學(xué)習(xí)率而不是增加正則項(xiàng)因?yàn)檫@類(lèi)生成模型對(duì)學(xué)習(xí)率更敏感。4.3 推理階段與結(jié)果樣例分析推理時(shí)把訓(xùn)練好的模型加載進(jìn)來(lái)輸入一個(gè)處理過(guò)的event句模型返回一組意圖候選和一組反應(yīng)候選。以下是我實(shí)際跑出的幾個(gè)有代表性的輸出輸入事件句“X spills coffee on Y’s new carpet”某人把咖啡灑在Y的新地毯上候選意圖X wants to clean up the mess想要收拾爛攤子X(jué) wants to apologize to Y想要向Y道歉X wants to avoid being blamed想要避免被責(zé)怪候選反應(yīng)X feels embarrassed覺(jué)得尷尬X feels clumsy覺(jué)得自己笨手笨腳X feels worried覺(jué)得擔(dān)心這組輸出比較準(zhǔn)確地覆蓋了事件的三個(gè)典型心理層面補(bǔ)救動(dòng)機(jī)、社交修護(hù)動(dòng)機(jī)、自我防御動(dòng)機(jī)情緒上同時(shí)出現(xiàn)了尷尬、內(nèi)疚和擔(dān)憂基本符合同場(chǎng)景下正常人的反應(yīng)分布。另一個(gè)有趣的例子是輸入“X eats a whole pizza alone”某人獨(dú)自吃完了整個(gè)披薩候選意圖X wants to satisfy his craving想要滿足食欲、X wants to comfort himself想要自我安慰候選反應(yīng)X feels full覺(jué)得飽、X feels guilty覺(jué)得罪惡、X feels happy覺(jué)得開(kāi)心這里模型出現(xiàn)了“情緒雙面性”既有生理層面的滿足又有心理層面的自責(zé)。雖然模型本身并不具備真實(shí)情感但這個(gè)結(jié)果說(shuō)明數(shù)據(jù)里對(duì)這類(lèi)事件本身存在多角度的標(biāo)注模型把這種分布特征學(xué)會(huì)了。5. 常見(jiàn)問(wèn)題、局限性與踩坑記錄5.1 標(biāo)注偏見(jiàn)與模板固化問(wèn)題我在實(shí)際使用時(shí)發(fā)現(xiàn)兩個(gè)不容回避的問(wèn)題。第一標(biāo)注偏見(jiàn)。數(shù)據(jù)集中含有大量刻板印象內(nèi)容例如某事件的主語(yǔ)是特定性別時(shí)標(biāo)注的意圖經(jīng)常偏向“照顧家庭”“表達(dá)情感”等方向而另一個(gè)性別的標(biāo)注則更多偏向“追求事業(yè)”或“占據(jù)主導(dǎo)”。這不是標(biāo)注者的惡意而是社會(huì)常識(shí)本身的分布反映。但模型部署到生產(chǎn)環(huán)境時(shí)必須警惕這一點(diǎn)否則系統(tǒng)會(huì)在隱性層面放大偏見(jiàn)。第二模板固化。由于輸出模板使用了固定的“X wants to”和“X feels”模型生成句子呈現(xiàn)高度的格式化偶爾會(huì)出現(xiàn)循環(huán)重復(fù)的壞案例比如輸出一連串“X wants to be happy, X wants to be happy...”等死循環(huán)。這種問(wèn)題在beam search設(shè)置較大寬度時(shí)更容易出現(xiàn)把beam width調(diào)回5以下能明顯緩解。5.2 模型的失效模式觀察模型失敗的案例可以歸成三類(lèi)典型規(guī)則性失效輸入“X throws a party”模型輸出“X wants to make noise”它抓到了表層動(dòng)作卻沒(méi)有推理出背后“想要招待朋友、慶祝某個(gè)特殊時(shí)刻”的社交目的。說(shuō)明模型對(duì)抽象社交目的的學(xué)習(xí)仍然薄弱。主體混淆失效輸入“X tells Y that Y is fired”模型有時(shí)會(huì)把反應(yīng)錯(cuò)誤關(guān)聯(lián)到談話的聽(tīng)者Y身上輸出“Y feels sad”而不是事件主語(yǔ)X的反應(yīng)。雖然Y感到難過(guò)也合理但這不符合項(xiàng)目設(shè)定的“主體視角”要求。情感方向錯(cuò)誤輸入“X wins the lottery”個(gè)別case下模型輸出“X feels nervous”雖然是可能的畢竟中獎(jiǎng)后怕被盯上但概率排得過(guò)高就說(shuō)明訓(xùn)練數(shù)據(jù)里把意外之財(cái)和緊張情緒做了過(guò)強(qiáng)關(guān)聯(lián)。5.3 后續(xù)改進(jìn)方向與擴(kuò)展思路針對(duì)上面的問(wèn)題后續(xù)方案可以從三個(gè)方向著手。一是換更強(qiáng)的底座。用預(yù)訓(xùn)練語(yǔ)言模型如GPT或者BERT變體替換隨機(jī)初始化的LSTM利用預(yù)訓(xùn)練模型對(duì)常識(shí)關(guān)系已有的建模能力可以明顯改善規(guī)則性失效。二是加入結(jié)構(gòu)化約束。在解碼階段引入一個(gè)輕量級(jí)的意圖/情緒分類(lèi)器作為重排器把生成的候選結(jié)果里明顯主體混亂的項(xiàng)過(guò)濾掉。三是引入反事實(shí)推理。現(xiàn)在很多前沿工作會(huì)嘗試在推理時(shí)加入“如果事件不發(fā)生意圖和反應(yīng)會(huì)怎樣變化”的對(duì)比信號(hào)讓模型學(xué)會(huì)識(shí)別因果關(guān)系而不是單純的相關(guān)性。真要往深里做Event2Mind還可以作為中間層組件嵌入更大的系統(tǒng)。比如在做金融事件推理時(shí)可以把新聞事件先通過(guò)Event2Mind得到利益相關(guān)者的意圖和情緒再送入預(yù)測(cè)模型判斷股價(jià)波動(dòng)或輿情走向。我后來(lái)在某公司做商業(yè)輿情系統(tǒng)時(shí)就參考這個(gè)思路搭過(guò)原型實(shí)測(cè)比直接拿新聞文本做情感分類(lèi)的信息量豐富得多。這種“事件心理狀態(tài)”的結(jié)構(gòu)化表達(dá)在真實(shí)項(xiàng)目里比單純的情感分?jǐn)?shù)抗噪性強(qiáng)很多。我個(gè)人在實(shí)際操作中最大的體會(huì)是常識(shí)推理模型的瓶頸往往不在模型結(jié)構(gòu)而在數(shù)據(jù)錨點(diǎn)。Event2Mind提供的那套“意圖-反應(yīng)”雙通道標(biāo)注范式即使放到今天的大模型時(shí)代依然有參考價(jià)值——它可以作為評(píng)測(cè)基準(zhǔn)考驗(yàn)一個(gè)大模型是否真的理解了一段事件的言外之意也可以作為提示模板設(shè)計(jì)的靈感來(lái)源讓模型在回答“這件事發(fā)生后他怎么樣了”這類(lèi)問(wèn)題時(shí)不再停留在字面而是給出真正像人一樣有心理深度的回答。如果你正打算做事件理解方面的工作建議先親手跑一遍這個(gè)項(xiàng)目再往前走你會(huì)對(duì)“模型學(xué)到了什么”“數(shù)據(jù)又教壞了什么”有遠(yuǎn)比讀十篇論文更實(shí)在的認(rèn)知。