如何建立中游领域性KG(知识图)

内容摘要本文引用地址:1   复习:上游行业性KG在前一期《如何善用通用性行业KG》文章里,曾举例说明了基于FlavorGraph 通用性上游KG,来建立下游任务型KG。其中,通用性行业KG(如Flavor Graph)蕴含丰富的行业共享性知识,而

本文引用地址:

1   复习:上游行业性KG

在前一期《如何善用通用性行业KG》文章里,曾举例说明了基于FlavorGraph 通用性上游KG,来建立下游任务型KG。其中,通用性行业KG(如Flavor Graph)蕴含丰富的行业共享性知识,而企业则针对小领域的特殊需求(如拉面的烹饪过程、食材搭配、口味调配等)。这种模式是一种知识驱动的AI 迁移学习,其建立的企业KG(如FoodKG)更具针对性,能加速AI针对企业目标的应用。其架構如下图1所示。

图1 行业KG支持下游任务

其中的核心任务是:将行业FlavorGraph的节点嵌入(node embedding)作为企业FoodKG + GCN的初始特征(initial features),让外部的行业性知识来增强本地图谱的表现。初始特征来自于成熟的知识图谱,代表了节点间的隐含语义与结构关系。这种初始化能显着提升模型在各行业的学习能力和性能。

2   三层KG架构設計

从上图-1里,可以看到其为两层KG架构。其中,下游任务KG直接使用上游任务KG,两者常常会出现过度相依,降低了灵活性。此时,可以考虑建立三层KG架构,其添加了中间层KG,带来上游与下游KG之间的松耦合(loose coupling)关系,创造了整体架构的灵活性。兹说明各层KG 架构设计要点,如下:

第一层:上游通用性行业大KG

设计要点:利用开源的FlavorGraph行业大KG+GNN。建立「食材↔分子成分↔味觉特性」的三重组关系,表达食材与其主要香气化学物的对应关系。

第二层:中游特定领域KG

设计要点:建构以特定领域的「共现」关系,例如在同一份发酵菜单中出现的食材群。自定义发酵食谱共现图,使用共现关联矩阵或DGL异质图作为模型训练素材。使用GraphSAGE/GAT/GCN训练contextual食材嵌入,让语意更贴近文化与地方搭配习惯。

第三层:下游任务型应用KG

设计要点:聚焦在人与物的关系:顾客↔食材,建立异质图。加入偏好分数、食用纪录、健康因子等个人化属性。融合GNN score(语意内积)与群体差异(CF_ link)做出创新食谱、食材推荐。

3   承先启后:设计中游领域性KG

A.认识上游KG的既有架构

首先观察通用性FlavorGraph 知识图里,内含两种节点(Node):食材(Ingredient)和风味化合物(Flavor compound)。也含有两种边(Edge):ingr-ingr共现边和ingr-fcomp成分边。如下图2 所示:

图2 上游KG的架构

这两种边协助FlavorGraph架构起跨食材与化合物的知识网络。其涵意如下:

●   ingr-ingr共现边:即 食材- 食材 之共现关系

●   含义:这条边代表两种食材之间的风味分子相似性(Flavor Compound Similarity)。

●   使用场景:当两种食材具有类似的化学风味分子(Flavor compounds),这FlavorGraph就会建立一条ingr-i表示它们可能能够很好地搭配(互补)。

●   应用例子:洋葱与大蒜可能具有共同的硫化物化合物,因此在许多料理中常一起使用。

●   ingr-fcomp成分边:即 食材- 风味化合物 之包含关系

●   含义:这条边表示某个食材中实际包含某个特定的风味化合物(或称:风味分子)。

●   使用场景:建立从食材节点(Ingredient node)指向风味化合物节点(Flavor compound node)的连结,描绘食材的化学组成。

●   应用例子:香菜(Cilantro)会连结到decanal 或linalool这类风味化合物。

以表格说明如下:

以Python 代码(片段)表示如下:

data_dict = {

( ingredient , cooccur , ingredient ): (torch.

tensor(src_cooccur), torch.tensor(dst_cooccur)),

( ingredient , chem_sim , ingredient ): (torch.

tensor(src_chem), torch.tensor(dst_chem)),

}

g = dgl.heterograph(data_dict, num_nodes_

dict={ ingredient : num_nodes})

这种通用性行业KG蕴含了丰富的行业共享性知识。

B.中游KG的架構設計

一旦充分熟悉了上游大KG 的架构了,就能承先启后、继往开来,设计出一个中游领域性KG了。例如,基于FlavorGraph 的预训练嵌入(Embedding)来建立发酵食品的领域性(中游) 食谱↔食材KG ,它将具备语意丰富的风味知识结构。从上图-2里,可以观察到,FlavorGraph的核心节点是:食材,而其 食材↔食材 边是分子层级风味成分的相似性之关联,又称为:下层(分子)的共现性。

接着,仍以食材为中心,添加上层视角的观察,会发现到:上层(食谱)的共现性。亦即,两种食材出现于同一食谱的共现性。这就构成一个中游KG的基础架构了。如下图3所示。

图3 中游KG的架构

兹以Python 代码( 片段) 表示如下:

# Prepare graph data

graph_data = {

( ingredient , cooccur , ingredient ): (torch.

tensor(co_src), torch.tensor(co_dst)),

( ingredient , chem_similar , ingredient ):

(torch.tensor(chem_src), torch.tensor(chem_dst)),

}

# Build heterograph

g = dgl.heterograph(graph_data)

现在已经在Python 代码里定义好了一个异构图(Heterograph)。接着,就能拿它(异构图)来训练GNN模型。例如,其完整代码执行时,训练GIN模型100回合,输出如下:

于是,训练好了中游KG模型,并且生成各节点的嵌入表示,储存于mid_ingredient_embeddings.csv档案里。

4   下游任务KG 应用开发

这是最贴近消费者的下游应用层,可以将顾客数据(如偏好、点餐行为等)建成下游KG,结合中游KG模型学得的食材嵌入(Embedding),透过GNN预测出每位顾客对食材的潜在偏好。我们更导入传统策略如K-means分群、和反事实连结(Counterfactual link)推荐,成为一个商业性的AI推荐引擎。例如,可以建立一个下游KG,如下图4所示:

兹以Python代码( 片段) 表示如下:

# === 建构下游KG ===

g = dgl.heterograph({

( customer , prefers , ingredient ): (torch.tensor(pref_src), torch.tensor(pref_dst)),})

# === 载入中游食材嵌入 ===

emb_df = pd.read_csv( mid_ingredient_embeddings.csv , index_col=0)name_to_emb = { name: torch.tensor(row.values, dtype=torch.float32) for name, row in emb_df.iterrows()}

# 食材節點嵌入來自中游KG

torch.manual_seed(10)

ingredient_feats = torch.stack([

name_to_emb[name] if name in name_to_emb else torch.randn(16) for name in ingredients])

g.nodes[ ingredient ].data[ feat ] = ingredient_feats

例如,其完整代码执行时,输出如下:

这先读取中游KG 的节点嵌入,作为下游KG 的初期节点特征。接着,对全部客人(customer)节点特征,进行K-means分群(Clustering),然后探索出反事实连结,而输出推荐内容。

5   结语

上游大KG设计思维是,选择具可信度的领域知识来源(如FlavorGraph、专业食材文献),着重于「可转为语意向量」的属性建构,例如分子、味觉分类、功能卷标。其设计时应尽量通用与可重复使用,让其他任务也能延伸引用。亦即,整合了化学组成、风味关联,建立食材之间的语意知识网络。

中游领域KG设计思维是,以「任务情境」为驱动(例如:发酵菜单、饮食场景),其图结构可简单(如共现)但要具有代表性与数据源依据,可以从同一菜单中出现的食材建立双边共现关系。亦即,捕捉到「能共煮」、「风味类似」等潜在语意,为后续推荐提供基础。下游应用任务KG设计思维是,聚焦在人与物的关系:顾客↔食材,建立异质图。加入偏好分数、食用纪录、健康因子等个人化属性。并融合GNN score(语意内积)、K-Means(分群)与群体差异(CF_link)做出推荐。例如,在 食谱↔食材 的包含边,添加一个边属性(attribute):烹煮顺序。如下图5 所示:

图5 更多下游应用KG

在这下游KG 模型里,将客人、食材与食谱建构成异质图,导入GNN与 KMeans推荐模型,一旦找到CF_links,就能推荐创新食谱给客人,也能提供创新制程(SOP)给厨师(可能是机器人),不亦美哉。

 
举报 收藏 打赏 评论 0
24小时热闻
今日推荐
浙ICP备19001410号-1