FoodKG- A Semantics-Driven Knowledge Graph for Food Recommendation
本文由学者史蒂文·豪斯曼、奥沙尼·塞尼维拉特、于晨等联合发表
网络上食谱和其他食品信息呈现出快速增长的趋势,这为饮食相关知识的知识图谱发展提供了进一步的机会。目前已有多个与食物相关的本体论构建,但其种类单一且相互之间缺乏联系。该知识图谱主要服务于关注健康饮食的人群,在其范围内囊括每天的食物搭配方案、菜谱及其来源信息。我们采用基于语义理解的技术进行数据提取、转换与加载流程,在此基础上通过整合本体论框架与社区专用术语来构建系统化的食品知识体系,并在此基础上实现资源间的连接功能。具体而言,在资源链接过程中我们采用计算数据集间的词法相似度与字符匹配度来进行非精确匹配连接。
当前现状:
推荐的膳食指南应用的一个主要障碍是个性化指南。该应用需要用户计算热量、脂肪、盐和糖的摄入量,并建议他们选择富含营养的食物。为了克服这一挑战的主要方法是开发智能化的食物推荐系统。尽管食物推荐对人们的日常生活至关重要,在研究方面仍存在明显不足目前的研究仅限于语义学领域
数据获取
- 无效数据—部分文本数据包含在基于RDF的图谱中作为非法字符存在,必须进行转义处理,这可能影响后续的数据处理效率;
- 数据不完整—缺少原料或提供非标准计量单位描述可能导致营养成分的数据出现偏差;
- 模糊实体—许多成分无法明确对应到特定食品项目;
- 额外信息—成分有时会涉及复杂的单位转换或冗余的信息描述
主要数据源: 菜谱、配料营养成分及组织配餐所涉食品本体的相关信息, 通过Ontofox从食品本体中提取出相关的术语与公理。对于菜谱这一概念, 在线食谱网站提供了丰富的资源让用户进行浏览和分享。营养成分的数据则来源于美国农业部提供的国家营养标准参考数据库
构建图谱需整合属性与实体资源,并考虑各资源间的关系及其元数据注释。整体架构主要由以下几个核心模块构成:
- 菜谱及其主要食材
- 食物营养价值信息
- 食品知识领域
- 各层次概念间的关联性信息
- 菜谱:每个食谱都描述一道菜所需配料,具有唯一标识符,包含名称和一组成分。每种成分都有其名称、单位和数量。通常删除第一个逗号之后的所有文本,因为它通常描述了该成分的其他性质。从字符的开头删除并按数量保存。将单元列表与字符中的第一个单词进行比较;如果匹配,则将其删除并作为单元存储。其余文本用自然语言工具包进行标记,不是描述颜色的形容词被消除。动词和副词也被删除,连接词后面的文本被删除。结果文本作为名称保存。
- 营养:根据食谱,建立一个食物及其配料的联系网。使用语义数据字典,从非三重数据源生成RDF三元组,将表格数据集成到图谱。将数据转换为图谱中的概念。根据数据,通过语义关系定义结果知识图谱的形状。
图谱的扩展 在构建过程中处于第二个阶段的是链接环节 利用实体解析技术实现各种概念之间的自动连接
- 实体解析:在食谱、营养和食物等领域间使用的名称通常是这些领域间的最明显共同标识符。
- 实体选择:限定概念域的方式能够最大程度地提升性能的准确性,并且这种限定方式取决于所比较的数据集的具体情况。
通过RDF纳米化规范对图谱中的每个断言提供明确的来源标识,并利用关联数据实现知识表达。该方法采用四个命名图来组织相关知识:
(i) 断言图不仅包含所提出的断言内容,并且对于食谱这一特定领域而言还包含了标题、标签和配料等细节信息;这些成分由其名称、单位和数量来进行具体描述。
(ii) 源头图记录了断言的来源信息;
(iii) 出版物信息图明确了创建者的信息;
(iv) 头图整合了前三个模块的信息,并在此基础上指出了如何找到这三个组成部分之间的关系。
食品图谱的应用
利用SPARQL技术实现问题解答:每一个相关的问题可以通过调用SPARQL查询底层本体来实现这一功能。由于食谱与配料等关系的信息在本体中进行了直接编码,具体实例可参考原论文中的相关内容。
在处理基于自然语言的问题时,在没有相关食材营养与食谱的数据集下
问答系统由问题类型分类器、主题实体预测器和KBQA模型三部分构成。通过问题类型分类器能够识别出当前场景下的简单问题类型。接着,主题实体预测器被用来识别问题中的主题实体,并将其与知识图谱关联起来。最后阶段,KBQA模型将从与相关主题实体相关的知识子图中提取答案。
在实验中对KBQA模型进行了评估并与其现有方法进行了对比
