0. 写在前面
菜品是外卖交易过程的核心要素,对菜品的理解也是实现外卖供需匹配的重点。本期推送,我们将通过三篇文章系统地介绍了美团外卖美食知识图谱的构建和应用。第一篇文章会介绍外卖知识图谱的体系全貌,包括菜品类目、标准菜品、美食基础属性(食材、口味等)和美食业务主题属性。同时外卖的菜品属于非标品。第二篇,我们将重点介绍外卖菜品标准化建设思路、技术方案和业务应用。由于外卖的业务特点是搭配成单,所以在第三篇我们会针对性地介绍外卖套餐搭配技术的迭代以及应用实践。希望对从事相关工作的同学能够带来一些启发或者帮助。
本文系外卖美食知识图谱系列的第一篇文章,这篇文章系统地介绍了美团外卖美食知识图谱的标签体系结构,包括菜品类目标签、标准菜品名、美食基础属性(食材、口味、菜系等)和美食业务主题属性(商家招牌、类目经典等)。在技术层面,举例对标签体系的具体构建方法进行介绍,例如基于BERT预训练的分类模型。在应用方面,介绍了美食知识图谱在美团外卖业务的具体应用,包括支撑套餐搭配的菜品表征、提升搜索和商家推荐等业务的用户体验。
1. 背景
知识图谱,旨在描述真实世界中存在的各种实体和实体之间的关系。在美团外卖业务中,美食商品是美团向用户提供服务的基础,美食知识图谱的建设,可以帮助我们向用户提供更加准确、更加丰富、更加个性化的美食服务。另外,美团外卖业务向用户提供“到家”吃饭的服务,到店餐饮业务则向用户提供“到店”吃饭的服务,而外卖和到店的商家和菜品有相当程度的重合,菜品数据的对齐,为我们进行线上(外卖场景)线下(到店场景)数据的对比分析也提供了一个很好的“抓手”。
本文介绍了外卖美食知识图谱的建设,基于对外卖业务数据(外卖交易数据、商家录入的商品标签信息、专业描述PGC、用户评论UGC、商品图片等)和站外数据(百科、菜谱等)的挖掘和分析,形成了针对外卖美食的分类体系(美食类目标签)和标准化体系(标准菜品名标签),并进一步针对不同类型的美食商品,构建包含口味、食材等众多美食基础属性体系。同时,依托美团外卖的业务特性,构建美食商品在外卖业务中涉及的主题属性体系,例如商家招牌、商家主营、类目经典等。目前,外卖美食知识图谱的标签结构如下图1所示:
外卖美食知识图谱包含以下四种维度的标签(以“宫保鸡丁”为例,如下图2所示):
- 类目标签:包括主食、小吃、菜品等类目,并在每个类目下,形成了层级化的三百多种细分类目。例如“宫保鸡丁”的类目是“菜品”。类目标签是美食商品的基础分类信息,根据类目的不同,美食商品的基础属性也不同。例如“菜品”类目存在“荤素”、“菜系”之分,而“酒水饮品”类目则没有这种属性标签。
- 标准菜品名标签:标准菜品名标签主要为标准商品信息,例如“宫保鸡丁(招牌必点)”的标准商品是“宫保鸡丁”。因商家输入商品的多样性,标准菜标签的建设,实现了相同美食的聚合。
- 基础属性:根据美食商品的类目不同,构建包括美食的食材、菜系、口味、制作方法、荤素等基础属性。例如“宫保鸡丁”的菜系是“川菜”,食材有“鸡胸”和“花生”,荤素标签是“荤”。基础属性的挖掘对我们理解商品起到关键作用,在商品的筛选、展示、商品表征等业务需求方面,提供基本的数据特征。
- 主题属性:主题属性主要体现美食的业务主题,包括美食在外卖的交易行为、美食在商家的定位、美食在用户反馈中的好评度等。例如某商家的“宫保鸡丁(招牌必点)”是该商家的“招牌菜”。
菜品对齐,涉及到菜品数据,来自外卖在线菜品、点评推荐菜品、美团商家套餐等。
2. 需求及挑战
目前,外卖美食知识图谱已经应用于美团外卖的多个场景,例如推荐、搜索、套餐搭配、运营分析等。业务的深入发展,对美食知识图谱的建设和迭代也提出了更加复杂的要求,例如:
- 美食商品越来越多样,相应的美食知识图谱则需要越来越精细和准确。例如美食知识图谱的类目标签从零开始,建设了包含一百多种类目的类目标签体系。但随着业务发展,部分类目存在明显的可细化空间。
- 图谱标签的挖掘,偏向于静态标签的挖掘,对于相同图谱标签下的美食,缺少业务相关的主题属性描述。例如同样包含“花生”的“酒鬼花生”,相比“宫保鸡丁”,更能代表“花生”相关的美食。
- 外卖美食知识图谱主要描述外卖美食商品,而同一商家的美食商品,也可能会出现在该店的线下收银等业务中。通过对齐不同业务的美食商品,可以在美食实体层面,完善美食知识图谱对商家美食的描述,从而指导商品和商家运营。
为满足业务需求,我们对类目标签和基础属性进行了迭代和优化;同时,构建了业务相关的主题属性。另外,我们将外卖菜品和到餐菜品进行了实体对齐。其中,挖掘主题属性,即挖掘业务相关的图谱知识,是一个需要综合考虑外卖业务和商品本身属性的复杂过程。外卖菜品和到餐菜品的对齐,则需要综合考虑菜品多样性表述和菜品主体归一。
外卖美食知识图谱的迭代难点主要体现在以下几点:
- 业务相关的主题属性挖掘,并没有现成的体系可以参考,在构建过程中,涉及大量的分析和体系设计工作。
- 主题属性的挖掘,最重要的是需要从用户的需求出发,分析用户对商品的需求点,并将其反映在商品的图谱层面,形成相应的主题属性标签。同时,商家的商品信息是一个动态变化的过程,例如销量、供给、商品标签等,前后两天的信息可能就会完全不同。因此业务性主题属性的挖掘,一方面需要建设相对完善的体系,另一方面也需要适配业务数据的动态变化过程,也就在图谱挖掘和需求匹配上带来了极大的挑战。
- 商家录入菜品时,对菜品存在多样性表述,例如同一道菜在分量、口味、食材等方面存在的差异。菜品对齐时,则需要对这些多样性表述进行平衡,例如是否忽略分量因素等。但目前并没有现成的对齐标准可以参考。
3. 外卖美食知识图谱的迭代
因篇幅受限,本文主要对其中菜品类目,不同类目、口味、食材、荤素、做法下的经典美食,健康餐等图谱标签的挖掘进行介绍。其中,在图谱标签挖掘中涉及到的数据来源和采用的技术,大致如下表所示:
标签 | 技术 |
---|---|
菜品类目 | BERT分类模型 |
不同类目、口味、食材、荤素、做法下的经典美食 | 数据统计、实体识别、关系识别、产品定义(综合考虑销量和供给量) |
健康餐 | 分类模型+产品定义(符合一定食材、做法、功效的商品) |
3.1 菜品类目
菜品类目标签的挖掘,主要解决美食菜品是什么类别的问题。实现这一目标的挑战有两方面:首先是类目体系如何建立,其次是如何将商品链接到相应的类目节点。在最开始的体系构建时,我们从美食商品的特点以及业务的具体需求出发,从零开始建立起包含一百多种类别的层次化类别体系,部分实例如图3(左)所示。同时,构建基于CNN+CRF的分类模型,对美食商品进行类目分类,如图4(左)所示。
然而,随着业务的发展,已有分类目已经无法支持现有业务的需求。例如:原先的类目体系,对热菜描述不够详细,譬如没有区分热菜的做法等。为此,我们与外卖的供给规划部合作,将类目体系扩充到细分的三百多种类目标签,划分更加详细,覆盖也更加全面,部分实例如图3(右)所示。
类目的细分,要求模型更加精确。在进行类目识别时,可用的数据包括菜品名、商家店内侧边栏分类名称、商家名等。考虑到可使用的信息大多为文本信息,并且,商家录入的文本并没有一定的规范,菜品名也多种多样,为提高模型精度,我们将原先的CNN+CRF的分类模型进行了升级,采用模型容量更大的BERT预训练+Fine-Tuning的模型。模型结构如下图4(右)所示。
3.2 不同类目、口味、食材、荤素、做法下的经典美食标签
我们在建设主题属性时,首先在基础属性标签维度,综合考虑商品的销量和供给情况,对菜品进行选优。例如类目下的经典美食等。但在建设过程中,我们发现菜系的经典美食识别,假如依据销量和供给进行识别,则识别结果倾向于菜系下的“家常菜”,因此将经典菜系美食进行单独识别。
类目经典美食等指的是销量较高、供给量丰富的类目美食商品,例如主食经典美食、小吃经典美食。口味、食材、做法经典美食标签等也是相似的定义。
在建设过程中,我们发现,假如直接在商品维度进行识别,因为商品的更新频率相对较高,对新录入的暂时没有销量或者暂时销量低的美食商品不友好,销量水平需要考虑在线时间的影响。因此我们使用标准菜品进行类目、口味经典等的识别,并通过标准菜品,泛化到具体的美食商品上。
其中,“标准菜品”借用其它类电商业务中的“标品”概念,虽然绝大部分菜品的生产都不是标准化的过程,但是这里我们只关注主要的共性部分,忽略次要的差异部分。例如“西红柿鸡蛋”、“番茄炒蛋”都是同一类菜品。从结果上看,目前我们聚合出来的“标准菜品”达到几十万的量级,并且能够覆盖大部分美食商品。
借助标准菜品,我们将类目、口味、食材、荤素、做法等标签聚合到标准菜品维度,并将销量、供给量进行标准菜品维度计算,这样就解决了商品在线时间长短的问题。在具体打标过程中,例如类目经典,我们基于销量和供给,在类目维度对标准菜进行排序,并选择Top n%标准菜进行打标,作为类目经典下的商品。例如在“面食”类目下,“西红柿鸡蛋面”的销量和供给量均在Top n%的水平,因此就认为“西红柿鸡蛋面”是一个面食类经典美食。
3.3 健康餐
这里的健康餐主要指低脂低卡餐,即低卡路里、低脂肪、高纤维、制作简单、原汁原味、健康营养的食物,一般为蔬菜水果(如罗勒、甘蓝、秋葵、牛油果等),富含优质蛋白的肉类(如三文鱼、虾、贝类、鸡胸等),谷物(主要以粗粮为主,如燕麦、高粱、藜麦等)。烹饪方法也坚持“少油,少盐,少糖”的原则,主要做法为蒸、煮、少煎、凉拌等。
健康餐的识别,主要挑战在于本身的样本较少,但是因为健康餐的特殊性,商家在进行商品录入时,一般会对其进行描述,例如指出这个美食商品是“健康”的、“低卡”的、“健身”类型的,因此我们构建了一个分类模型,对健康餐进行识别。可使用的数据,包括商品名、商家导航栏、商家名称、商家对商品的描述等。而商家类目与商品的类目处于迭代状态,因此并没有对这部分信息进行使用。
识别过程如下:
- 训练数据构建:因健康餐本身的占比相对较少,因此首先总结和健康餐相关的关键词,使用关键词进行文本匹配,采样概率相对较高的健康餐数据,进行外包数据标注。此处,我们总结出“沙拉、谷物饭、谷物碗、低油、低卡、无糖、减脂、减肥、轻食、轻卡”等关键词。
- 模型构建:同一个商品因其中使用的配料不同,在健康餐识别方面也会不同,例如菜名为“招牌沙拉”的商品,假如沙拉中添加了芝士,则有可能商品就不会被识别成健康餐。为了综合考虑商家录入的商品信息,使用商品名、商家名、导航栏名称、商家录入的商品描述等。这四种数据为不同尺度的数据源,商品名等为相对较短的文本,因此在模型构建时,考虑使用类似Text-CNN[1]的结构进行字级别的特征提取;商品描述则是相对较长的文本,因此在构建时,考虑使用类似Transformer[2]的结构进行特征提取,使用Multi-head Attention的机制,提取长文本中,“字”层面的特征。具体结构如下:
- 采用了两种结构:Multihead-attention(Transformer)和Text-CNN。实验发现,采用两种结构联合的方式,比采用单一结构准确率高。
- 在建模时,均使用字级别特征处理,避免因为分词造成的误差,同时也避免未登录词的影响。
- 数据迭代增强:因为使用关键词进行样本构建,在模型训练时,模型会朝着包含这些关键词的方向学习,因此存在漏召回的情况。在这里,我们进行了一定的训练数据增强,例如在评估时,选取可识别出健康餐的商家,对该商家中漏召回的数据进行训练数据补充;同时,对部分特征明显的关键词,进行补充并扩充正例。通过对训练样本的多次扩充,最终完成健康餐的高准确率识别。
3.4 菜品实体对齐
考虑到同一商家菜品在不同业务线的菜品名可能略有差异,我们设计了一套菜品名匹配的算法,通过拆解菜品名称的量词、拼音、前后缀、子字符串、顺序等特征,利用美食类目识别、标准菜品名抽取、同义关系匹配等进行菜品实体对齐。例如:碳烧鸽=炭烧鸽、重庆辣子鸡=重庆歌乐山辣子鸡、茄子肉泥盖饭=茄子肉泥盖浇饭、番茄炒蛋=西红柿炒蛋等。目前,形成如下图的菜品归一体系:
4. 应用
这里对外卖美食知识图谱的应用,进行举例说明。主要涉及套餐搭配、美食商品展示等。
4.1 套餐搭配-表征菜品
为满足用户的搭配成单需求,进行套餐搭配技术的探索。套餐搭配技术的关键在于,对美食商品的认知,而外卖美食知识图谱,则提供了最全面的数据基础。我们基于同商家内的商品信息和历史成单信息,对商品的搭配关系进行拟合,参考指针网络[2]等结构,构建了基于Multi-Head Attention[3]的Enc-Dec模型,具体的模型结构如下:
- Encoder:对商家菜单进行建模,因菜单为无序数据,因此采用Attention的方式进行建模。商品的信息主要包括商品名、商品图谱标签、交易统计数据等三部分。
- 对菜名、商品标签分别进行Self-Attention计算,得到菜名和商品标签对应的向量信息,然后与交易统计数据进行Concat,作为商品的初步表示。
- 对商品的初步表示进行Self-Attention计算,以对同商家的商品有所感知。
- Deocoder:对搭配关系进行学习,基于当前已选择的商品,对下一个可能的搭配进行预估。
- 在搭配输出时,使用Beam-Search进行多种搭配结果的输出。
- 为了保证输出搭配中的商品的多样性,添加Coverage机制[2]。
- 训练之后,将Encoder部分分离,进行离线调度,可实现每天的向量产出。
具体的模型结构如下图所示:
基于外卖美食知识图谱构建的套餐搭配模型,在多个入口(“满减神器”、“对话点餐”、“菜品详情页”等)取得转化的提升。
4.2 交互式推荐
通过分析外卖用户的需求,发现用户存在跨店相似商品对比的需求,为打破商家界限的选购流程特点,提供便捷的跨店对比决策方式。交互式推荐,通过新的交互模式,打造推荐产品的突破点。在用户的交互过程中,根据用户的历史偏好、实时的点击行为,向用户推荐可能喜欢的美食商品。如下图8(左)所示,在向用户进行同类美食的推荐时,美食知识图谱中的标准菜品标签提供了主要的数据支撑。
4.3 搜索
搜索作为外卖核心流量入口,承载了用户明确的外卖需求。用户通过输入关键词,进行菜品检索。在实际使用中,从搜索的关键词类型看,可能是某个具体的菜品,也可能是某种食材、某种菜系。在美食知识图谱中,图谱标签的高准确率和高覆盖,有助于提升搜索入口的用户体验,最新的实验也表明了这一点(新增部分食材、菜系、功效等标签,在搜索的线上实验效果正向)。
5. 未来规划
5.1 场景化标签的挖掘
美食与我们的生活息息相关,美团外卖每天为千万用户提供美食方面的服务。然而,用户的需求是多种多样的,在不同的环境、不同的场景下,对美食的需求也不尽相同。目前美食知识图谱挖掘,在场景相关的标签较为缺失,例如某些节气、节日等图谱知识;特定天气情况下的图谱知识;特定人群(增肌人群、减肥人群)等的图谱知识。接下来我们会在场景化标签的挖掘方面进行探索。
在挖掘方法方面,目前的挖掘数据主要为文本信息。在商品图片、描述、结构化标签等信息的融合方面,挖掘不够深入,模型的效果也有待提升。因此在多模态识别模型方面,我们也会进行相应的探索。
5.2 基于图谱的推荐技术研究
美团外卖在理解美食的基础上,向用户进行美食推荐,以更好地满足用户对美食的需求。外卖美食知识图谱和外卖业务数据,作为实现这一点的数据基础,包含上亿的节点信息和十几亿的关系数据。通过对用户的商品搜索、点击、购买等行为进行建模分析,可以更加贴合用户的需求,向用户进行商品推荐,例如,将美食知识图谱和外卖行为数据融合,以用户为起点,进行随机游走,向用户推荐相关的美食。在接下来的图谱应用方面的探索中,我们也会更加深入的探索基于美食知识图谱和用户行为的推荐技术。
6. 参考文献
- [1] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
- [2] See A, Liu P J, Manning C D. Get to the point: Summarization with pointer-generator networks[J]. arXiv preprint arXiv:1704.04368, 2017.
- [3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
- [4] Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[C]//Advances in Neural Information Processing Systems. 2017: 1024-1034.
7. 作者简介
杨林、郭同、海超、懋地等,均来自美团外卖技术团队。
如发现文章有错误、对内容有疑问,都可以关注美团技术团队微信公众号(meituantech),在后台给我们留言。
分享一线技术实践,沉淀成长学习经验