阿里妹導(dǎo)讀
本文總結(jié)了我們過去參與的知識圖譜項目中的一般問題和難點,沉淀為體系化的方法論,并針對不同復(fù)雜程度的知識建模問題,進行實操指南。
前言
過去兩年多的時間,針對螞蟻域內(nèi)業(yè)務(wù)場景和知識體系多樣、復(fù)雜,知識建模成本高導(dǎo)致圖譜項目啟動難的問題,我們提出了一種結(jié)構(gòu)與語義解耦的知識建模及schema設(shè)計方法,并在商家圖譜、事理圖譜、保險圖譜等多個項目中進行實踐。相關(guān)簡化schema設(shè)計及幫助對知識的屬性語義化、標準化的能力已經(jīng)集成到蜘蛛知識平臺。本文總結(jié)了我們過去所工作,沉淀為體系化的方法論,并針對不同復(fù)雜程度的知識建模問題,進行實操指南。
說明
本指南在背景部分對知識建模的發(fā)展歷程、相關(guān)問題、螞蟻場景下的挑戰(zhàn)進行書錄說明,如果對這部分已經(jīng)清楚或不感興趣可以跳過。在基礎(chǔ)篇、進階篇、高階篇,針對不同業(yè)務(wù)場景的建模需求,由淺及深講解知識建模的方法和案例,并涉及術(shù)語的解釋。本文檔所提出的建模方案,已經(jīng)在蜘蛛平臺做了對應(yīng)的能力支持實現(xiàn)(或開發(fā)迭代中)。獨立于蜘蛛平臺,讀者也可以按本文的方法論對自己的業(yè)務(wù)問題簡化抽象,實施對領(lǐng)域知識的建模及對已有常識圖譜的復(fù)用。如果你對知識圖片已有一定了解或?qū)嵺`,可跳過基礎(chǔ)篇(基礎(chǔ)篇的“屬性語義標化”依然值得一讀)。
如果你的圖譜,涉及對業(yè)務(wù)類目體系、常識概念(如“行政區(qū)劃”)的應(yīng)用,請仔細閱讀進階篇。
如果你的圖譜,涉及對帶有時空信息的行為事件的表達,或建模場景下的業(yè)務(wù)規(guī)則、專家經(jīng)驗,需要對所定義“概念”的內(nèi)涵和外延有計算機可處理可計算的邏輯語義解釋,高階篇中有你所需知道的一切。
由于高階篇的內(nèi)容有一定的閱讀門檻,如果你的場景只需要描述相對靜態(tài)的事實關(guān)聯(lián),不包含用戶行為、新聞事件的建模,沒有語義推理的需求,可以跳過高階篇,參考基礎(chǔ)篇和進階篇就夠用了。
背景
知識建模是解決將真實世界中的海量信息轉(zhuǎn)化為符合計算機處理模式的結(jié)構(gòu)化數(shù)據(jù),其中包括對真實世界中事物的屬性特征及其關(guān)系的共性的抽象,制定表示的規(guī)范,同時兼顧對常識或領(lǐng)域概念及概念層級體系的語義理解,即體現(xiàn)了對知識的認知過程。
相關(guān)工作
圖1 知識建模方法回顧
表1 知識建模方法對比
方法
特點
關(guān)系型數(shù)據(jù)庫
用實體及其屬性(關(guān)系也體現(xiàn)為外鍵)對數(shù)據(jù)結(jié)構(gòu)化,不包括語義的建模,容易存在大量的數(shù)據(jù)冗余,多跳跨表查復(fù)雜、效率低。
知識工程
本體表示:將知識表示為輯符號的形式,構(gòu)建特定領(lǐng)域概念類別及其層級細分關(guān)系,并用
一階謂詞邏輯、生產(chǎn)式規(guī)則表示領(lǐng)域?qū)<医?jīng)驗,支持知識的符合推理。
框架(frame)表示:強調(diào)將所描述的每類事物都抽象為出特定的slot-value的結(jié)構(gòu)化表示(例如目前百科詞條就是frame表示)。
弊端:人工構(gòu)建成本太高,知識獲取困難。
語義網(wǎng)
出發(fā)點是用文檔中的數(shù)據(jù)關(guān)聯(lián)+邏輯描述,讓計算機能認識和理解世界萬物。語義網(wǎng)發(fā)展過程中先后制定了基于描述邏輯的DAML、RDF、OWL、OWL2等語言,語義完備性的強調(diào),成為邏輯學家的游戲,無法工業(yè)化落地。
知識圖譜
以基本的SPO三元組,表示實體間的事實關(guān)系;但SPO對由多個要素(>2)共同決定的多元關(guān)系表示存在缺陷;圖譜schema的設(shè)計是主觀的,不同圖譜的異構(gòu)導(dǎo)致知識難以對齊融合。
事理圖譜
將事件以及事件之間的關(guān)系抽取并抽象出來,構(gòu)建描述事件之間演化規(guī)律和模式的事理邏輯知識庫。事件有frame框架表示、verb+nound表示等流派。
常識概念圖譜
圍繞常識性概念建立的實體以及實體之間的關(guān)系,幫助自然語言文本的理解。涵蓋“是什么”的概念Taxonomy體系結(jié)構(gòu),“什么樣”的概念屬性關(guān)系,“給什么”的概念承接關(guān)系。
知識超圖
超圖(Hypergraph):就是每一個邊可以包含兩個以上的點所構(gòu)成的圖,解決多元知識的表示。
?
業(yè)務(wù)問題
表2 螞蟻域內(nèi)常見建模問題
建模問題
現(xiàn)有解決方案及不足
商家資產(chǎn)等實體-關(guān)系schema設(shè)計
?
?
●無論是ER建模、本體、rdf、owl,都只是語法定義,不解決“設(shè)計模式”本身的問題。
●schema設(shè)計啟動難,難以決策屬性/關(guān)系的設(shè)計、實體類型的劃分。
●schema的設(shè)計是主觀的,導(dǎo)致不同圖譜間知識的異構(gòu)性(數(shù)據(jù)結(jié)構(gòu)不同),阻礙知識的復(fù)用。
常識、領(lǐng)域結(jié)構(gòu)化語義理解
?
●不同業(yè)務(wù)有各自體現(xiàn)業(yè)務(wù)語義的類目體系,同時螞蟻域內(nèi)的場景也涉及對常識的理解
●傳統(tǒng)的本體建模,在同一個分類體系上,既要對schema的擴展建模,又要對語義上的細分類建模,數(shù)據(jù)結(jié)構(gòu)定義和語義建模的耦合,導(dǎo)致工程實現(xiàn)及維護管理的復(fù)雜性,也增加了業(yè)務(wù)梳理和表示(認知)領(lǐng)域知識的困難。
跨圖譜融合場景
?
?
?
●不同業(yè)務(wù)部門構(gòu)建圖譜時先專注于自身領(lǐng)域的知識建模,但隨著業(yè)務(wù)的開展,需要引入其他領(lǐng)域的知識。
●跨圖譜融合,解決提高數(shù)據(jù)的復(fù)用性、提升數(shù)據(jù)治理能力,減少數(shù)據(jù)冗余重復(fù)及幫助發(fā)掘業(yè)務(wù)價值拓展。
●需要對領(lǐng)域內(nèi)有共有的實體,如:用戶、商家、POI等,提供統(tǒng)一的schema規(guī)范,并對域內(nèi)常識或公用類目,如:行政區(qū)劃、mcc類目等,沉淀為通用語義資產(chǎn)。
保險、黑產(chǎn)等業(yè)務(wù)邏輯表達需求
?
?
●保險產(chǎn)品運營、保險健告、黑產(chǎn)洞察等場景有著豐富的業(yè)務(wù)邏輯、業(yè)務(wù)規(guī)則沉淀
●需要支持業(yè)務(wù)規(guī)則、專家經(jīng)驗的形式化表達及推理能力
●一階謂詞、dsl等,對用戶有門檻,業(yè)務(wù)規(guī)則較多時,需要有更簡潔、快速的對規(guī)則建模的方法
用戶行為建模場景
?
?
?
?
多元關(guān)系建模問題
●用戶行為、金融事件、業(yè)務(wù)狀態(tài)流,都可以抽象為多元時空行為事件建模
●spo三元組表達多元關(guān)系是有損的
●超圖結(jié)構(gòu)的理解,對于非算法用戶有學習門檻,難以直接可視化
●行為時間事件之間,本身存在著時序、因果、共現(xiàn)的等關(guān)系
事理圖譜及事理關(guān)系建模
?
?
已有的研究或工作,都只解決了事件圖譜、事理(概念)圖譜或事理常識中特定一類的表示,螞蟻場景中需要對從實例到概念,從事實到常識的整體架構(gòu)
●每種事件的實例需要frame表示
●事件概念體系需要本體表示
●事件實例之間的事實關(guān)系需要spo表示
●事件概念之間的順承、因果等需要邏輯表達
?
方案概述
本體是偏哲學的學術(shù)概念,指“特定領(lǐng)域之中某套概念及其相互之間關(guān)系的形式化表達(formal representation)”。在知識工程、語義網(wǎng)時代,都用本體建模指代知識建模,利用rdf、owl等規(guī)范的語言,核心定義嚴格完備的邏輯。但這套方法不適合大數(shù)據(jù)時代知識的多樣性、跨領(lǐng)域復(fù)雜性,無法滿足數(shù)據(jù)的便捷迭代生產(chǎn)。
我們認為,“本體”在知識圖譜建模階段,存在誤用。換言之,知識圖譜建模,不需要“本體”,而應(yīng)該關(guān)注數(shù)據(jù)結(jié)構(gòu)上的“元數(shù)據(jù)”的定義,以及知識語義關(guān)聯(lián)的標簽概念體系及概念網(wǎng)絡(luò)。
基于MOF四層元模型框架,我們提出知識認知建模方法論,串聯(lián)了知識建模、知識生產(chǎn)、知識管理應(yīng)用的全生命周期流程。其中,元元概念指所定義的建模規(guī)范,如本文提出的MOF建模標準中的實體、概念、關(guān)系等建模要素就是元元概念,“元概念”對應(yīng)定義實體類型的schema,是對擁有同樣數(shù)據(jù)結(jié)構(gòu)的知識的結(jié)構(gòu)化定義,如“商家schema”、“事件schema”;“概念”是對實體的語義細分,如“螞蟻商家”、“外賣商家”,“白酒板塊事件”、“螞蟻高管變化事件”;實例對應(yīng)于現(xiàn)實中一個具體的事實,一般是ID化的,如id為2088xxxx的A空間肯德基商戶。
圖2 MOF知識建模方法?
提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)抽象及本體語義建模方法論,規(guī)范圖譜“設(shè)計模式”,降低知識認知的主觀偏差解決schema設(shè)計難、啟動成本高問題;
提出概念語義建模框架,將知識的結(jié)構(gòu)化表示與語義常識建模解耦,并用等價謂詞表達式支持概念的邏輯表示和推理,降低認知復(fù)雜度和工程實現(xiàn)難度;
定義核心實體schema及沉淀通用語義概念體系,幫助解決多元異構(gòu)知識的跨域融合;
定義多元關(guān)系、邏輯規(guī)則、事理關(guān)聯(lián)的建模方法,滿足復(fù)雜業(yè)務(wù)場景知識表達的需求。
?
基礎(chǔ)篇·實體關(guān)系設(shè)計
解決問題
解決數(shù)據(jù)的結(jié)構(gòu)化表示,包括實體各屬性字段的規(guī)范定義,及設(shè)計實體間的關(guān)系,以便將數(shù)據(jù)最終構(gòu)建為有別于傳統(tǒng)數(shù)據(jù)表的圖結(jié)構(gòu)形式,便于基于路徑的多跳關(guān)系查找。
適用場景
業(yè)務(wù)場景關(guān)注于靜態(tài)的,體現(xiàn)物理世界或業(yè)務(wù)流中客觀存在的“事實知識”;
已有結(jié)構(gòu)化數(shù)據(jù)為主(實體表、關(guān)系表、用戶行為數(shù)據(jù)等)的數(shù)據(jù)資產(chǎn);
已有數(shù)據(jù)資產(chǎn)及業(yè)務(wù)場景,能夠抽象出傳統(tǒng)ER關(guān)系圖的數(shù)據(jù)建模,可以直接套用實體-關(guān)系-屬性的建模范式;
業(yè)務(wù)對實體的類型存在劃分,如對用戶的細分或?qū)ι虘?、門店的細分;這種細分類是有限的(一般只有兩三種),每種細分有特定的屬性(如線下門店才有poi)。
業(yè)務(wù)對實體特定屬性有枚舉描述,如“商戶評級 = [S, A,B,C]”,業(yè)務(wù)應(yīng)用只需要使用確定值將數(shù)據(jù)查出來,但不需要基于屬性傳播。
術(shù)語定義
Schema
Schema是知識的“元數(shù)據(jù)”表達方式,定義了知識的概念的屬性,關(guān)系,屬性及約束。主要實現(xiàn)了實體的結(jié)構(gòu)化和實體間的關(guān)系的定義。
實體
物理世界或數(shù)字世界存在的事物是一個實體,實體對應(yīng)于數(shù)據(jù)表中的一行記錄。
實體類型,即實體的“schema”。它是對具有共同數(shù)據(jù)結(jié)構(gòu)(特征)的一類數(shù)據(jù)實例的“元數(shù)據(jù)”模式定義。因此每一個實體類型,都有自身特定的schema。同時,實體類型存在上下位關(guān)系,通過繼承,下位類擁有上位類已定義的屬性和關(guān)系及其約束。在知識圖譜平臺中,實體類型用于對具有共同數(shù)據(jù)結(jié)構(gòu)的個體進行分組管理??梢詫嶓w類型理解為,對知識結(jié)構(gòu)化表示的語法規(guī)范。如下表所示,是對自然人的schema定義。
自然人模型(Person)示意
屬性英文名
屬性中文名
屬性類型
屬性值
是否必填
id
id
String
12345xxx
是
name
姓名
String
張三
是
certId
證件號
String
330121xxx
否
certType
證件類型
枚舉類型
身份證
否
birthday
出生日期
時間類型
20230215
否
gender
性別
String
男
否
occupation
職業(yè)
String
白領(lǐng)
否
......
......
......
......
......
?
關(guān)系
描述實體-實體間的關(guān)聯(lián)。在基礎(chǔ)的實體關(guān)系設(shè)計時,只考慮滿足SPO(Subject-predicate-Object)表示的二元關(guān)系,既兩個實體間確定的關(guān)系。如定義一個關(guān)系:公司-法人->自然人,“法人”是關(guān)系謂詞,關(guān)系主體是“公司”這種實體類型,客體是“自然人”;注意,關(guān)系是有向的,則一個“公司”的實例擁有一個出邊到確定的“自然人”,且該自然人是這個公司的法人。
自然人相關(guān)關(guān)系定義
Subject
Predicate
Object
是否唯一
Company
法人
Person
是
Person
好友關(guān)系
Person
否
Person
夫妻關(guān)系
Person
是
Person
居住地
POI
否
......
......
......
......
屬性語義標化
屬性 vs 關(guān)系
在實體-關(guān)系建模時,對于實體的特性字段,到底應(yīng)該建模為屬性,還是應(yīng)該將特征key構(gòu)建為關(guān)系,特征值(value) 建模為實體,設(shè)計者經(jīng)常陷入兩難的抉擇。例如:
在對商戶建模的典型場景,一般商戶會有關(guān)聯(lián)的PID,在關(guān)系型數(shù)據(jù)表(odps)中,PID是一個id字段,pid本身也沒有特別的屬性,為了挖掘同pid的商戶、發(fā)現(xiàn)用戶對商戶的消費行為,pid應(yīng)該建模為實體,但Pid沒有任何屬性,這樣做合適嗎?
在例如對于商戶的發(fā)貨地址、所在省市區(qū)等特征,在數(shù)據(jù)表中一般是個string。但為了同地址、同地區(qū)的發(fā)現(xiàn),甚至特定業(yè)務(wù)場景本來就有地址實體庫。那么就需要對地址屬性建模為關(guān)系了。但這帶來兩個問題:1.商戶的發(fā)貨地址、用戶的收貨地址可能存在變動,特別是用戶收貨地址,在圖譜中維護時,需要在新增地址時,把歷史地址邊刪除;2. 對于所屬省、所屬城市、所屬區(qū)等,若都建為實體拉邊,將造成“熱點”(即某個點有巨量的邊),為路徑推理、采樣帶來困難。?
?
屬性:易維護(值覆蓋)、存儲量小、不傳播,難以發(fā)現(xiàn)關(guān)聯(lián)(屬性值相同的實體并沒有顯式的關(guān)聯(lián))
關(guān)系:有維護成本(修改需要刪邊再拉邊)、儲存量大、可傳播(可加強圖結(jié)構(gòu),發(fā)現(xiàn)節(jié)點間的共邊關(guān)系)、同關(guān)系類型的邊過多(例如,明星的社交關(guān)系,作為關(guān)注者只有幾百條邊,作為被關(guān)注者有千萬級的邊),對圖學習的關(guān)系采樣帶來干擾(對圖譜中的“熱點”,若采樣策略為不限定邊類型但對鄰邊限定數(shù)量隨機采樣時,可能采到的都是數(shù)量大但重要性不大的點)
屬性標化
為解決上述的屬性/關(guān)系難以抉擇,及提高知識管理的效率及降低存儲壓力,我們提出一種基于屬性語義標化的建模方法,并在蜘蛛產(chǎn)品功能上已經(jīng)交付可用。?
??
屬性語義標化能力體現(xiàn)為:
用戶在實體建模時,不必糾結(jié)實體特征需要定義為屬性or關(guān)系,統(tǒng)統(tǒng)建模為屬性;
在屬性類型選擇時,除了int、float、text三種基本類型外,提供具有語義傳播能力的語義類型(如內(nèi)置的概念類型、內(nèi)置的標準屬性類型、用戶自定義的實體類型或概念類型等)
在實例數(shù)據(jù)生產(chǎn)時,用戶當作屬性維護(如屬性一樣做知識導(dǎo)入的字段映射,屬性值修改直接覆蓋
根據(jù)所選擇的屬性語義標化類型,根據(jù)所填充的屬性值語義(以文本匹配、id匹配的方式)系統(tǒng)自動構(gòu)建“虛擬邊”;
系統(tǒng)自動創(chuàng)建及維護的虛擬邊,在查詢效率、圖算法鄰邊采樣時,與用關(guān)系建模、關(guān)系導(dǎo)入生產(chǎn)的物理邊效果一致;
當語義屬性為多值時(如一個user擁有多個手機號碼),用英文逗號分割。注意:對于實體的某特征,值是有限個(一般<10,如關(guān)聯(lián)郵箱、所屬業(yè)務(wù)類目、銀行賬戶等),可以用屬性語義標化建模來簡化知識的管理維護。當特征值數(shù)量極大時(如:用戶-消費->小程序id),依然建議使用關(guān)系建模。
表3 屬性語義標準化類型
屬性類型
類型細分
屬性定義
用法及示例
內(nèi)置類型
概念類型
通識概念
一個描述常識分類體系的樹狀知識庫,現(xiàn)覆蓋17個大類的2W+常識概念。
當實體的類型需要細粒度的分類,且該實體的細分類可以用常識知識體系描述時,定義描述實體細分類的屬性(如:對于BaikeEntry定義了子類型 subType),并將屬性類型選擇為“內(nèi)置類型-
概念類型-CKG.AntTermType”。
知識生產(chǎn)時,對實體實例的subtype賦值為常識知識樹上任意的概念的文本名稱,則平臺自動將該屬性轉(zhuǎn)為一個 BaikeEntry-subtypestd->常識概念 的邊。
則細粒度一樣的 BaikeEntry在圖結(jié)構(gòu)上能夠擁有共同的概念節(jié)點鄰居(如姚明、易建聯(lián)都是“籃球運動員”)
?
?
行業(yè)類目
●MCC類目
●POI類目
●門店類目等
●蜘蛛平臺上集成維護了螞蟻域內(nèi)常用的MCC2.0、高德POI類目和門店類目
●以往對相關(guān)商戶、門店、POI/AOI實體建模時,業(yè)務(wù)往往用多個字段維護各級類目的code和名稱
●現(xiàn)在對實體-特定類目的信息維護,只需定義一個屬性(如定義一個“所屬類目”屬性),并將屬性類型選擇為“內(nèi)置類型-概念類型-具體的某個類型體系”。
●知識實例生產(chǎn)時,將屬性值填充為類目的code或名稱(一般是葉子節(jié)點的類目),則平臺能力可以追溯類目的上級路徑,并自動拉邊,關(guān)聯(lián)具有同類目的實體實例。
●同時,平臺提供存量遷移的能力,對于歷史遺留的相關(guān)屬性,也能夠遷移為語義標化屬性,如圖為對螞蟻POI庫進行的遷移維護。
?
?
內(nèi)置類型
標準語義類型
(編碼id相關(guān))
虛擬地址
●郵箱
●網(wǎng)址等
●手機號碼
●Mac地址
●國內(nèi)電話號碼
●……
這類屬性標化類型是指,用戶選擇特定的“內(nèi)置類型-標準語義類型-特定可傳播的標準id類型”,則實例數(shù)據(jù)生產(chǎn)時,屬性字段值填寫對應(yīng)的id、url、電話號碼等(多值用英文逗號分隔),平臺提供:
●正則檢測:平臺會對郵箱、手機號碼、國內(nèi)號碼、銀行賬戶、2088賬戶等,對所填編碼的邏輯格式進行正則檢測
●ID鏈指:平臺會對每個語義類型下,每個存在的id構(gòu)建一個虛擬節(jié)點,并按照實例知識中實體-id的屬性值,構(gòu)建實體與該id所屬虛擬節(jié)點的邊關(guān)系;這項機制能夠幫助用戶發(fā)現(xiàn)及可視化同id、同電話號碼、同郵箱的實體。
?
?
?
ID屬性
●身份證號碼
●2088賬號
●支付寶PID
●銀行賬戶
●螞蟻POI
●……
內(nèi)置類型
標準語義類型
(時間相關(guān))
時間戳
1665476056
時間標準化及時間的計算比較
時間區(qū)間
[起始時間,結(jié)束時間]
時間戳是否落入時間區(qū)間的檢測,蜘蛛能力待開發(fā)
時間間隔
●一天
●一年
●24小時等
判斷兩個時間戳是否滿足時間間隔,蜘蛛能力待開發(fā)
內(nèi)置類型
標準語義類型
(空間類型)
行政區(qū)劃
國家-省-市-區(qū)四級(目前僅支持中國行政區(qū))
●蜘蛛平臺集成了四級標準行政區(qū)劃類目
●以往業(yè)務(wù)為了表示結(jié)構(gòu)化的標準多級地址,一般會構(gòu)建國家編碼/國家、省編碼/省、市編碼/市、區(qū)編碼/區(qū),共8個屬性字段,存在著屬性的冗余儲存。且plain text的文本屬性,不利于快速的發(fā)掘同地區(qū)的實體。
●利用語義標化,將表達實體行政區(qū)域特性的屬性,類型選擇為“內(nèi)置類型-概念類型-行政區(qū)劃”,數(shù)據(jù)生產(chǎn)時,將屬性值填充為能夠識別到的最細粒度的行政區(qū)劃單位(平臺提供兜底默認算子,幫助地址的結(jié)構(gòu)化理解及標準化)
●通過語義標化鏈指能力,對于填充的行政區(qū)劃屬性值,其上級類目是可追溯的(如所在區(qū)縣為“西湖區(qū)”時,西湖區(qū)-位于->杭州市-位于->浙江省-位于->中國,是已維護在“行政區(qū)劃”類目樹上的)
●平臺能夠自動拉邊,維護實體(如poi、aoi、門店等)到特定省、市、區(qū)縣的關(guān)系,并實現(xiàn)不同粒度下所屬行政區(qū)劃的查詢。
?
?
?
經(jīng)緯度坐標點(Position)
(經(jīng)度,緯度)
同POI計算發(fā)現(xiàn)(球面距離小于epsilon),蜘蛛能力待開發(fā)
?
經(jīng)緯度范圍
(Position1,Position2)地理區(qū)塊四邊形(左上-右下坐標)
判斷一position是否在該范圍內(nèi),蜘蛛能力待開發(fā)
自定義屬性類型
實體/概念
平臺內(nèi)置的概念類目體系、可傳播的語義屬性類型,無法完全滿足特定業(yè)務(wù)的建模需要;因此,用戶可以將屬性類型賦值為“內(nèi)置類型-自定義屬性類型”,則在高級配置頁面,選擇將屬性標準化為自定義的一個實體類型(默認用id鏈指)或概念類型(默認用概念名稱鏈指)。
如果所示,對于“公司事件”實體,擁有兩個語義標準化屬性的應(yīng)用——1.公司id,選擇為“工商機構(gòu)”實體,則能夠利用平臺id鏈指能力自動拉邊到確定的“工商機構(gòu)”實例;2.事件類型標簽,定義為“概念事件”(業(yè)務(wù)自定義的一套為金融事件分類體系,概念建模詳見進階篇),則能夠利用平臺的概念標化鏈指能力自動拉邊掛載到“概念事件”樹。
?
?
?
其他待開發(fā)
的屬性
數(shù)量類型
數(shù)額
●度量/指標類型+數(shù)值表示
●對度量/指標類型標準化
●同一數(shù)量類型的比較
●區(qū)間數(shù)值合法性檢驗
指標
區(qū)間數(shù)值屬性
●年齡
●年份
建模步驟及案例
實體關(guān)系設(shè)計,是為具有同樣結(jié)構(gòu)化特性(即有同樣的特征要素)的實體定義的實體類型的schema,并建立實體類型間的關(guān)系。實體schema包含實體類型的命名、屬性定義、屬性類型及屬性值的約束,關(guān)系schema約束關(guān)系主體和關(guān)系客體的實體類型。我們推薦在啟動一個新的圖譜項目時,按照以下步驟進行實體-關(guān)系建模:
1. CoreKG schema復(fù)用
schema的設(shè)計具有主觀性,為了消除這種主觀偏差,特別是降低跨圖譜知識融合的復(fù)雜性,我們從過去的業(yè)務(wù)圖譜設(shè)計經(jīng)驗中,總結(jié)了螞蟻場景下常見的實體類型schema,并商家到corekg核心圖譜;當業(yè)務(wù)涉及到這些實體數(shù)據(jù)時,可以直接對實體schema及數(shù)據(jù)引用/復(fù)用,減少重復(fù)建設(shè),快速啟動新的圖譜項目。
如果為了業(yè)務(wù)安全/數(shù)據(jù)隔離等的考慮,業(yè)務(wù)需要自定義及構(gòu)建自己的實例數(shù)據(jù),我們也推薦對于corekg已有的實體類型,用戶可以對其schema設(shè)計,特別是屬性的定義和命名參考借鑒。
圖3 corekg核心實體定義?
2. 實體關(guān)系設(shè)計
參考corekg中已有實體的schema,針對業(yè)務(wù)問題及數(shù)據(jù),構(gòu)建業(yè)務(wù)所需實體定義。
比如前文所述對螞蟻用戶定義的自然人模型,包括"姓名(name)"、"年齡(age)"、"身份證號(certNo)"、"家庭住址(homeAddr)"等基礎(chǔ)屬性,此外,定義"Person-好友關(guān)系-Person"、"Person-夫妻關(guān)系-Person"等關(guān)系。
自然人模型(Person)示意
屬性英文名
屬性中文名
屬性類型
屬性值
是否必填
id
id
String
101xxx
是
name
姓名
String
張三
是
certId
證件號
String
330121xxx
否
certType
證件類型
枚舉類型
身份證
否
birthday
出生日期
時間類型
20230215
否
gender
性別
String
男
否
occupation
職業(yè)
String
白領(lǐng)
否
......
......
......
......
......
?
?
不同業(yè)務(wù)因領(lǐng)域模型不同會有自己的業(yè)務(wù)知識,比如同樣一個用戶,由于歸屬的業(yè)務(wù)不同,在螞蟻會存在"支付寶用戶(AlipayUser)"、"財富用戶(FortuneUser)"、"網(wǎng)商用戶(MyBankUser)"、"保險用戶(BaoxianUser)"等用戶模型,雖然這些用戶模型背后指向的是同一個自然人模型,但在不同業(yè)務(wù)域有新增的屬性字段,則利用schema的繼承復(fù)用已定義的屬性/關(guān)系約束,并在此基礎(chǔ)上擴展新的特性。
支付寶用戶模型(AlipayUser)示意
屬性英文名
屬性中文名
屬性類型
屬性值
是否必填
id
AlipayId
編碼類型
2088
是
name
姓名
String
張三
否
memLevel
會員等級
枚舉類型
黃金會員
否
shoppingPref
購物偏好
物品概念
小吃
否
......
......
......
......
......
?
用戶統(tǒng)一模型示意
對于不同業(yè)務(wù)實體歸屬同一主體的情況,一是可以在Schema層歸類到統(tǒng)一實體模型上(深度繼承),二是可以在數(shù)據(jù)層在相同實例之間增加isA或sameAs謂詞關(guān)系(實體融合),達到主體分類一致的目的。
3. 語義標準化
參考“屬性語義標化”章節(jié)的內(nèi)容,優(yōu)化屬性/關(guān)系的定義,將可以標化的屬性選擇為標準屬性類型,對于適用id鏈指/概念鏈指的關(guān)系,轉(zhuǎn)化為語義屬性。例如,由于夫妻關(guān)系是唯一的,則可以將夫妻關(guān)系建模為語義屬性。而朋友關(guān)系是多對多的,一個人可能有上百個朋友,因此依然用關(guān)系建模朋友關(guān)系。
進階篇·概念語義建模
解決問題
在知識圖譜中,除了知識的元數(shù)據(jù)定義(即schema),通用常識和領(lǐng)域知識的語義關(guān)系、常識/業(yè)務(wù)類目的分類體系,體現(xiàn)了對語義的認知。為了將語義建模與知識的結(jié)構(gòu)化表示解耦,我們提出的方案是用“概念語義建?!眮韺ΤWR概念及常識關(guān)系建模,對特定領(lǐng)域知識的認知體系和經(jīng)驗規(guī)則建模。
如圖4所示,在概念建模中,構(gòu)建對常識/特定實體類型的分類體系。Root節(jié)點,代表“常識知識樹”的根結(jié)點,在這棵概念樹上,我們預(yù)定義了17種實體的分類體系,如“角色”、“物體與物品”、“組織機構(gòu)”、“品牌”、“事件”都是一個“元概念”(即一個分類體系的根結(jié)點),每個元概念作為起點的子樹,定義了對該類實體的語義細分,目前螞蟻知識樹上已經(jīng)有超過2W+的節(jié)點。此外,在常識概念圖譜中,我們還集成了高德poi類目、意圖圖譜、mcc2.0行業(yè)類目、行政區(qū)劃概念樹、hownet義原語義網(wǎng)絡(luò),作為跨領(lǐng)域可插拔的常識語義認知系統(tǒng),幫助各個業(yè)務(wù)圖譜深度實體類型理解及屬性語義標準化。
例如對于圖中所示的描述服務(wù)內(nèi)容結(jié)構(gòu)化理解的領(lǐng)域圖譜,在領(lǐng)域圖譜中,小米10-手機類型->“智能機”,“智能機”是結(jié)構(gòu)化抽取到的spo mention,通過概念鏈指標準化到知識樹上的概念“智能手機”,則通過知識樹的可追溯鏈路,能夠知道小米10同時也屬于手機、數(shù)碼產(chǎn)品、電子電器產(chǎn)品。同時,為了保障語義的內(nèi)聚性,盡量為用戶提供簡潔的描述并加強信息間的關(guān)聯(lián),“概念”也提供對關(guān)系謂詞(即屬性名稱、關(guān)系名稱)標準化的能力。如“所屬公司”這個謂詞,其實約束了尾節(jié)點的實體是一個公司。
圖4 概念語義建模
適用場景
除了將圖譜當作一個能具備增刪改查功能的數(shù)據(jù)庫,還希望對業(yè)務(wù)邏輯、領(lǐng)域經(jīng)驗進行管理;對文本屬性,不只是作為“符號”,還希望能理解文本背后的語義,挖掘知識間的隱含關(guān)聯(lián);
業(yè)務(wù)上對實體定義了非常詳細的分類類目,一般這種類目是以樹狀形式組織的;
實體的屬性字段的值是行政區(qū)劃、職業(yè)、行業(yè)類型等常識術(shù)語,并希望這些屬性在圖上是“可傳播”的(即通過這個值,可能關(guān)聯(lián)擴散到其它擁有同樣值的屬性節(jié)點),這些常識術(shù)語本身有層級蘊含關(guān)系(如:位置在西湖區(qū),則一定也位于杭州市)
業(yè)務(wù)定義的類目,不僅僅是一個用來區(qū)分實例的標簽值,還存在背后的定義邏輯(如:活躍人群 = 過去30天支付寶訪問超過1次的user)
希望表達領(lǐng)域常識(程序員有夜間出行偏好)并應(yīng)用,而不是記錄具體實例的事實(行為事實:小螞在x年x月x日晚上21:00在A空間打車;偏好事實:小螞的“偏好屬性”字段被打上了“夜間出行偏好”)。
術(shù)語定義
概念
把所感知的事物的共同本質(zhì)特點抽象出來,加以概括,是自我認知意識的一種表達,形成概念式思維慣性。概念的意思:思維的基本形式之一,反映客觀事物的一般的、本質(zhì)的特征。
概念建模,期望通過對實體分類體系和基于common sense的通用語義元素的定義,并以樹狀層級體系進行組織,自頂向下的體現(xiàn)實體語義的細分。其中我們將滿足以下任意一個特性的短語定義為一個概念(concept)。
?
圖5 概念是什么
元概念
meta-concept,即概念的概念,在蜘蛛上是指用來組織一個特定概念體系的規(guī)范。元概念定義,就是根據(jù)對特定領(lǐng)域/業(yè)務(wù)的認知或常識,定義該類型概念的結(jié)構(gòu),約定概念的屬性、層級結(jié)構(gòu)及表達層級結(jié)構(gòu)的語義謂詞。
當我們需要在語義上對實體類型細分時,實體類型的schema可以對應(yīng)一個元概念,以表現(xiàn)對該類型實體類型的分類體系。例如圖四中的“角色”、“物體與物品”、“組織機構(gòu)”、“品牌”、“事件”都是“元概念”,定義了對特定實體的語義細分體系。
概念 VS. 實體
表4 概念和實體的區(qū)別
概念
實體
什么是概念
●概念是對具有同樣特征的實例的抽象,是語義上/認知上能夠被“歸類”為同一類型的實例的集合。
●概念是符號化的,但領(lǐng)域內(nèi)的人對它這個符號的語義是有共識的。
●概念帶有領(lǐng)域/業(yè)務(wù)/常識的主觀或經(jīng)驗,是人為定義的,概念的內(nèi)涵/語義是相對恒定的。
●概念的符號體現(xiàn)了自身的語義,概念之間構(gòu)建的語義關(guān)系邊 (白酒板塊事件 -涉事產(chǎn)品-> 白酒,白酒-原料->糧食,豬瘟疫情事件-影響->豬肉價格上漲,形成了描述領(lǐng)域常識的語義網(wǎng)絡(luò)。以上舉例的三元組中的S和O都不是具體的、特定的實例,而是對同一類實體,及同類實體所具備共有特性的概括)
○可以先簡單粗暴的認為,“概念”是沒有“屬性”的(除了編碼、別名、描述)
○事件抽取出的mention,無法與實體庫對齊的文本類型要素(非時間、非數(shù)值),都可以認為是概念
●實體類型,是對擁有同樣數(shù)據(jù)結(jié)構(gòu)/論元要素的數(shù)據(jù)的定義
●實體實例,是id化的,唯一存在的實例。
●實體是客觀的存在,實體的特征是動態(tài)變化的。
●實體擁有特異的屬性/關(guān)系定義。例如:某個事件的發(fā)生事件、地點、主體、客體;某部手機的型號、屏幕、尺寸、內(nèi)存等參數(shù)。
什么應(yīng)該被定義為概念
●類目概念:對具有同樣特征的一類實體的語義抽象,可以來自業(yè)務(wù)類目、領(lǐng)域的taxonomy,比如POI類目、MCC類目等。
●常識概念:在特定領(lǐng)域(元概念)下,人們有共識的無歧義短語,比如杭州市、手機、中秋節(jié)。
●原子概念:一般存在于L0-L2級的概念,概念名是不可拆分的表達完整語義的核心詞,一般直接來源于領(lǐng)域常識術(shù)語。如:產(chǎn)業(yè)鏈事件、芯片、有色金屬。業(yè)務(wù)類目、領(lǐng)域的分類體系(職業(yè)分類、企業(yè)分類、品類、產(chǎn)業(yè)分類、NER_Label、實體類型、屬性名稱、邊關(guān)系類型、人群標簽、星座、血型、人種、民族、學歷、獎項、各種title,都是概念?!?div style="height:15px;">
●復(fù)合概念:在一個核心詞概念上增加語義修飾限定(該限定可以是概念, 也可能代表特定實例),例如:“白酒”+“產(chǎn)品價格上漲” = 白酒產(chǎn)品價格上漲 “杭州” + “互聯(lián)網(wǎng)”+“上市公司” = 杭州互聯(lián)網(wǎng)上市公司 "腰封偏好" +"高日活"+ "支付寶賬戶" = 高日活的腰封偏好支付寶賬戶“阿里巴巴”+“公司” = 阿里系公司“華為”+“手機” = “華為手機”復(fù)合概念 可以拆解為等價的謂詞邏輯表達式(見后文)
在事理圖譜場景下,需要金融事件相關(guān)的各種事件類型建模,包括宏觀的行業(yè)時間、國家政策事件,也有微觀的局部地區(qū)的牲畜疫情事件、個股漲跌事件、公司事件;宏觀事件可能影響微觀事件,微觀事件的發(fā)生可能引發(fā)另一個微觀事件。
金融場景下包含的事件類型十分龐大,每種事件在業(yè)務(wù)上所關(guān)注的事件要素是不同的。同時,業(yè)務(wù)會對同一大類的事件繼續(xù)語義細分以便套用業(yè)務(wù)邏輯去做風險預(yù)警、評級,例如圖6所示,公司事件下,會細分出工商信息變更事件、高管變動事件等,高管變動事件下又有實控人變更、股東跑路、實控人涉訴等。當事件類型語義細化到很細節(jié)的粒度時,不再涉及事件要素的新增(即元數(shù)據(jù)結(jié)構(gòu)上沒有變化)。
因此,如圖7所示,在知識建模時,將事件的結(jié)構(gòu)化表示所需要的schema定義,和業(yè)務(wù)上的事件認知分類體系解耦為兩個獨立的樹狀體系,再使用標準謂詞、邏輯規(guī)則等構(gòu)建結(jié)構(gòu)與語義的對應(yīng)關(guān)系。具體步驟如下:
實體類型的schema定義,只是對結(jié)構(gòu)化表示的約束。為了體現(xiàn)對實體的語義的認知,用概念建模來定義實體的細分類體系。對于事件的分類體系,定義EventConcept作為元概念。并在這個元概念下,類似決策樹一樣,根據(jù)特定場景/業(yè)務(wù)最重要、最有區(qū)分度的特征為度,按照樹狀層級,細分出細粒度層級的概念。
在元概念上,可以定義概念的屬性,如概念別名等。元概念上還需要定義該概念體系的謂詞,用于解釋這顆概念樹上下層級概念間的語義關(guān)系。一般默認為“isA”,體現(xiàn)上下位關(guān)系。但對于行政區(qū)劃等類目,需要重寫為locatedAt等特定謂詞,以更明確、恰當?shù)谋砻娓拍顦涞慕M織形式。
belongTo是蜘蛛平臺的保留謂詞,用于為一個實體類型schema設(shè)置專屬的概念分類體系。例如,建立Event-belongTo->EventConcept的關(guān)系,則定義了Event(及其子類型)的實例,由EventConcept為_Root的概念體系做細分類。
由于不同事件可能需要抽取和結(jié)構(gòu)化的特有的事件要素,則通過schema的繼承,來定義一個子類的事件schema及增加要素定義。如companyEvent增加了“涉事公司”,LivestockEpidemicEvent增加了涉事牲畜、牲畜死亡規(guī)模、疾病類型等要素。對于schema上定義的屬性,能夠進行標準化或概念化的事件要素,屬性類型選擇為語義類型(需要提前定義概念體系)。
本方案所體現(xiàn)的建模方式是強schema約束(為了便于知識的規(guī)范管理)及語義標準化的。當細粒度的分類不涉及事件要素的新增時,則在對應(yīng)概念體系上增加概念事件來完成對語義的細化。如在圖7的概念樹上,對牲畜疫情事件,繼續(xù)細化為豬疫情事件、禽流感疫情事件等。
實例生產(chǎn)有兩種模式:1.非結(jié)構(gòu)化數(shù)據(jù):基于schema約束的信息抽取,并將抽取到的信息標準化(依賴實體鏈指、概念鏈指)后,對schema定義的實體要素(屬性、關(guān)系)進行填充,完成實例知識的結(jié)構(gòu)化;2.結(jié)構(gòu)化數(shù)據(jù):這類數(shù)據(jù)一般已經(jīng)是在odps表中,自身是有schema的,則對odps表和實體類型schema的知識結(jié)構(gòu)映射,完成數(shù)據(jù)實例化及入圖譜。
每個概念體系本身是樹狀結(jié)構(gòu),但概念之間還可能存在豐富的常識語義關(guān)聯(lián),概念建模也包含著對常識/領(lǐng)域語義網(wǎng)絡(luò)的構(gòu)建。如圖7中,在事件概念樹上,選擇將“豬口蹄疫事件”的上級概念設(shè)置為“豬疫情事情”;同時“豬口蹄疫事件”也是一種“口蹄疫事件”,則定義事件概念間的subtype語義關(guān)系(與實體關(guān)系建模類似的方式),來構(gòu)建細粒度語義概念與其關(guān)聯(lián)的其他概念間的關(guān)系。
基于對螞蟻內(nèi)部常見主體及其相關(guān)類目、屬性字段的分析,并參考百科詞條分類體系、Hownet、termtree體系,我們定義了覆蓋17個“元概念”類型的常識知識樹的主干框架。
對應(yīng)為實體類型。例子:品牌、術(shù)語、事件、組織機構(gòu)。即一個特定的schema實體類型,對應(yīng)擁有一個概念類目體系,則L0為該體系的root節(jié)點。
決定了概念類目細分的方式。這里就像是決策樹一樣,先選擇最有區(qū)分度、子概念類型不重合的方向細分。在L1定義的概念,是概念類型在不同緯度、行業(yè)、領(lǐng)域、應(yīng)用場景的類目樹的根節(jié)點。
在螞蟻常識知識圖譜,我們集成了常識知識樹、行政區(qū)劃類目樹、MCC2.0、高德POI、意圖知識樹等螞蟻域內(nèi)通用的常識認知體系和領(lǐng)域分類體系,來幫助跨業(yè)務(wù)的概念類目集成和內(nèi)容理解。?