如何建立中游領(lǐng)域性KG(知識圖)
1 復習:上游行業(yè)性KG
在前一期《如何善用通用性行業(yè)KG》文章里,曾舉例說(shuō)明了基于FlavorGraph 通用性上游KG,來(lái)建立下游任務(wù)型KG。其中,通用性行業(yè)KG(如Flavor Graph)蘊含豐富的行業(yè)共享性知識,而企業(yè)則針對小領(lǐng)域的特殊需求(如拉面的烹飪過(guò)程、食材搭配、口味調配等)。這種模式是一種知識驅動(dòng)的AI 遷移學(xué)習,其建立的企業(yè)KG(如FoodKG)更具針對性,能加速AI針對企業(yè)目標的應用。其架構如下圖1所示。
圖1 行業(yè)KG支持下游任務(wù)
其中的核心任務(wù)是:將行業(yè)FlavorGraph的節點(diǎn)嵌入(node embedding)作為企業(yè)FoodKG + GCN的初始特征(initial features),讓外部的行業(yè)性知識來(lái)增強本地圖譜的表現。初始特征來(lái)自于成熟的知識圖譜,代表了節點(diǎn)間的隱含語(yǔ)義與結構關(guān)系。這種初始化能顯著(zhù)提升模型在各行業(yè)的學(xué)習能力和性能。
2 三層KG架構設計
從上圖-1里,可以看到其為兩層KG架構。其中,下游任務(wù)KG直接使用上游任務(wù)KG,兩者常常會(huì )出現過(guò)度相依,降低了靈活性。此時(shí),可以考慮建立三層KG架構,其添加了中間層KG,帶來(lái)上游與下游KG之間的松耦合(loose coupling)關(guān)系,創(chuàng )造了整體架構的靈活性。茲說(shuō)明各層KG 架構設計要點(diǎn),如下:
第一層:上游通用性行業(yè)大KG
設計要點(diǎn):利用開(kāi)源的FlavorGraph行業(yè)大KG+GNN。建立「食材?分子成分?味覺(jué)特性」的三重組關(guān)系,表達食材與其主要香氣化學(xué)物的對應關(guān)系。
第二層:中游特定領(lǐng)域KG
設計要點(diǎn):建構以特定領(lǐng)域的「共現」關(guān)系,例如在同一份發(fā)酵菜單中出現的食材群。自定義發(fā)酵食譜共現圖,使用共現關(guān)聯(lián)矩陣或DGL異質(zhì)圖作為模型訓練素材。使用GraphSAGE/GAT/GCN訓練contextual食材嵌入,讓語(yǔ)意更貼近文化與地方搭配習慣。
第三層:下游任務(wù)型應用KG
設計要點(diǎn):聚焦在人與物的關(guān)系:顧客?食材,建立異質(zhì)圖。加入偏好分數、食用紀錄、健康因子等個(gè)人化屬性。融合GNN score(語(yǔ)意內積)與群體差異(CF_ link)做出創(chuàng )新食譜、食材推薦。
3 承先啟后:設計中游領(lǐng)域性KG
A.認識上游KG的既有架構
首先觀(guān)察通用性FlavorGraph 知識圖里,內含兩種節點(diǎn)(Node):食材(Ingredient)和風(fēng)味化合物(Flavor compound)。也含有兩種邊(Edge):ingr-ingr共現邊和ingr-fcomp成分邊。如下圖2 所示:
圖2 上游KG的架構
這兩種邊協(xié)助FlavorGraph架構起跨食材與化合物的知識網(wǎng)絡(luò )。其含義如下:
● ingr-ingr共現邊:即< 食材- 食材> 之共現關(guān)系
● 含義:這條邊代表兩種食材之間的風(fēng)味分子相似性(Flavor Compound Similarity)。
● 使用場(chǎng)景:當兩種食材具有類(lèi)似的化學(xué)風(fēng)味分子(Flavor compounds),這FlavorGraph就會(huì )建立一條ingr-i表示它們可能能夠很好地搭配(互補)。
● 應用例子:洋蔥與大蒜可能具有共同的硫化物化合物,因此在許多料理中常一起使用。
● ingr-fcomp成分邊:即< 食材- 風(fēng)味化合物> 之包含關(guān)系
● 含義:這條邊表示某個(gè)食材中實(shí)際包含某個(gè)特定的風(fēng)味化合物(或稱(chēng):風(fēng)味分子)。
● 使用場(chǎng)景:建立從食材節點(diǎn)(Ingredient node)指向風(fēng)味化合物節點(diǎn)(Flavor compound node)的連結,描繪食材的化學(xué)組成。
● 應用例子:香菜(Cilantro)會(huì )連結到decanal 或linalool這類(lèi)風(fēng)味化合物。
以表格說(shuō)明如下:
以Python 代碼(片段)表示如下:
這種通用性行業(yè)KG蘊含了豐富的行業(yè)共享性知識。
B.中游KG的架構設計
一旦充分熟悉了上游大KG 的架構了,就能承先啟后、繼往開(kāi)來(lái),設計出一個(gè)中游領(lǐng)域性KG了。例如,基于FlavorGraph 的預訓練嵌入(Embedding)來(lái)建立發(fā)酵食品的領(lǐng)域性(中游)<食譜?食材KG>,它將具備語(yǔ)意豐富的風(fēng)味知識結構。從上圖-2里,可以觀(guān)察到,FlavorGraph的核心節點(diǎn)是:食材,而其< 食材?食材>邊是分子層級風(fēng)味成分的相似性之關(guān)聯(lián),又稱(chēng)為:下層(分子)的共現性。
接著(zhù),仍以食材為中心,添加上層視角的觀(guān)察,會(huì )發(fā)現到:上層(食譜)的共現性。亦即,兩種食材出現于同一食譜的共現性。這就構成一個(gè)中游KG的基礎架構了。如下圖3所示。
圖3 中游KG的架構
茲以Python 代碼( 片段) 表示如下:
現在已經(jīng)在Python 代碼里定義好了一個(gè)異構圖(Heterograph)。接著(zhù),就能拿它(異構圖)來(lái)訓練GNN模型。例如,其完整代碼執行時(shí),訓練GIN模型100回合,輸出如下:
于是,訓練好了中游KG模型,并且生成各節點(diǎn)的嵌入表示,儲存于mid_ingredient_embeddings.csv檔案里。
4 下游任務(wù)KG &應用開(kāi)發(fā)
這是最貼近消費者的下游應用層,可以將顧客數據(如偏好、點(diǎn)餐行為等)建成下游KG,結合中游KG模型學(xué)得的食材嵌入(Embedding),透過(guò)GNN預測出每位顧客對食材的潛在偏好。我們更導入傳統策略如K-means分群、和反事實(shí)連結(Counterfactual link)推薦,成為一個(gè)商業(yè)性的AI推薦引擎。例如,可以建立一個(gè)下游KG,如下圖4所示:
茲以Python代碼( 片段) 表示如下:
例如,其完整代碼執行時(shí),輸出如下:
這先讀取中游KG 的節點(diǎn)嵌入,作為下游KG 的初期節點(diǎn)特征。接著(zhù),對全部客人(customer)節點(diǎn)特征,進(jìn)行K-means分群(Clustering),然后探索出反事實(shí)連結,而輸出推薦內容。
5 結語(yǔ)
上游大KG設計思維是,選擇具可信度的領(lǐng)域知識來(lái)源(如FlavorGraph、專(zhuān)業(yè)食材文獻),著(zhù)重于「可轉為語(yǔ)意向量」的屬性建構,例如分子、味覺(jué)分類(lèi)、功能卷標。其設計時(shí)應盡量通用與可重復使用,讓其他任務(wù)也能延伸引用。亦即,整合了化學(xué)組成、風(fēng)味關(guān)聯(lián),建立食材之間的語(yǔ)意知識網(wǎng)絡(luò )。
中游領(lǐng)域KG設計思維是,以「任務(wù)情境」為驅動(dòng)(例如:發(fā)酵菜單、飲食場(chǎng)景),其圖結構可簡(jiǎn)單(如共現)但要具有代表性與數據源依據,可以從同一菜單中出現的食材建立雙邊共現關(guān)系。亦即,捕捉到「能共煮」、「風(fēng)味類(lèi)似」等潛在語(yǔ)意,為后續推薦提供基礎。
下游應用任務(wù)KG設計思維是,聚焦在人與物的關(guān)系:顧客?食材,建立異質(zhì)圖。加入偏好分數、食用紀錄、健康因子等個(gè)人化屬性。并融合GNN score(語(yǔ)意內積)、K-Means(分群)與群體差異(CF_link)做出推薦。例如,在<食譜?食材> 的包含邊,添加一個(gè)邊屬性(attribute):烹煮順序。如下圖5 所示:
圖5 更多下游應用KG
在這下游KG 模型里,將客人、食材與食譜建構成異質(zhì)圖,導入GNN與 KMeans推薦模型,一旦找到CF_links,就能推薦創(chuàng )新食譜給客人,也能提供創(chuàng )新制程(SOP)給廚師(可能是機器人),不亦美哉。
(本文來(lái)源于《EEPW》202504)
評論