摘要:從親屬關係知識表示和親屬關係推理規則兩個方面看,現有親屬關係推理系統缺乏對親屬關係及其形式結構方面的理論探討。親屬關係推理具有複雜性:親屬關係推理的實質是血緣關係的推理;血緣關係結構是一個以「父親」、「母親」、「孩子」組成基礎單元的遞歸的圖結構;親屬關係的定義是按照血緣關係結構圖中最短路徑來給出的;利用婚姻關係、生育關係、被生育關係、兄弟姐妹關係作為四個基本血緣關係,重新設計了親屬關係表達式;利用親屬關係式能夠確定系統邊界,以及形式化描述親屬關係的相關概念。在此基礎上,基於血緣關係結構圖的親屬關係推理系統得以構造,利用定位、匹配、檢索最短路徑和移位四項操作,來完成複雜的親屬關係推理任務。跟以往的親屬關係推理系統相比,此推理系統的邏輯和步驟更加直觀簡明,保證了親屬關係推理的完備性與準確性。基於血緣關係的親屬推理算法能推廣到其他語言的親屬關係推理。
關鍵詞:親屬關係稱謂系統血緣關係推理系統
作者:盧達威,中國人民大學文學院講師(北京100872);袁毓林,北京大學中文系/中國語言學研究中心/計算語言學教育部重點實驗室教授(北京100871)。
近年來,隨著人工智慧的迅速發展,自然語言處理(Natural Language Processing,NLP)的水平達到了前所未有的高度。在大數據和深度學習的支持下,閱讀理解、文本分類、機器翻譯、情感分析、自動問答等多項自然語言處理任務都有了長足的進步。這些任務共同特點是能夠在大數據下挖掘出問題與答案的相關性,可以使用端到端(end-to-end)的深度學習模型進行計算。相比之下,需要理解因果關係的常識推理(commonsense reasoning)至今仍是巨大挑戰。親屬關係推理是常識推理常見問題之一,屬於社會關係的推理。
親屬關係推理是涉及人類學、語言學和人工智慧等多學科的問題。親屬關係是最基本的社會關係,其背後是複雜的血緣關係。就語言系統而言,漢語的親屬稱謂系統在世界各種語言中是比較複雜的,親屬稱謂詞之間的語義關係也錯綜複雜。對於常識推理來說,親屬關係知識在文本中佔比不大,且推理步驟較多,故難以從大數據中直接習得推理的答案。這些使得親屬關係推理看起來簡單,做起來難。另一方面,親屬關係知識又是一個領域封閉的輕量級知識,邊界清晰,辨識度高,是研究常識推理的良好的切入點,可以作為其他社會關係推理研究的範本。正確的親屬關係推理能夠提高自然語言理解的精度,為閱讀理解、自動問答、機器翻譯等任務提供幫助。
現有的親屬關係推理研究大多是從計算機工程的角度構建的應用系統,它們雖然能夠完成簡單的親屬關係推理任務,但是遇到稍微複雜的親屬關係推理就很容易出錯。對於複雜的漢語稱謂系統,現有的研究甚至沒有方法窮盡地列舉出漢語親屬稱謂詞的種類,更無法對系統的推理能力和推理完備性進行定量描述。至於系統可用性,主要依靠不斷的系統測試和修改,無法從理論上保證推理系統可用。歸根結底是缺少多學科角度的思考,缺乏對親屬關係語義及推理機制的理論探討。
本文擬在分析現有親屬關係推理系統研究的基礎上,揭示親屬關係推理複雜性的成因,明確親屬關係推理系統應有的推理能力和推理邊界;構建完備的親屬關係推理系統,為人工智慧中的常識推理問題探索新的研究思路。
一、親屬關係推理系統研究現狀
漢語親屬關係的推理系統研究已有不少成果。例如,靳小龍等基於親屬詞的常識構建的親屬關係推理模型,王樹西等針對《紅樓夢》做的人物關係問答系統,陳振宇等基於親屬關係知識庫的推理模型,陳振宇等基於親屬基元構建的推理模型,以及陳振宇等基於語義特徵分析的親屬關係推理模型,等等。
這些親屬關係推理系統主要包括兩個部分:親屬關係的知識表示;親屬關係的推理規則。以下從這兩個方面介紹和分析現有推理系統研究情況。
(一)親屬關係知識表示研究
前人的工作中,親屬關係知識表示大概可以分為三種思路。
第一種思路是以其他親屬詞來刻畫兩個親屬之間的親屬關係。靳小龍等將兩個親屬關係分為對應關係(如「丈夫」對應於「妻子」)和半等價關係(如「兒子」半等價於「(父親/母親的)孫子/外孫」),關係的兩端親屬稱謂詞(簡稱「親屬詞」)需加上親屬的性別、輩分、長幼等常識來表示該親屬,如「父親(a)」具有這樣的常識:「a的性別是男性,而且對某個人來說有身份為a的親屬一般只有一個,再者,每個人的a的輩份要高於自己」。陳振宇等將這一思想推向極致,他把每對親屬關係的稱呼人與被稱呼人都通過中介人聯繫起來,並窮舉這種聯繫的所有可能路徑,例如,「父親」既是「母親」的「丈夫」,也是「祖父」的「兒子」,還是「外祖父」的「女婿」,等等。這樣,每個親屬詞就跟其他親屬詞連接起來了。通過窮舉每個親屬詞與所有其他親屬詞的關係,就構成一個龐大的親屬關係知識庫,作為推理的基礎。但是,該方法存在理論缺陷,就是知識量過於龐大,甚至可以說無邊無際。隨著兩個親屬關係越遠,相互表達就會越複雜,且可能路徑越多,事實上無法窮盡所有的任意兩兩親屬所有可能的路徑。
第二種思路是用固定的若干核心親屬詞來刻畫其他親屬詞。這些核心的親屬詞稱為「親屬基元」。陳振宇等將親屬基元分為三類,「自己,母,夫」是核心基元,「父,妻,女,子」是次核心的基元。「兄,弟,姐,妹」是再次核心的基元。其他親屬詞都用這些親屬基元來表示。相比第一種知識表示方法,這種思路大大減少了知識庫規模。同時增加了「自己」這種零階關係,以區別「我父親的兒子」是「我」還是「哥哥/弟弟」。在親屬關係知識表示上又前進了一步。
第三種思路是從親屬關係中抽象出核心的語義特徵作為基本描述單位,所有的親屬關係均用這些核心語義特徵來定義。這是第二種思路的發展。王樹西等較早採用了這種思路,但僅簡單舉例說明,沒有系統地闡述。陳振宇等則詳細列出了各個親屬詞的知識表達,並貫徹到整個推理系統中,並通過7個核心語義特徵,列舉了46個親屬關係,是所有親屬關係推理系統中,列舉最詳細,展示最透徹的。該系統的核心語義特徵如下表:
上述核心語義特徵中,x或y表示親屬關係的結點。表示親屬關係時,所有的特徵直接用邏輯與號「∧」相連,形成一個一階謂詞邏輯表達式。例如,「女兒(x,y)」表示為「child(x,y)∧female(y)」,即「x叫y女兒」等價於「x叫y孩子,且y是女性」。若兩個親屬表示之間涉及多個中介人,則用z1……zn命名各中介結點,例如,妻子的弟弟「內弟(x,y)」的定義是「husband(z1,x)∧child(z2,z1)∧child(z2,y)∧male(y)∧elder(y,z1)」,即「x叫y內弟」等價於「y是x的妻子(z1)的雙親(z2)的另一個孩子(y),且y是男性,且妻子(z1)比y大」。
文章表明,該知識表示方法可以表示所有親屬關係。但是我們要指出,這個知識表示方式不是親屬關係最貼切的表示方法,從親屬關係推理的角度看,主要有以下幾個問題。
1.不同性質的特徵並置。在這7個核心特徵中,有四類不同的性質:第一類是描述親屬關係的拓撲結構的,包括關係函數child和husband,分別代表兩結點的血親關係和姻親關係;第二類是描述某一結點屬性的,包括描寫某一結點性別屬性的male和female,描寫兩個結點長幼屬性的elder;第三類是描述某一親屬關係屬性的,包括alone。第四類是因計算需要而設置的信息,包括self,這類信息不是親屬相關的信息,只是為了推理方便。把層次不同的四類信息置於一個邏輯表達式中,並放在一個平面來描寫,不利於親屬關係的化簡和推理。
2.關係順序信息隱藏過深。child和husband的順序構成親屬關係的核心,「丈夫的孩子」和「孩子的丈夫」是不同的兩個人。該知識表示中,將所有語義特徵並置,而沒有強調其順序。順序信息主要由child和husband的參數(結點)來體現,隱藏過深,推理時需要反覆計算關係的順序,大大增加了推理複雜度。
3.中間結點信息冗餘。該知識表示方法將所有中間結點都賦予一個變量名稱,而變量名稱在合一推理時要不斷變化,造成推理複雜度的提升。我們將在後文提出不需要結點名稱的更優的解決方案。
4.最關鍵的一點,無法窮舉所有的親屬關係。該知識表示方法能夠對給定的親屬關係進行知識表示,但無法指導構建完備的無遺漏的親屬關係集,無法為人類學和語言學的親屬關係定量研究提供理論支持。
(二)親屬關係推理規則研究
對於親屬關係的推理方法,不同的知識表示方法下稍有不同。
第一種基於「大知識庫」的知識表示方式下,由於假定已經窮盡兩兩親屬關係的所有路徑,所以親屬關係的推理,可以轉化為定義式的檢索,再用合一運算進行定義匹配。但正如上文分析,「大知識庫」的知識表示方法存在理論缺陷,對稍微複雜的親屬關係推理就無法完成。
第二、第三種基於「親屬基元」和「語義特徵」的知識表示方式下,推理過程相似,主要包括連接、化簡、匹配定義等。以陳振宇等人的研究為例,親屬關係推理過程大致如下:
輸入:格式為兩個前提條件和一個提問,如「已知老張是張三的父親,翠花是張三的嬸嬸,問老張和翠花是什麼關係」。
連接:推理時先將「父親」和「嬸嬸」轉化為定義式並連接,形成親屬關係推理表達式。
擴展:調用輔助規則,擴展推理表達式的性別、長幼次序、唯一屬性等。
化簡:調用化簡規則,簡化親屬關係表達式,以便匹配親屬關係的定義。
匹配:使用合一運算進行定義匹配,完成親屬關係推理的任務。
陳振宇等研究者列出了基於語義特徵的親屬關係推理的7條輔助規則和4條化簡規則。但是問題在於:
首先,無法證明這些規則是足夠的、完備的,即不能保證這些規則能解決所有可能的推理。事實上,這些規則並不完善。例如,化簡規則8「夫妻—子女定理」,原規則是husband(x,z1)∧child(z1,y)→child(x,y),表示若x叫z1丈夫,z1叫y孩子,則x叫y孩子;該規則輸出部分不完整,應該修改為husband(x,z1)∧child(z1,y)→child(x,y)∨child(z1,y),表示若x叫z1丈夫,z1叫y孩子,則x叫y孩子,或者z1叫y孩子。兩者都將husband關係化簡了。化簡規則的結果部分缺少了一個分支,會導致有時候無法推理出正確結果。
其次,親屬關係的語義特徵有四類,而親屬關係表達式卻把它們放在一個層次,編寫規則時,對不同類型的語義特徵考慮欠周密。例如,推理中缺少如下這條規則:已知生育出孩子x的兩個結點是y和z,若y和z的性別相同,則y和z是同一個人(父親或母親),若y和z性別不同,則y和z是夫妻。這條規則是需要性別屬性和化簡關係密切配合的,文中的知識表示描寫這種規則比較困難,以致造成了遺漏。
但是,即使補充了以上兩條規則,仍然不能確認推理規則是否完備。基於以上系統的分析,本文擬從理論上解決親屬關係的知識表示問題,並保證規則完備。
來源: 社科院網站