新聞中心

EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 如何建立KG節(jié)點(diǎn)間的重要連結(jié)

如何建立KG節(jié)點(diǎn)間的重要連結(jié)

作者:高煥堂 時間:2025-08-20 來源:EEPW 收藏

1   前言

在建構(gòu)KG(知識圖)的初期,通常會先從有關(guān)的數(shù)據(jù)集中,擷取候選實(shí)體(Entity),并由LLM 萃取語意關(guān)系并建構(gòu)初步三元組(Triple)圖譜,大幅提升初建KG的在地性與語義密度。然后,進(jìn)行與有關(guān)的專家智慧進(jìn)行融合,確認(rèn)核心的節(jié)點(diǎn),以及核心節(jié)點(diǎn)之間的重要連結(jié),又稱為:邊(Edge)。例如,在上一期里所提到的基因醫(yī)學(xué)KG:

1755667178967587.png

圖1

一旦確認(rèn)核心實(shí)體(即節(jié)點(diǎn))了,就需要思考如何建構(gòu)這些節(jié)點(diǎn)之間的重要連結(jié)(即邊)。一般而言,其中的可能連結(jié)是很多樣化的,所以常常需要依據(jù)應(yīng)用情境和目標(biāo)來挑選,并建立于KG里,成為KG的重要邊(Edge)。

本文就已大家比較熟悉的餐酒搭配(food-wine pairing)為例,其典型的KG 架構(gòu)如下:

1755667234486940.png

圖2

茲以葡萄酒為例,葡萄酒與食物(餐)的搭配方法是很多樣化的,其中最典型的是:協(xié)調(diào)搭配(Congruent pairing)。在協(xié)調(diào)搭配中,所選食物和葡萄酒會有多種相同的化合物或風(fēng)味。例如,甜酒搭配甜食,帶有黃油余味的紅葡萄酒搭配黃油意面。在打造協(xié)調(diào)搭配時,重要的一點(diǎn)是確保葡萄酒的風(fēng)味不會被食物的風(fēng)味所掩蓋。

協(xié)調(diào)搭配的好處在于,葡萄酒和食物能夠相互增強(qiáng),并互相補(bǔ)充。想要打造協(xié)調(diào)搭配,紅酒是理想之選。紅酒的香氣和風(fēng)味從櫻桃味到煙熏味,種類繁多,易于與類似的食物搭配。喝一杯酒體飽滿的西拉葡萄酒,它會具有與您最喜歡的一些烤肉相似的風(fēng)味,使其成為絕佳的搭配。

于是,就來說明如何把這種協(xié)調(diào)搭配關(guān)聯(lián),納入KG里,建構(gòu)成為KG的核心邊。

2   以餐酒搭配(food-wine pairing)為例

一般而言,濃郁的食物搭配濃郁的酒,清淡的食物搭配清淡的酒。高酸度的食物搭配高酸度的酒,例如搭配色拉、醋漬料理等。甜味食物搭配甜度至少和其相同的酒,例如搭配甜點(diǎn)或甜酒。避免單寧較重的紅酒搭配油脂較多的魚類,可以選擇白酒或氣泡酒。適量鹽分有助于軟化紅酒的單寧,使口感更佳。高酸度的白酒可以搭配油炸食物或咸味料理。如下列的基本原則:

●   葡萄酒的酸度(Acidity)與油膩和甜食完美搭配。

●   苦味(Bitter)葡萄酒可以與甜食平衡。

●   甜味(Sweet)葡萄酒或食物需要少量酸度。

●   酒精可以用來中和油膩食物或平衡甜食。

收集數(shù)據(jù)

于是,就從https://github.com/Rashik333網(wǎng)頁下載兩個CSV數(shù)據(jù)檔案:food_data.csv和wine_data.csv。其中,food_data.csv 的內(nèi)涵是5 種食物的風(fēng)味特征。如下:

1755667397260144.png

而wine_data.csv的內(nèi)容則是19種酒品的風(fēng)味特征:

1755667429880686.png

有了這兩個數(shù)據(jù)表格,就能找出食物與酒之關(guān)聯(lián),來建立KG(圖2)的節(jié)點(diǎn)重要邊了。

計(jì)算相似度:建立food-wine 節(jié)點(diǎn)間的邊由于協(xié)調(diào)搭配(Congruent pairing)是指所選食物和葡萄酒會有多種相同的化合物或風(fēng)味。亦即,食物和葡萄酒在某些關(guān)鍵風(fēng)味特性(如甜、酸、咸、油脂、苦味等)上有明顯的相似性。于是,就使用Python 撰寫簡單的程序,來計(jì)算出食物與酒之間的余旋相似度(Cosine Similarity)矩陣。余弦相似度是基于兩個向量的夾角來度量的。其計(jì)算兩個向量之間夾角的余弦值,來衡量它們之間的相似度。然后,從這個相似度矩陣,Python 程序就能找出食物與酒之間的最相似的配對,并輸出如下:

1755667497614489.png

這是從food和wine的風(fēng)味(酸、甜、苦、咸)來找出相似性最高的配對。例如,第2 和第3 項(xiàng)食物的風(fēng)味都與第0項(xiàng)酒品的風(fēng)味是很相近(似)的?;谶@樣的配對關(guān)系(關(guān)聯(lián)),就能建立KG里的食物(food)與酒(wine)節(jié)點(diǎn)間的連接邊了。

納入客人口味偏好:建立user-wine節(jié)點(diǎn)間的邊

接著,就來把人的食物氣味偏好納入KG 里。例如,有一位客人,名叫:”Mike”。在這5 項(xiàng)食物之中,他最喜歡的是:檸檬(Lemon)和鮭魚(Salmon)。就可以從這兩種食物的氣味值,來計(jì)算出平均值,如下:

1755667544262543.png

計(jì)算相似度:建立user-wine節(jié)點(diǎn)間的邊

剛才已經(jīng)計(jì)算出客人對食物氣味的偏好度了。于是,就使用Python 撰寫簡單的程序,來計(jì)算出Mike 偏好食物與酒之間的余旋相似度(Cosine Similarity)矩陣。然后,從這個相似度矩陣,Python 程序就能找出與Mike 偏好食物風(fēng)味相似度最高的前3 項(xiàng)(Top-3)酒品,并輸出如下:

1755667576848840.png

基于這樣的配對關(guān)系(關(guān)聯(lián)),就能建立KG 里的客人(user)與酒(wine)節(jié)點(diǎn)間的連接邊了。于是,為KG增添建構(gòu)了重要的邊,如下圖:

1755667605563629.png

圖3

這個KG含有4種節(jié)點(diǎn)型態(tài):food、wine、flavor 和user節(jié)點(diǎn)型態(tài)。它也含有3 種邊型態(tài):< 偏好>、< 協(xié)調(diào)搭配> 和< 協(xié)調(diào)偏好>。

3   結(jié)語

依循本文所示范的方法和技巧,可以繼續(xù)增添各種有意義的邊。例如,上述的餐酒KG 含有的節(jié)點(diǎn)型態(tài)(Node type) 有四:food、wine、flavor 和user。目前所含有的基本氣味有四:酸(Acidity)、甜(Sweet)、苦(Bitter)、咸(Salty)。于是,上圖里的KG 就可以增添< 具有風(fēng)味> 新邊來表達(dá)這項(xiàng)< 含有> 關(guān)聯(lián),通常這是有意義的邊。

此外,這KG 里還可以增添< 對比偏好> 新邊。其讓這KG 的user-wine 間具有兩種邊:

●   <協(xié)調(diào)(congruent) 偏好> 邊。例如,Mike顯然喜歡酸味的食物,就配對出較具酸味的葡萄酒。

●   <對比(contrasting)偏好>邊。例如,Mike顯然喜歡酸味的食物,就配對出較< 不具> 酸味的葡萄酒。

于是,這KG 就日漸成長壯大了。如下圖-4:

1755667671466005.png

圖3

以上說明了,KG會持續(xù)更新、日益茁壯。當(dāng)我們進(jìn)一步拿KG 來訓(xùn)練GNN模型時,GNN也能探索出反事實(shí)連結(jié)(Counterfactual Link),來日漸充實(shí)、優(yōu)化KG,讓KG 生生不息、無盡繁榮。

(本文來源于《EEPW》


關(guān)鍵詞: 202508 KG節(jié)點(diǎn)

評論


技術(shù)專區(qū)

關(guān)閉