本地生活综合性需求图谱的构建及应用
一、背景
1.1 业务现状
1.2 问题解析
二、解决方案
2.1 解决思路
2.2 具体方案
三、实现方法
3.1 行业体系层
3.2 需求对象层
3.3 具象需求层
3.4 场景要素层
3.5 场景需求层
四、应用实践
4.1 亲子
4.2 休闲娱乐
五、总结展望
一、背景
1.1 业务现状
以“帮大家吃得更好,生活更好”为使命,美团覆盖了外卖、餐饮、酒店、民宿、旅游、门票、电影/演出、休闲/玩乐、丽人、医疗、亲子、教育、结婚、生活服务等数百个行业,满足数以亿计用户的多样化生活服务需求。为了持续增加平台价值,除了推动用户和商户在数量和质量上的不断提升之外,更高效地匹配用户需求和商户供给也是重要抓手之一。
为了提升匹配的效率,我们需要更充分、深入地理解用户需求和商户供给,并且尝试从用户视角出发来组织和管理供给。当前,“行业-类目-商户-商品”是一种较为常见的供给组织和管理方式,然而随着业务和行业的快速发展,这种组织方式带来的痛点日渐突显,举例来说:
部分指向性不明确的用户需求,较难得到适合的匹配结果。例如“周末陪宝宝去哪儿玩?”由于平台的匹配结果不理想,用户往往只能在线下完成类目决策,决定带宝宝去农家乐烧烤,再到平台上搜索相应的农家乐团购。 部分需求跨多个类目,匹配过程不够流畅。例如“周末和朋友去哪里放松一下?”用户在线下完成类目决策后,可选类目包括KTV、酒吧、密室、桌游等,但各类目的承载页面相互独立,用户需要在承载页面间来回切换。 在部分指向明确的类目中,用户仍然难以找到满足自己需求的供给。例如在医美类目下,因为缺乏相关知识,用户往往并不了解商户提供的形形色色的服务项目分别具有什么功效,适合什么部位,应该使用什么材料,无法高效地找到适合自己的服务供给。
上述问题的本质原因在于供给的组织方式主要是从行业视角出发,没有充分考虑到用户视角。在当前以满足用户需求为首要目标的市场环境下,我们需要迭代完善现有的供给组织方式。
1.2 问题解析
为了解决上述问题,我们尝试从一个外部视角,结合第一性原理去进行剖析。在整个人类社会中,按照马斯洛需求层次[1]的理论,人的需求是可以被归纳及分层的。如果将人类社会看作一个系统,人类在其中一个称为“市场”的子系统中,通过交易来满足自己的需求。
人类从需求层次出发,在市场中完成交易,最终需求得以满足,那么在市场中交易的过程可以被拆解为“起心动念->考虑->选择评估->交易购买->履约/服务”。并且,经由前三个阶段,用户的需求逐渐从粗粒度演变为细粒度,从抽象过渡到具象。下面将结合具体的例子来进行解读:
需求层次:在马斯洛需求层次中有一个情感层次,对应了人类丰富多样的情感需求,包含亲情、友情、爱情等等。作为一个母亲,与自己的宝宝之间往往存在一种强烈的母子情,并且希望不断去强化这种情感。 起心动念:为此,母亲往往都会尽力花较多的时间去陪伴宝宝。通过增加陪伴方式的维度,变为“陪宝宝玩”;通过增加时间、空间等维度,变为“周末陪宝宝去哪儿玩?” 考虑:对于上述问题,母亲会找出很多种方案,比如户外烧烤、农家采摘、主题公园等等。当她决定选用户外烧烤这一方案时,便会转化为具体的商品需求,如购买烤架。 评估选择:母亲于是在可触达的供给范围中进行选择。正如人们常说的货比三家,选择的依据会各不相同,如价格、质量、口碑等等。 交易购买:当完成选择之后,母亲便会进行交易,以换取商品或服务。 履约服务:即商品到货、完成服务等等。
市场是人类社会的一个子系统,电商平台则是市场中的一个子系统。同时,电商平台是一种线上化的子系统,它提供了搜索、推荐等形式的供给检索能力。当前的一个现状是:用户往往在线下完成了“起心动念”到“考虑”的过程,转化为具体的商品/服务需求,随后进入电商平台完成“选择评估”到“履约服务”的后续过程(如下图1所示)。而电商平台往往聚焦于后三个阶段的能力提升,容易忽略前两个阶段。
因此,用户较难形成在平台上完成“起心动念”和“考虑”的心智,而大部分电商平台按“行业-类目-商户-商品”的方式对供给进行组织和管理。最终,用户和电商平台之间形成了一种相互掣肘的关系。
事实上,相对于“烤架”这种明确的商品需求,用户还有很多抽象的、模糊的、不明确的需求,依然停留在前两个阶段。例如,周末陪宝宝去哪儿玩?周末和朋友去哪里放松一下?结婚前怎样才能让自己变得更美?暑假如何培养孩子的动手能力?同时,这样的需求往往跨越多个类目,或者在同类目下存在多种选择。
电商平台只有打破既有的掣肘关系,向用户提供前两个阶段(起心动念、考虑)的能力,才能进一步满足用户的需求。用户的决策成本进一步降低,决策过程更加连贯,用户体验也能得到相应的提升,同时用户在市场中的交易过程也能够进一步实现线上化。
以“行业-类目-商户-商品”作为参考,如果电商平台能够识别出用户在前两个阶段的需求,并且在其和供给之间建立新的关联关系,辅以搜索、推荐等检索能力,用户便有可能在线上完成前两个阶段。而知识图谱作为一种揭示实体之间关系的语义网络,用以解决上述问题显得尤为合适。
二、解决方案
2.1 解决思路
延续1.2中的例子,这位母亲将“周末陪宝宝去哪儿玩?”的需求转化为具体的“户外烧烤”需求,延伸至更为具体的“烤架”和“农家乐团购”需求。此时,母亲便会分别前往各类实物电商平台以及以美团为代表的生活服务电商平台进行“选择评估”。两种电商平台分别在实物供给池或服务供给池中采用搜索、推荐之类的召排技术定位到具体的商品/服务,并反馈给这位母亲。
对于1.2中的所述,技术团队期望达成的目的,目前比较有代表性的参考案例是阿里巴巴电商认知图谱AliCoCo[2]。它基本构建思路是从用户视角出发,先进行各种类型的原子词挖掘,再进一步对原子词进行组合和挖掘出相关候选短语,再从中识别出真实的用户需求,最后关联至相应的供给。它的层次结构如图2所示:
分类层:构建完备的分类体系,包含了的大千世界的各种分类,既有通用的空间、时间等类别,也有电商中涉及的颜色、功能以及最为重要的品类等类别。 原子概念层:在分类层诸多类别的基础上进行扩展,包含了各种类别下的原子概念(例如空间->户外、事件->烧烤、时间->圣诞节、颜色->红色、功能->保暖、品类->连衣裙)及原子概念之间的关系。 电商概念层:在原子概念层之上,包含了由原子概念组成或直接挖掘的短语粒度的用户购物需求,即电商概念(例如户外烧烤),从而将用户购物需求显式地用一个符合自然语言的短语表示。 商品层:包含了商品与各种原子概念、电商概念之间的关联关系(例如户外烧烤->烤架、黄油、锡纸)。
基于上述图谱,这位母亲可以直接在天猫上表达“户外烧烤”的需求,而非更具体的“烤架”;天猫也会将烤架以外其他和户外烧烤相关的重要商品反馈给这位母亲。从对应关系来看,AliCoCo的电商概念层对应至“考虑”阶段,商品层对应至“选择评估”阶段。显然,由于AliCoCo的存在,天猫能够从“考虑”阶段开始介入用户的交易过程。
由此推论,我们应该可以将图谱构建得更为完整,以覆盖“起心动念”阶段。在此阶段,人类的需求,按马斯洛需求层次,通过增加一个或多个维度约束,而被逐渐具象化。对于这样的维度约束,我们统称为“场景约束”。因此,我们将“考虑”阶段对应的需求称为“具象需求”;将“起心动念”阶段对应的需求称为“场景需求”。为此,我们希望构建一个本地生活综合性需求图谱(GENE:lifestyle GEneral NEeds net),如下图3所示。对于本地生活场景下所涉及的数百个综合性行业,我们认为新的供给组织方式更能贴近用户需求,也是从用户视角去解决供需匹配的问题。
2.2 具体方案
延续2.1中的构建思路,我们尝试构建一套多层次的图谱结构,并将“具象需求”和“场景需求”拆分为独立的层次,既避免了两种类型的需求合在同一层级中而引起混淆,又能对用户场景化的需求进行更详尽的拆解、更丰富的刻画。本地生活综合性需求图谱(GENE),主要由六部分构成,包含场景需求层、场景要素层、具象需求层、需求对象层、行业体系层和供给层,如下图4所示:
在场景需求层,我们用Human-Readable的短句来表征场景化的用户需求,如“国庆节陪3岁宝宝去哪玩”、“结婚前让自己变得更美”、“小学生提升思维能力”等。一个场景需求的表述中,通常会包含人物、目的、时间、空间、方式等要素,以“国庆节陪3岁宝宝去哪玩”为例,“3岁宝宝”是人物,“陪宝宝玩”是目的,“国庆节”是时间。
在场景要素层,为了更好地表达场景需求,我们将这些短句进行拆解,细化成多个细粒度的词汇,用这些词汇对场景需求中的人物、目的、时间、空间、方式等要素进行完整的覆盖和系统的组织,我们将其称为“场景要素”。
在具象需求层,由于场景需求的表述往往并不显式地指向某个具体的服务/供给,而是隐含了一批潜在的适合这一场景的服务/供给。例如,在“国庆节陪3岁宝宝去哪玩”这个例子中,户外烧烤、喂羊驼、玩滑梯、骑小马等都是适合这一场景需求的具体服务。所以我们需要将所有这些具体的服务通过短语的形式显式的展现出来,这些短语直接反应了用户具体的服务需求,被称之为“具象需求”。
在需求对象层,为了进一步的理解具象需求,我们将具象需求分为具体的服务需求所对应的对象,我们称之为“需求对象”,以及该服务中用户和对象之间的交互行为。例如,对于具象需求喂羊驼,可以分为羊驼(需求对象)和喂(服务交互),由于本地生活服务的多样性,围绕羊驼这一需求对象,除了喂羊驼外,还可以产生触摸羊驼、骑羊驼和看羊驼表演等多种具象需求。这一层除了包含需求对象节点外,也会涵盖需求对象的属性信息,以对需求对象进行更详尽地描述。例如对于具象需求户外烧烤,可分为烧烤(需求对象)、户外(需求对象属性)和体验(隐含的服务交互)。
在行业体系层,由于用户的场景需求和具象需求往往会跨越多个传统的服务类目,为了给用户需求确定一个具体的业务范围,我们还需要构建出各行业涉及的类目体系,作为上述各层构建的业务基础。
在供给层,包含内容这类虚拟供给和商户与商品这类实体供给,这些供给将会和具象需求和场景需求等节点进行关联,从而为用户需求提供相对应的供给支撑。例如,一个提供户外烧烤的供给将会关联上具象需求“户外烧烤”,并进一步关联上场景需求“国庆节陪3岁宝宝去哪玩”。
综上所述,在本地生活综合性需求图谱中,用户场景化的需求和具体的服务需求被分别表达成短句级别的场景需求和短语级别的具象需求。这两种需求分别通过场景要素和需求对象进行表达。最后,不同类型的供给都会和场景需求和具象需求相关联,从而以用户需求为纽带,提升供给和用户的匹配效率。
三、实现方法
当前,本地生活综合性需求图谱已经初步涵盖了用户在玩乐、医美和教育三个本地生活相关行业中的多元化需求。我们在图谱的构建过程中,自底向上按照行业体系层、需求对象层、具象需求层、场景要素层、场景需求层的顺序逐层进行构建,并将各层的节点与各种类型的供给建立关联关系。下文将以玩乐行业为例,对图谱每一层的构建细节以及涉及的算法进行介绍。
3.1 行业体系层
3.1.1 行业类目树的构建
在玩乐行业中,行业体系层包含了能够提供玩乐服务的类目,类目信息通过一个树形结构来表征。由于玩乐行业体系的构建,对专家知识的要求非常高,并且这部分的设计对后续各层的知识挖掘至关重要,因此我们没有直接进行人工定义,而是以当前我们成熟的行业类目树为基础,通过对其进行剪枝和分裂来构建。
首先在类目树中筛选出和玩乐相关的一级类目节点,包括“休闲娱乐”、“亲子”、“旅游”、“餐饮”等。对于每个一级类目,我们进一步筛选其和玩乐相关的下一级类目直至叶子类目,并剪去与玩乐无关的类目。此外,我们还对剪枝后的类目树中可以细分的玩乐相关的叶子类目进行分裂,例如将“洗浴”细分为“私汤”、“洗浴中心”等,最终得到完整的玩乐行业类目树。
3.1.2 类目的供给关联
确定了类目树后,我们还需要获取实体供给(商户和商品)和虚拟供给(内容,例如UGC)与类目的从属关系,从而为后续的一系列挖掘提供数据支持。由于商品和内容均可链接到商户,所以我们只需要获取商户与类目的从属关系即可。玩乐类目树是对我们已有的类目进行剪枝和分裂得到的,除了分裂出的新类目外,其余类目和商户的关系均可直接继承原有的结果。对于新分裂的类目,我们则需要重新构建商户和其之间的从属关系。
要判断一个商户属于哪个类目,最直观的依据就是商户名、商品名及商品详情,然而很多商户的商户名和商品包含的信息往往较少,增加了类目判别的难度。为了确保商户类目判别的准确性,我们引入更多的商户信息,包括商户UGC和商户画像,设计了一个多源异构数据融合判别模型,整体模型结构如下图5所示:
其中,不同来源数据的特征提取和处理方式如下:
商户名、商品名及商品详情:均为文本数据,直接通过BERT[3]提取文本特征后输出。 商户UGC:由于商户的UGC往往数量非常多,为了对其信息进行有效利用,首先通过Doc2Vec[4]的方式进行Encode得到UGC的特征后,再通过一个Self-Attention[5]模块进行特征处理后输出。 商户画像:转成One-Hot特征后,通过全连接层进行非线性映射后输出。
上述三种特征相连接后进行融合,通过全连接层和softmax层实现最终的类目判别。基于多源数据的融合建模,商户信息得到了充分利用。以洗浴细分类目为例,仅利用商户名、商品名及商品详情数据,基于BERT判别,准确率为92%,而基于多源融合模型判别后,准确率提升到98%。
3.2 需求对象层
在需求对象层,我们希望能够挖掘出玩乐行业体系中各类目涉及的玩乐对象词作为该层的节点,这些词能够描述出用户在实际玩乐过程中的交互对象,这是用于组成具象玩乐需求的基础。为了确保玩乐对象挖掘的全面性,我们采用多源多方法的形式。
在数据上,我们采用来自商户和用户的相关文本作为挖掘语料。在方法上,我们采用两种方式来挖掘玩乐对象词:
第一种是无监督的扩充,在开始挖掘前运营会首先根据经验,提供一些玩乐对象词作为种子输入,我们提前利用语料构建无监督的Skip-Gram结构的Word2Vec模型,对业务输入的种子词提取词向量,并结合余弦相似度,快速扩充相关的对象词。 第二种是有监督的标注,我们将其定义序列标注问题,采用基于BERT+CRF的模型,在语料中自动识别出新的对象词。
在实践过程中,为了更高效的挖掘,我们将无监督环节扩充和质检后的对象词在语料中进行文本匹配,并将匹配结果转化为有监督标注环节的训练样本;同时对于有监督标注的结果,经过运营质检后,也会将其作为无监督扩充的输入,通过两个环节相结合,我们完成玩乐对象的挖掘,完整流程如下图6所示。此外,在运营人工审核玩乐对象词的过程中,对于一些业务已知的核心玩乐对象,也会直接输入业务侧已经沉淀的相关特征作为其属性,进一步完善玩乐对象的信息,例如对于“剧本杀”这一玩乐对象,增加相应的“实景”和“桌面”等类型属性。
在获取对象词后,我们还需要知道对象词属于哪个类目,以便下一步的具象需求挖掘及供给关联,为此我们构建对象词和类目之间的关系。通过各类目下的语料文本中提及对象词的次数来衡量两者关系,是最直观且准确率最高的方法。因此,我们直接使用对象词在每个类目下的语料中进行文本匹配,通过词频高低来确定关系。同时,我们进一步构建对象词之间的上下位和同义关系,当前常见的有通过投影和分类(如BERT句间关系模型)等方法来进行关系判别等有监督方法。在实际过程中,我们采用规则辅助人工的方式,基于对象词的统计特征及Pattern共现的结果指导人工快速完成构建。
3.3 具象需求层
3.3.1 具象需求挖掘
具象需求层可以看成是用户在玩乐行业中的具体服务需求的集合,每个具象玩乐需求是该层的一个节点,由玩乐对象叠加用户与对象之间的多元化的交互行为及对象描述信息得到,它通过短语的形式表达出用户对于玩乐服务供给的本质诉求。具体玩乐需求挖掘的流程流程可以分为两个步骤:
候选短语生成:围绕玩乐对象词,生成大量包含玩乐对象的短语,作为具象玩乐需求候选集。 短语质量判别:建立一个语义判别模型从候选集中提取真实的具象玩乐需求。
候选短语生成
在步骤1中,首先我们以需求对象词为核心,采用与玩乐对象挖掘相同的语料,进行候选短语的生成。常用的短语挖掘算法如AutoPhrase[6],是以Ngram来进行短语组合,而这种形式对于有需求对象的短语显得过于冗余,所以我们考虑基于句法结构来进行短语挖掘。
为了使生成短语符合句法的要求,我们以预设的句法关系为模板进行挖掘。在大规模语料中为了更高效地挖掘句法关系,我们基于更轻便的ELECTRA[7]预训练模型获取句子各成分的Embedding后,再利用BiAffine[8]预测其句法关系。通过依存句法分析,我们在各个类目的语料中挖掘出包含相应的玩乐对象且符合句法关系的短语。此外,需求对象层中对象的属性也会被用作对象描述进行短语生成。最终所有挖掘的短语,经过词频等统计特征粗筛后将作为具象玩乐需求的候选集,挖掘示例如图7(a)所示。
短语质量判别
在步骤2中,经过步骤1获取的候选集短语虽然符合预设的句法关系,但是从语义上仍然存在大量与用户实际需求不符的表述,通过抽检分析我们发现符合要求的短语不足10%。如何从海量的候选短语中挑选出反映真实的用户具象玩乐需求的短语成为亟需解决的问题。
AutoPhrase通过基于短语统计特征的判别模型进行短语打分,然而仅通过统计特征难以识别语义质量低的短语,为此我们进一步基于统计和语义特征联合建模,构建一个Wide&Deep[9]结构的判别模型,对候选集合中的短语是否为具象玩乐需求进行判别,我们希望判别模型能过滤掉大量的低质短语,从而为运营节省大量的人力成本。判别模型的整体结构如图7(b)所示,其中:
Wide部分,提取候选短语的全局和上下文的统计特征,通过全连接层进行非线性映射后输出。 Deep部分,提取候选短语的深度语义特征,通过BERT完成相应特征的提取后输出。
上述Wide和Deep部分输出的特征相连接后进行融合,优势互补,经过全连接层和softmax层来实现最终的短语判别。在实践过程中,除了直接使用已经积累的短语标签作为正样本外,我们还通过预设一些常识性的Pattern从候选集中构造正样本,例如观赏[植物]、触摸[动物],并对候选集采样构造负样本,完成初版模型的训练,之后结合主动学习,经过多轮迭代,模型最终达到92%的召回率和85%的准确率。通过质量判别后保留的短语则会交由运营人工审核提炼后成为最终的具象玩乐需求。
3.3.2 具象需求的供给关联
在具象需求层中,由于具象玩乐需求是由玩乐对象得到的,所以两者之间天然地建立了对应关系。而对于具象玩乐需求之间的上下位和同义关系,则可以基于其对象之间的关系及其句法关系,在人工审核的环节来辅助人工完成构建。除此之外,更重要的是需要将具象玩乐需求与实体供给(商户和商品)及虚拟供给(内容,例如UGC)进行关联。
我们将这个问题抽象为一个语义匹配的问题,通过具象玩乐需求与其对应的类目的供给的文本信息进行匹配来实现,其中,商户使用商户名文本信息,商品使用商品名和商品详情文本信息,UGC使用其自身文本信息。由于UGC和商品属于商户的一部分,所以具象玩乐需求与UGC/商品的关系也会加入其与商户关系的构建中。整体匹配流程如下图8所示,我们首先进行具象玩乐需求与UGC/商品的匹配,在此基础上再结合商户名文本的匹配结果,一起通过规则聚合后关联到商户。
由于具象玩乐需求数量众多,同时供给的文本信息通常包含多个子句,出于效率和效果的平衡考虑,我们将匹配过程分为了召回和排序两个阶段。
在召回阶段,我们粗筛出和具象玩乐需求可能有潜在关联的子句。对于具象玩乐需求,我们基于构建的同义关系,扩展具象需求的同义标签,并将其与子句文本进行粗粒度Pattern匹配,对于匹配中的子句则将进入到排序阶段进行精细化的关联关系计算。
在排序阶段,我们构建基于BERT句间关系分类的语义匹配模型,通过在BERT后增加全连接层和softmax层来实现分类。模型通过对召回阶段得到的粗筛样本进行预测,识别两者在语义上的匹配关系(关联/不关联)。最终供给关联关系的平均召回率和准确率分别达到90%和95%。
3.4 场景要素层
3.4.1 场景要素拆解
场景要素层包含了组成用户场景化需求的场景要素。如文初提及,要描述一个场景,需要交代特定的人物、时间、空间、目的等要素。例如,对于“国庆节陪3岁宝宝去哪儿玩?”这个场景化需求,我们可做如下拆解:时间-国庆节,人物-3岁宝宝,目的-亲情陪伴(陪宝宝玩)。所以我们按照上述方式,对场景要素进行拆解,以期对场景要素的挖掘和梳理尽可能的全面与系统。
3.4.2 场景要素挖掘
完成了场景要素拆解后,下一步就是要分别在每个拆解的类别中进行场景要素的挖掘。场景要素作为具象需求的场景化的信息,往往来自于用户的直观感受,所以挖掘的语料我们选择与具象玩乐需求关联的UGC的上下文语料。与需求对象挖掘的方法类似,我们将每个类别的已提炼总结的场景要素作为种子词,通过相关要素扩充和序列标注的方式完成场景要素的挖掘。
确定场景要素后,接下来的关键是完成场景要素与具象玩乐需求的关系构建,即对于每个场景要素,找出其适合的具象玩乐需求,如春季适合观赏樱花、孩子适合亲近动物。我们通过对UGC文本分析后发现,UGC中用户说到某一具象玩乐需求的同时,往往也会交代一些相关的场景要素信息,所以我们继续选择与具象玩乐需求关联的UGC的上下文语料,作为关系构建的数据来源。
最初我们采用基于Pattern的方法,通过归纳可用于判断场景要素和具象玩乐需求关系的Pattern,从语料中直接抽取包含两者的文本。但由于用户表达的多样性,不仅准确率无法保证,同时有限的Pattern也影响了召回,因此我们进一步尝试使用基于模型判别的方法提升泛化性,完善关系的构建。
由于我们使用的语料中的具象玩乐需求是已知的,如果将场景要素看成是具象玩乐需求的属性,那么问题就可以看成是一个属性级(Aspect-Based)的分类问题。参考属性级情感分类的做法[10],我们通过预设句子模板的方式,结合场景要素和具象玩乐需求构造出辅助句子,将属性级分类转换为一个类QA的句对分类问题。例如,对于已经关联了“喂羊驼”这一具象玩乐需求的某个语料:“这个周六我们到农家乐喂了羊驼”,其中一个辅助句子为“周末适合喂羊驼”。
我们采用BERT句间关系分类模型来实现句对分类,如图9所示。辅助句子与语料文本通过[SEP]相连后输入模型进行判别,模型输出判别结果(适合/不适合)。最后我们根据在所有语料上的关系提取结果,对每个场景要素和具象需求之间的关系进行投票计算评分后来确定两者的关系。
3.5 场景需求层
3.5.1 场景需求组装
在场景需求层,我们会将场景要素层和具象需求层的信息进行组装,从而生成大量的场景需求。组装出的场景需求,既可能仅含场景要素,如“国庆节陪3岁宝宝去哪儿玩?”不含任何具象需求,又可以同时包含场景要素和具象需求,如“周末去郊外摘草莓”中,周末、郊外是场景要素,摘草莓是具象需求。
3.5.2 场景需求判别
对于组装得到的场景需求,最重要的是保证其合理性,例如“周末”和“亲子”就是合理的玩乐场景,而“闺蜜”和“亲子”则是矛盾的玩乐场景。为此,我们首先需要计算场景要素之间的关系评分,从而指导场景需求的组装。场景要素只有依托具象需求,搭配上适合的玩法,参与组装的场景需求才有意义。因此,对于场景要素之间的合理关系构建,我们尝试以场景要素和具象需求的关系得分作为依据,通过关系传递评估两个场景要素之间的相关性。
在3.4.2节中,我们已经量化了场景要素和具象需求之间的关系评分,一个最直观的想法是通过场景要素-具象需求-场景要素的关系传递来进行计算场景要素之间关系的计算。如图10(a)所示,以具象需求“喂羊驼”为纽带,可以获取“亲子”和“闺蜜”两个场景要素的关系得分。
我们首先构建场景要素和具象需求的关系评分矩阵,考虑到玩法数量满足长尾分布的情况,对矩阵进行具象需求维度的列归一化处理,同时为了保证场景要素-场景要素矩阵的自相关系数为1,对归一化后的场景要素-具象需求矩阵进行L2行范数归一化处理,因此该归一化矩阵与自身转置的矩阵乘得到的新矩阵即可作为场景要素-场景要素的关系评分矩阵。
通过上述方法可以很快得到场景要素之间的关系评分,然而该方法仅以场景要素-具象需求-场景要素的关系传递模式,计算场景要素在具象需求上的直接共指强弱,导致场景要素关系的覆盖不足。为此,我们扩展为更长的节点关系链传递模式,这种节点之间的传递关系是服从马尔可夫性质的,如图10(b)所示。但是随着传递路径的增长,计算成本会呈指数级增长。所以我们采用强化学习[11]中的One-Step时序差分方法进行求解,以“累计回报的期望最大化”的概念作为节点的价值,以场景要素节点集合作为强化学习概念中的状态空间,具象需求节点集合作为动作空间。
例如当我们处在“亲子”场景要素这个状态下,可以通过选择“喂羊驼”或者“角色扮演”来跳转到下一个状态“闺蜜”或“户外”。该状态跳转过程的决策函数,根据当前场景要素状态关联的所有具象需求中随机抽取一个具象需求节点作为决策行为,抽取概率与得分正相关;状态转移概率则为在该具象需求节点决策下,随机跳转到与之相关联的场景要素,跳转概率与得分正相关。
同时,对于特定的互斥关系,我们根据实际的业务应用需求制定奖励矩阵实现多样化的场景要素关系评分模型。这样我们将节点关系传递模型转化为了马尔可夫决策模型,结合贝尔曼最优原理推导出的价值迭代表达式和节点对关系得分预测公式,如图10(c)所示。根据图示的公式,在保持策略不变的前提下采用自举迭代的思想计算节点的价值,并进一步计算场景要素之间的关系评分,既能够保证更充分的利用已有的关系网络信息,提高关系覆盖,又能通过奖励矩阵的约束关系降低互斥关系的影响,灵活适应不同业务的需求。
最后基于场景要素之间的关系评分,我们从组装的场景需求集合中选择评分高的场景需求,并根据预设的模板生成最终的场景需求表达,例如“周末和朋友放松”、“和闺蜜一起玩”、“国庆节带孩子户外烧烤好去处”。这些场景需求通过其包含的场景要素/具象玩乐需求,可以链接到相应的具象玩乐需求,进而关联相关的供给,从而给用户提供场景化玩乐的解决方案。
四、应用实践
本地生活综合性需求图谱,涵盖了用户的场景需求和具象需求,一方面更前置地参与用户决策,在“起心动念”、“考虑”、“选择评估”等多个阶段影响用户,降低其决策成本,另一方面,提供更多样化的供给选择,高效地进行供需匹配。应用方式上,应用于搜索、推荐等各类业务形态。
经过近一年的建设,当前综合性需求图谱包含数十万核心具象需求和场景需求节点,以及数千万的关系,并在美团的亲子、休闲娱乐、医美、教育培训等多个业务进行了初步的应用实践,下面举例介绍具体的应用方式和应用效果。
4.1 亲子
亲子原频道页用户需求和供给之间匹配效率低下,其中ICON按照亲子传统类目划分,无法满足用户不同类型的需求(图11(a)左),而底部猜喜的供给形态单一,且体现用户需求的优质供给不足,决策信息不足(图11(b)左),因此对亲子频道页进行改版。为了贴合亲子的业务特色,我们将亲子玩乐相关的需求节点和关系,应用于频道改版后的多个流量位,为其提供标签和供给数据的支撑。
其中,对于ICON,基于高频的场景和具象需求,跨类目生成需求ICON,如“亲近动物”、“带娃泡汤”等(图11(a)中)及相应二级页(图11(a)右),这些ICON包含了原本多个类目中的相似需求,在用户“考虑”阶段为其提供决策信息。
对于底部推荐,我们围绕亲子玩乐的具象需求进行供给优化,将其关联的内容作为优质供给进行推荐,并为每个供给提取包含相应具象需求的文本,作为推荐理由外露,这些句子从用户实际需求的角度展示信息,极大地吸引了用户(图11(b)右)。此外,还进一步根据浏览和交易行为,以供给为媒介建立具象需求与用户的关联关系,应用于个性化推荐的召回和排序的优化。改版后的亲子频道页,满足了用户多样化的推荐需求,极大地改善了用户体验。
4.2 休闲娱乐
在休闲娱乐频道页,我们围绕场景需求和具象需求进行了一系列应用。一方面,基于玩乐的场景需求组织新的场景ICON,如满足用户户外游玩的“踏青赏花”、满足用户在室内潮流玩乐的“室内潮玩”、满足喜欢晚上玩乐用户的“夜生活”、满足和朋友同事聚会玩乐的“团建聚会”,这些ICON从用户场景化的玩乐出发,打破了传统类目的限制,让用户和供给的匹配更加流畅,每个ICON的二级页面则会展示每个场景的具象玩法需求及关联的商户和内容。
另一方面,在频道页场景导航模块中,尝试利用场景需求来进一步展示场景化的玩乐信息,包括“一人乐”、“家庭暖”、“过生日”等十多个玩乐场景主题,并针对这些场景的具象需求关联的商户进行推荐。这些场景化的应用(图12(a)),在“起心动念”阶段即作用于用户,提升了用户的决策效率。
此外,部分具象需求经过改写可以直接用于相应类目的列表页商户的快筛,例如实景剧本杀/桌面剧本杀,换装/汉服体验/撸宠必去/飞行模拟等(图12(b)左和中),而我们在行业体系层中类目的细分结果,亦可以成为商户的快筛,例如洗浴类目的细分(图12(b)右),这些快筛的应用,更加方便了用户选店。
五、总结展望
在本地生活服务中,如何不断提高供给和用户之间的匹配效率,是摆在我们面前的一道难题。我们尝试以用户关注对象为切入点,通过深挖用户需求并以其为纽带来关联供给和用户。为了全方位挖掘和理解用户需求,我们努力探索并尝试构建本地生活综合性需求图谱,以行业体系层、需求对象层、具象需求层、场景要素层、场景需求层的顺序逐层构建,并为各种类型的供给建立关联关系。
目前,综合性需求图谱的结果可应用于搜索、推荐等各类业务形态,并已在美团多个业务场景中取得实践成果。不过,我们还处在探索的初级阶段,接下来还有很长的迭代之路要走,在此我们提出一些后续的思考和展望:
更广的行业覆盖:一方面加深对已有的玩乐、医美和教育行业的建设,挖掘更多的节点和关系,更好的理解用户需求;一方面向丽人、结婚等更多的行业进行横向覆盖;此外还将进一步扩展到用户决策的全链路,构建服务体验图谱,覆盖履约服务环节,分析其中的用户需求和反馈,更好地赋能商家提升用户体验。 更多的数据引入:当前图谱的构建主要是以平台的用户和商户的文本语料为主,下一步将利用图像等更多模态的数据,并尝试引入外部的知识,对当前的节点和关系进行完善和补充。 更深的图谱应用:现阶段图谱在搜索和推荐上的实践主要集中在标签及其关联供给的直接应用,后续考虑进一步深化图谱的应用,充分利用场景需求和场景要素的信息,为推荐侧更准的用户意图识别提供支撑,从而提升供给和用户的匹配效率,发挥出知识图谱更大的价值。