如何建立KG节点间的重要连结

智能计算   作者:高焕堂 时间:2025-08-20来源:EEPW

1   前言

在建构KG(知识图)的初期,通常会先从有关的数据集中,撷取候选实体(Entity),并由LLM 萃取语意关系并建构初步三元组(Triple)图谱,大幅提升初建KG的在地性与语义密度。然后,进行与有关的专家智慧进行融合,确认核心的节点,以及核心节点之间的重要连结,又称为:边(Edge)。例如,在上一期里所提到的基因医学KG:

1755667178967587.png

图1

一旦确认核心实体(即节点)了,就需要思考如何建构这些节点之间的重要连结(即边)。一般而言,其中的可能连结是很多样化的,所以常常需要依据应用情境和目标来挑选,并建立于KG里,成为KG的重要边(Edge)。

本文就已大家比较熟悉的餐酒搭配(food-wine pairing)为例,其典型的KG 架构如下:

1755667234486940.png

图2

兹以葡萄酒为例,葡萄酒与食物(餐)的搭配方法是很多样化的,其中最典型的是:协调搭配(Congruent pairing)。在协调搭配中,所选食物和葡萄酒会有多种相同的化合物或风味。例如,甜酒搭配甜食,带有黄油余味的红葡萄酒搭配黄油意面。在打造协调搭配时,重要的一点是确保葡萄酒的风味不会被食物的风味所掩盖。

协调搭配的好处在于,葡萄酒和食物能够相互增强,并互相补充。想要打造协调搭配,红酒是理想之选。红酒的香气和风味从樱桃味到烟熏味,种类繁多,易于与类似的食物搭配。喝一杯酒体饱满的西拉葡萄酒,它会具有与您最喜欢的一些烤肉相似的风味,使其成为绝佳的搭配。

于是,就来说明如何把这种协调搭配关联,纳入KG里,建构成为KG的核心边。

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

一般而言,浓郁的食物搭配浓郁的酒,清淡的食物搭配清淡的酒。高酸度的食物搭配高酸度的酒,例如搭配色拉、醋渍料理等。甜味食物搭配甜度至少和其相同的酒,例如搭配甜点或甜酒。避免单宁较重的红酒搭配油脂较多的鱼类,可以选择白酒或气泡酒。适量盐分有助于软化红酒的单宁,使口感更佳。高酸度的白酒可以搭配油炸食物或咸味料理。如下列的基本原则:

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

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

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

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

收集数据

于是,就从https://github.com/Rashik333网页下载两个CSV数据档案:food_data.csv和wine_data.csv。其中,food_data.csv 的内涵是5 种食物的风味特征。如下:

1755667397260144.png

而wine_data.csv的内容则是19种酒品的风味特征:

1755667429880686.png

有了这两个数据表格,就能找出食物与酒之关联,来建立KG(图2)的节点重要边了。

计算相似度:建立food-wine 节点间的边由于协调搭配(Congruent pairing)是指所选食物和葡萄酒会有多种相同的化合物或风味。亦即,食物和葡萄酒在某些关键风味特性(如甜、酸、咸、油脂、苦味等)上有明显的相似性。于是,就使用Python 撰写简单的程序,来计算出食物与酒之间的余旋相似度(Cosine Similarity)矩阵。余弦相似度是基于两个向量的夹角来度量的。其计算两个向量之间夹角的余弦值,来衡量它们之间的相似度。然后,从这个相似度矩阵,Python 程序就能找出食物与酒之间的最相似的配对,并输出如下:

1755667497614489.png

这是从food和wine的风味(酸、甜、苦、咸)来找出相似性最高的配对。例如,第2 和第3 项食物的风味都与第0项酒品的风味是很相近(似)的。基于这样的配对关系(关联),就能建立KG里的食物(food)与酒(wine)节点间的连接边了。

纳入客人口味偏好:建立user-wine节点间的边

接着,就来把人的食物气味偏好纳入KG 里。例如,有一位客人,名叫:”Mike”。在这5 项食物之中,他最喜欢的是:柠檬(Lemon)和鲑鱼(Salmon)。就可以从这两种食物的气味值,来计算出平均值,如下:

1755667544262543.png

计算相似度:建立user-wine节点间的边

剛才已經計算出客人對食物氣味的偏好度了。于是,就使用Python 撰写简单的程序,来计算出Mike 偏好食物与酒之间的余旋相似度(Cosine Similarity)矩阵。然后,从这个相似度矩阵,Python 程序就能找出與Mike 偏好食物風味相似度最高的前3 項(Top-3)酒品,并输出如下:

1755667576848840.png

基于这样的配对关系(关联),就能建立KG 里的客人(user)与酒(wine)节点间的连接边了。于是,为KG增添建构了重要的边,如下图:

1755667605563629.png

图3

这个KG含有4种节点型态:food、wine、flavor 和user节点型态。它也含有3 种边型态:< 偏好>、< 协调搭配> 和< 协调偏好>。

3   结语

依循本文所示范的方法和技巧,可以继续增添各种有意义的边。例如,上述的餐酒KG 含有的节点型态(Node type) 有四:food、wine、flavor 和user。目前所含有的基本气味有四:酸(Acidity)、甜(Sweet)、苦(Bitter)、咸(Salty)。于是,上图里的KG 就可以增添< 具有风味> 新边来表达这项< 含有> 关联,通常这是有意义的边。

此外,这KG 里还可以增添< 对比偏好> 新边。其让这KG 的user-wine 间具有两种边:

●   <协调(congruent) 偏好> 边。例如,Mike显然喜欢酸味的食物,就配对出较具酸味的葡萄酒。

●   <对比(contrasting)偏好>边。例如,Mike显然喜欢酸味的食物,就配对出较< 不具> 酸味的葡萄酒。

于是,这KG 就日渐成长壮大了。如下图-4:

1755667671466005.png

图3

以上说明了,KG会持续更新、日益茁壮。当我们进一步拿KG 来训练GNN模型时,GNN也能探索出反事实连结(Counterfactual Link),来日渐充实、优化KG,让KG 生生不息、无尽繁荣。

(本文来源于《EEPW》202508)

关键词: 202508 KG节点

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版