官术网_书友最值得收藏!

  • 思維工程
  • 錢小一
  • 2509字
  • 2021-09-07 17:16:51

三、詞匯流轉為概念流

第一步輸出了詞匯流,第二步簡單而言就是把詞匯替換為對應的概念,為統轄搜索做數據準備。但真實的情況會復雜很多,總結一下大概會有以下幾個方面:其一,句子中可能存在代詞,需要在語境中尋找合適的替換代詞概念;其二,在具體對象沒有名稱的時候,人類有傾向用具體對象從屬的對象類去指向之,這時就需要區分詞匯指向的到底是具體對象還是對象類;其三,人類的意向表達,選擇概念時未必有精準表達點,往往會選擇不同的在意向空間距離相近的概念表達同個意向,比如我們會用“努力”“不浪費一點時間”“不畏懼困難”等概念表達個體在面對工作的時候的積極意向。如果不把概念在意向層面歸一,我們在邏輯運算的時候就會遇到困難,難以捕捉那些表達主要意向和意味的事情。接下來將分別討論解決這些問題的機制。

對于代詞,我們知道代詞中“他”“她”“它”分別指向“男人”“女人”“人類以外的具體對象”。具體指向什么具體對象呢,我們會默認指代語境中最近的符合此類型的具體對象。所以只需要去語境變量中依次(從最近出現的開始)考察每個具體對象是否是男人/動物/女人的子類,最先找到的具體對象為用來替換代詞的對象。

對于用對象類對應的詞匯指向具體對象,類似代詞,我們會默認指代語境中最近的對象類的子類。只需要去語境變量中依次(從最近出現的開始)考察每個具體對象是否是此對象類的子類,用最先找到的具體對象來替換對象類對應的詞匯。其困難的地方在于:其一,對象類對應的詞匯有些時候就是指向對象類的,比如“早上一只貓跳到我們院子里,貓是一種很可愛的動物”,后面的“貓”就是指對象類的。這里該如何區分到底是指向具體對象還是對象類呢?其二,在一段話第一次用對象類指向具體對象的時候,具體對象在語境中是不存在的,此時如何決定是建立一個歸屬對象類的具體對象,還是認為詞匯指向的就是一個對象類?對于第一個問題,對象類和具體對象所處的表達單元信息是有差異的,所以我們需要依賴句子結構對應表達信息單元來判斷到底指向的是具體對象還是對象類,也就是第三步做的事情。所以這邊做的就是輸出兩種可能,即用對象類ID替代和用從屬于對象類的具體對象ID替代,留到第三步看哪種能匹配上語法中的句子結構模板。第二個問題,人類的表達中第一次指向是有明確的句子結構特征的,比如“一只小貓”,前面加了數量詞就是需要指向一個具體對象的特征,所以這種情況也需要保留兩種可能到第三步去決定。

對于相對關系名稱,比如“瓊斯先生有一個兒子、一個女兒,兒子不喜歡動物,女兒很喜歡動物”,其中“兒子”“女兒”就是相對關系名稱,它不同于一個對象類的名稱。如果語境中沒有相對關系,意味著擁有此相對關系的元素會在該句被引入語境,我們在第二步直接用相對關系名稱的ID替代,到了第三步轉錄完成時自然會在語境中創建這個相對關系。如果語境中已經有此相對關系,我們就會用相對關系中這個名稱后面的概念替換句子中的相關關系名稱。

接下來,對于表達者在意向層不精確地使用屬性概念,人類往往會在對話或一大段表達中重復他所想強調的屬性信息,但往往會使用和屬性意向相接近的各種屬性。我們需要把這些屬性歸一,這樣我們聽到的強調信息就不會是零散的,而能夠捕捉到表達者重復強調的內容。所以工程上,當AI識別到句子中一個屬性概念的時候,會先查看它和語境中已有屬性概念的意向距離,如果意向很接近,我們就會用語境中已有的屬性概念替代它。

那么第一個屬性概念就原封不動地寫入語境嗎?不會。人類聽者有一個原則——“在自己的認知框架內理解別人講的話”,其中一層含義就是當聽到一個屬性概念A對應的詞匯時,我們尋找意向空間內和它最接近的我們熟悉的概念A*,用A*替代之而不用概念A。這么做的原因是,如果概念A*是熟悉的,就意味著有很多知識引用了A*,所以A*比起A和各種知識聯系得更近,更容易發生運用這些知識的運算。工程上,當AI識別到句子中的一個屬性概念的時候,會去長期記憶中尋找那些頻次強度足夠高的屬性,頻次強度在一定程度上反映了一個概念參與常用知識的程度,考察這個屬性概念和這些高強度屬性概念的意向距離。如果找到距離足夠接近的高強度屬性,則用這個屬性替代之。

關于實驗,(1)我們考驗AI是否能夠正確替換語境中的代詞,考察AI是否能正確用語境中的對象替換句子中的相對關系名稱。(2)我們考察AI是否能夠區分哪些概念類對應的詞匯是指向概念類的,哪些是指向具體概念的。(3)我們在一段對話中換著屬性概念去表達一個意向語義,考察AI能否總結出表達中的重點。(4)我們用一個屬性在AI腦中建立知識,然后用意向距離很接近的屬性在表達中使用,考察AI是否把知識運用到語境場景中。當然,所有這些實驗都需要以正轉錄整體閉環完成為前提。

第二步詞匯流轉為概念流的實現參考模塊8.2。


Topic:對象類的名稱指代什么


在逆轉錄過程中,具體元素參與的結構信息,比如具體事件,會被逆轉錄算子加工一次,輸出的結果包含具體對象ID;再次執行逆轉錄算子的時候,如果具體對象沒有名稱,就會選擇用合適的結構信息指向;再其次會用具體對象的屬類的名稱去指向。一旦語言的輸入運用了具體對象的屬類名稱去指向這個具體對象,在轉錄中就會遇到問題:我們無法分清楚這個詞匯是指向屬類,還是某個具體對象。事實上,很多情況下,從單個語法模板切分出來的句子片段無法判斷這點,比如“莊園的主人”是切分出來的一個指向,這邊的莊園可以是一個具體莊園,也可以指一個“莊園”的對象類,在這個切分片段中是看不出來的,我們設想一下完整的句子“莊園的主人瓊斯先生是一個富豪”,這個完整的句子讓我們知道“莊園”是一個具體對象;而“莊園的主人都很有錢”這個完整的句子讓我們知道“莊園”是一個對象類。

這個問題的本質在于,在語言輸出的逆轉錄過程,從概念到詞匯用了多對一的映射。在這個例子中,具體對象和對象類用了同個詞匯,導致轉錄算子運算過程出現了兩個或以上的概念選擇,而要決定到底是哪個概念需要從表達的整體去考察。這就意味著在正轉錄過程中,如果出現多種可能,我們需要暫時輸出多種可能的信息,正確的信息能夠和其他信息組合成一個整體,而錯誤的信息往往不能,除非句子本身有歧義,或需要在更大的語境背景中去決定。

主站蜘蛛池模板: 昔阳县| 临沭县| 马鞍山市| 澄城县| 图们市| 项城市| 万载县| 莲花县| 淮南市| 张家港市| 娱乐| 静宁县| 宣汉县| 德钦县| 邢台市| 长春市| 灵宝市| 钟山县| 彰武县| 社会| 忻城县| 上思县| 文昌市| 公安县| 新乡市| 晋城| 磴口县| 龙江县| 荣昌县| 伊宁市| 萨嘎县| 梅州市| 汉寿县| 诸暨市| 饶阳县| 通渭县| 临朐县| 瑞昌市| 安多县| 黑龙江省| 延庆县|