在搜索场景中,由于用户搜索词Query和检索文本Document之间存在大量表述不一的情况,在文本检索框架下,此类文本不匹配导致的漏召回问题严重影响着用户的体验。对这类问题业界一般有两种方案:用户端拓展用户的查询词——即查询改写,或Document端拓展文档关键词——即Document标签。本文主要介绍前一种解决漏召回的方案:查询改写(Query Rewriting,或称为查询扩展Query Expansion)。查询改写的应用方式是对原始Query拓展出与用户需求关联度高的改写词,多个改写词与用户搜索词一起做检索,从而用更好的表述,帮用户搜到更多符合需求的商户、商品和服务。
在美团搜索的技术架构下,查询改写控制召回语法中的文本,命名实体识别(Named Entity Recognition,简称NER)[1]控制召回语法中的检索域,意图识别控制召回的相关性以及各业务的分流和产品形态,这是最为核心的三个查询理解信号。查询改写策略在美团搜索的全部流量上生效,除扩展用户搜索词外,在整个美团搜索技术架构中作为基础语义理解信号,从索引扩展、排序特征、前端高亮等多方面影响着用户体验。对搜索召回结果中的无结果率、召回结果数以及搜索点击率等指标,也有着直接且显著的影响。
本文会介绍美团搜索场景下查询改写这一任务上的迭代经验,内容主要分为三个部分。第一部分会对查询改写任务在美团搜索场景下的挑战进行简单的介绍;第二部分会介绍查询改写任务上整体技术栈建设的实践经验第三部分是总结与展望。目前,业界在文本召回策略方面公开的分享较少,希望本文能对从事搜索、广告、推荐中召回相关工作的同学有所启发或者帮助。
在美团的搜索场景下,查询改写主要用于解决以下四类语义鸿沟导致的漏召回问题:
搜索是在用户搜索词以及供给两方面约束下尽可能提高用户触达效率以及商业化指标,而美团的搜索场景增加了“地域”第三个约束。具体的行业对比如下图所示:
通过对比行业内搜索场景可以发现,美团的搜索场景下用户需求和服务商家大多是面向本地,而生活服务领域业务非常细碎,相对用户对生活服务某个领域的需求而言,本地化供给相对较少。
与此同时,美团搜索还聚合了多种履约形式的结果,搜索结果中会有团购、外卖、买菜、优选等业务的自然结果聚块,以及在本地相关业务均无结果时的推荐结果聚块。在有限的曝光位置下,每个自然结果聚块的不相关的结果会挤占其他聚块的收益,因此不能依赖排序解决相关性问题。这就要求美团搜索场景的查询改写在多个业务场景下要强相关且高效率,算法层面需要解决覆盖问题、准确率问题以及多业务问题。以该要求为出发点,在具体算法迭代时查询改写还面临以下两方面挑战:
① 对用户的查询面临着复杂的需求场景
② 对平台的供给需要兼顾供给建设特点和发展阶段
下图4总结了目前查询改写迭代的技术框架以及对应解决的问题。我们在各个子核心模块如离线候选挖掘算法探索、语义关系判别模型、向量化召回、在线生成改写词有较为深入的探索。除信号本身迭代,在信号的使用上也通过改写分级信号加入排序、召回相关性等做联动取得了不错的线上收益。
下面,我们将从离线到在线全面的介绍查询改写任务下的各模块技术的迭代。
高质量的数据可以显著改善头部流量的改写效果,并且决定了后续模型性能的天花板。在候选集生成方面,基于搜索日志的挖掘、基于翻译思想、基于图计算、基于Embedding都是工业界和学术界常用的方法;在候选集过滤判别方面则有句间关系分类、Embedding相似度计算等方法。我们结合美团搜索场景总结了各个方法的优缺点,并在每个挖掘算法组件都结合了用户行为和语义两方面信息,下文将对离线语料挖掘做具体介绍。
搜索日志挖掘是工业界常用的同义词获取手段,挖掘的主要方向有:
以上简单方法均可以挖掘到大量相关词对,但基于的假设和设计的规则都很简单,优缺点都非常明显。下面介绍几种优化的挖掘方法。
图方法如经典的协同过滤以及Graph Embedding等,在推荐场景中通过利用用户和Document的关系构建图结构来推荐更相似的Document。在搜索场景下用户的搜索Query以及平台的Document通过点击、下单等方式同样也可以建模成图结构。在美团搜索的使用场景下,我们对构图方式做了如下两个改进:① Query和Document之间的边权重使用Query点击Document的点击次数和点击率进行Wilson平滑的结果,而不只是Query点击Document的次数,从而提高相关性;② 在二部图中,将用户在Session中自行改写的Query也视为Document节点,与点击的Document标题一起进行构图,从而提高挖掘的数据量。
我们早期用SimRank++算法[2]验证了构图方式两个优化点的可行性,SimRank++算法是一种同构信息网络中的相似度量算法,它的思想是:如果两个用户相似,则与这两个用户相关联的物品也类似;如果两个物品类似,则与这两个物品相关联的用户也类似。该算法的优点是可以使用Spark进行大规模全局优化,并且边权重可以根据需要调整。优化构图后人工评测SimRank++优化前后查询改写数据量提升了约30%,同时准确率从72%提升到83%。
后续,我们用相同的思路尝试了其他图神经网络模型(GNN)。DeepWalk[3]在构造Sentence上下文采用随机游走的方法。 随机游走一般是将Query之间的关系建立成图,通过从一个点随机游走,建立起多条路径,每条路径上的Query组成一个句子,再使用上下文相关原理训练Query的Embedding。随机游走的优点就是关系具有传递性,和Query共现不同,可以将间接关系的Query建立联系。少量的数据经过游走能够产生够多的训练数据。例如在Session1中用户先搜索Query1后改为Query2再查询,在Session2中用户先搜索Query2后改为Query3再查询,共现的方法无法直接建立Query1和Query3的关联关系,而随机游走能够很好地解决。在改写词挖掘任务中,基于图的方法相较于直接从搜索日志挖掘词对的方法,挖掘的效率和准确率均有所提升。
在word2vec[4]后,Embedding的思想迅速从NLP领域扩散到几乎所有机器学习的领域,号称“万物皆可Embedding”,只要是一个序列问题均可以从上下文的角度表示其中的节点。此外,Embedding在数据稀疏性表示上的优势也有利于后续深度学习的探索。将Query Embedding到低维语义空间,通过计算Embedding间的相似度查找相关词,在挖掘相似词的任务中是常见且易于实践的挖掘方法。除了简单的在用户评论等语料上训练大规模词向量外(即图7a),在实践中还尝试了以下两种构建上下文的方法:
设计不同的上下文结构得到Embedding后,为了进一步提高准确率后续的基本的步骤是:① 训练语料通过分词后,利用fastText训练Query的词向量,fastText训练时考虑了字级别的Ngram特征,可以将未登录Query的字、词Embedding进行简单求和或求平均,解决OOV(Out-Of-Vocabulary)的问题;② 在目标词表中,用词向量表示该词;③ 利用LSH,查找向量cosine相似度高于一定阈值候选词,或使用DSSM双塔模型[7],通过有监督训练提高精度;④ XGBoost结合特征工程进一步过滤。
BERT[8]自提出以来深刻改变了自然语言处理领域的研究应用生态,我们尝试了一些使用BERT Embedding的方法,其中比较有效的是通过Fine-Tuning的Sentence-BERT[9]或SimCSE[10]模型获取词向量。
BERT计算语义相似度是通过句间关系下游任务完成的,方法是用特殊字符将两个句子连接成一个整体做分类,带来的问题是使用时需要两两组合造成大量冗余计算,因此不适合做语义相似度搜索或无监督聚类任务。Sentence-BERT借鉴了孪生网络模型的框架,将不同的句子输入到两个参数共享的BERT模型中,获取到每个句子的表征向量,该向量可以用于语义相似度计算,也可以用于无监督的聚类任务。
我们实践的方法基本与Sentence-BERT思想大致相同,使用下图中左图的方法构造有监督的改写对训练数据,用右图的方法在不同意图类型的历史搜索Query进行向量计算。
相比于前面的方法,双塔结构BERT的方法捕捉语义的能力更强,并且有监督训练的方式结合一些模型结构上的调整,能够减少各类漂移严重的Case。此外Sentence-BERT不依赖统计特征和平行语料,在任何业务上均可以比较方便的迁移和Fine-Tuning,对一些冷启动的业务场景非常友好。在此基础上利用Faiss[11]向量检索方法构建离线检索流程,能够支持在亿级别候选池中高效检索,通过该方法构建的改写候选能达到千万甚至亿级别数据量,且实测准确率较高。近几年的对比学习等方法在文本表示领域不断刷新榜单,从向量构建和向量交互方式等方面均可做持续的探索。
从以上多个途径的挖掘方法中可以得到千万级别的相似词对,但仍然有大量语义漂移的Case,其中近义词漂移问题最为严重。原因是Embedding基于相同上下文的假设太强,而近义词的上下文很相似,包括在商户和商户类目的上下文(一个商家通常会提供多种服务)以及用户Session换词的上下文相似(用户在某一类意图下多次浏览意图下的概念),因此很容易挖掘出“大提琴”→“小提琴”这种同位词Case,并且加大了从用户点击行为或意图分类等其他维度过滤恶劣Case的难度。
而图方法由于侧重于关联性而忽略了语义漂移问题,在一些搜索量小的Query节点上边关系较少,导致比较如“电动车上牌”→“电动车专卖”等Case,并且相似度分数没有绝对意义。为了从语义维度过滤类似的疑难Case,我们通过引入BERT的语义信息来解决这类问题。BERT使用预训练+微调的思路来解决自然语言处理问题,模型特点除网络更深外,双向语言模型的设计思路可以更好的利用上下文信息避免同位词漂移问题。下面介绍查询改写任务中对BERT句间关系任务做的一些探索。
在BERT提出之初,我们用挖掘数据和少量人工标注数据在美团场景语料预训练的MT-BERT[12]做句间关系任务的两阶段Tuning。而在实践中发现在现有挖掘数据上训练得到的模型在某些Case区分度不高,如我们之前提到的“大提琴”→“小提琴”以及“葡萄酒”→“葡萄”这类字面编辑距离不大的Case。因此如何构建高质量的正负例数据是逼近BERT在查询改写任务性能上限的关键。
我们首先尝试的是一种协同训练的方法,协同训练是一种半监督的方法,它关注的问题是如何在有标记数据较少时利用大量的未标记数据来改善模型性能。考虑到离线挖掘数据噪音较大,我们探索了NMT(Nature Machine Translation)和MT-BERT协同训练的方法,达到同时提高数据质量和模型质量的效果,整体系统的框架图如下:
整个协同训练的流程是:
在实际实验中,协同训练在迭代3轮后收敛,在人工构建的Benchmark集合上前两轮BERT和NMT效果提升明显,最终的效果明显好于直接使用训练样本+人工标注数据Tuning。
协同训练可以有效解决“葡萄酒”→“葡萄”等字面文本相似度较高的Case,但噪声数据频率较高的“马琴”→“二胡”这类字面匹配不明显,上下文比较相似的同位词Case仍然存在。这里使用了关系抽取的方法针对性的挖掘了这类疑难Case。例如针对同位词负例的挖掘使用了一些Pattern的方法,挖掘UGC中提到“如A、B、C等”类似的句式,经过过滤后构造高质量的同位词负例数据。经过负例数据的优化,模型准确率得到进一步提升。
最终,BERT语义判别模型的训练过程分为四个阶段:① 无监督:使用美团场景的语料在BERT模型基础上进行Continue Train;② 半监督:使用算法挖掘的数据进行Co-training Tuning;③ 样本增强监督:使用人工挖掘的高质量负例Tuning;④ 使用人工标注的数据做最终的Tuning。最终模型的准确率达到了94%以上,解决了大量语义漂移Case。
随着美团业务场景的丰富,电商类型的搜索和供给流量占比开始变高,商品领域的误改写问题开始增多。通过分析用户Query和改写的Case发现上述模型不能很好的迁移到商品领域中,主要的原因除了训练数据的覆盖外,商品搜索场景下用户搜索商品对应改写的要求是同一事物,对改写的准确率要求更高,而是商户场景用户表达的是需求,对应改写的要求是表述需求相同即可。此外从Document角度看,商品召回字段较单一,不存在商户搜索时一个商户对应多种服务的问题,场景简化后算法空间是比较大的。因此单独对商品领域的改写判别模型做了优化:
通过以上几种挖掘手段,结合判别模型进一步提高准确率后能够得到数据量约千万级别的高质量改写对。但线上词典的应用方式泛化效率低下,下文会阐述如何通过线上模型进一步提高查询改写的整体效果。
美团查询改写线上有以下几种方案:(1)高精度的词典改写;(2)较高精度的模型改写(统计翻译模型+XGBoost排序模型);(3)覆盖长尾Query的语义NMT(神经网络翻译模型)端到端生成改写;(4)覆盖商户名搜索流量的在线向量化检索。
词典改写是业界通用的方法,需要注意的是同义词替换需要结合上下文信息,比如“百姓”和“平民”单独看是可以同义的,但在“百姓大药房”和“平民大药房”中则是一个严重漂移的改写,在对词典改写类型分类后结合实体识别信息设计策略可以解决大部分此类问题。下面的篇幅将对美团搜索查询改写的后三种在线模块分别做介绍。
通过离线挖掘改写Query的方式存在的问题是覆盖不足,但是一个Query里包含的短Term可以进行改写,例如生活服务领域常见的例子:“XX坏了”=“维修XX”。从这个角度思考可以将查询改写任务抽象为一个典型的机器翻译任务。可设定$f$为用户搜索词,$e$为目标改写词,SMT整体可以抽象为一个噪声信道模型,根据贝叶斯公式求解SMT公式推导:
$$ \tilde{e} = arg \underset{e \in e^}{\,max\,}p(e|f) = arg \underset{e \in e^}{\,max\,}p(e|f) \frac{p(f|e)p(e)}{p(f)} = arg \underset{e \in e^*}{\,max\,}p(f|e)p(e)$$
其中得到的两个概率$p(f∣e)$即为概率转移模型,$p(e)$为语言模型。由此将改写模型拆分为两部分,结合已有的千万级别平行语料得到词对齐候选,分别训练Decode模型(概率转移模型)和语言模型。在实际的构建过程中针对遇到的Case,对模型的细节做了一些定制优化:
最终,线上的整体框架类似业界经典的的Learning to Rewriting框架[17-18],模型上线后对线上的有改写流量覆盖占比有近12%的提升,在QV_CTR等指标上获得了非常可观的收益。
在线上引入同义词替换、SMT统计翻译改写后,线上有改写的流量覆盖率接近70%。但在中长尾Query中仍然有覆盖不足的情况,主要由以下两类问题导致:
从以上问题出发,需要一个不依赖候选的生成式改写模型,我们考虑使用深度语义翻译模型NMT来解决这类问题。
2016年年底Google公布的神经网络机器翻译(GNMT)[19]宣告了神经网络机器翻译性能超过1989年的IBM机器翻译模型(SMT,基于短语的机器翻译模型)。推动这一巨大发展就是引入Attention机制[20]的Sequence to Sequence(Seq2Seq)的端到端模型。 但在实际的使用中发现,NMT生成的改写词存在不符合语义(生僻或不通顺)以及改写有语义漂移两个问题,导致在线上新增改写的有效比例低,甚至会导致严重的漂移Case。因此要引入NMT做改写必须结合搜索的使用场景对以上两个问题做优化,目标是生成无意图漂移、能够产生实际召回影响的改写词。基于以上问题分析和思考,通过引入环境因素引导NMT生成更高质量的改写是大方向目标,从这个角度出发我们调研了强化学习的方法。
强化学习的过程是一个智能体(Agent)采取行动(Action)从而改变自己的状态(State)获得奖励(Reward)与环境(Environment)发生交互的循环过程。我们希望借助强化学习的思想,将预训练的NMT改写模型作为Agent,在强化学习迭代的过程中其生成的改写(Action)通过搜索系统(Environment)产生最终的曝光和点击(Reward)来指导NMT优化模型参数(State)。
经过进一步调研,我们参考了Google QA系统[21]以及知乎的工作[22],即通过强化学习的方法,把搜索系统当做一个Environment,改写模型当做Agent,从而将大搜的结果质量考虑进来。但由于美团场景下的排序与位置、用户等排序因素强相关,将整个大搜作为Environment将改写词召回向前排序的反馈机制不可借鉴,并且请求在线排序会导致训练速度慢等一系列工程问题。结合NMT实际的表现,考虑优先保障生成改写的语义相似度,使用大搜召回日志结合BERT语义判别模型做Environment,目标为原词改写词在搜索系统交互中的商户集合的交叉度和自然语义相似度。最终整体的框架图如下所示:
下面详细介绍算法模块设计和流程:
Step 0 预训练NMT生成器
Step 1 原词改写词输入环境计算反馈
从用户角度出发,好的改写词应该是语义相同、改写词新增召回的商户与原词召回商户很相似,并且用户在点击的商户分布上应该是比较一致的。此外,从改写的有效性出发,改写词需要是通顺的、有较丰富召回结果的热门搜索词。从上面的分析中得出,满足相似度高的改写应返回正反馈,不相似、不通顺改写词应返回负反馈。因为将环境分为两个部分,离线搜索日志模拟搜索系统以及BERT语义判别系统,分别从搜索系统和用户的交互以及语义判别两个角度对产生的Action做出反馈。
Step 2 打分器对环境产生的反馈做权重加和。
根据环境给的反馈分数基于权重叠加后生成归一化的Reward,这里根据业务场景和实际问题做了多轮迭代,设计了加权的反馈打分器,分别给搜索、用户行为、语义判别、字面匹配度几个方面不同的权重,最终归一化到0-1之间作为最终的反馈。
Step 3 迭代打分器结果到生成器继续训练的loss中。
根据打分器的分数将Reward叠加在NMT Fine-Tuning的模型Loss中,这里对比了几种方法,其中Google用Batch的平均句子长度对加和平均的Loss做归一化叠加方式效果最好。
通过上线后的效果分析,引入强化学习的NMT可以解决语义类型改写(挑筋→拨筋,劳动争议→劳动纠纷,柴火烧→柴火灶),生僻的简写(法甜店→法式甜点,足指→足部指甲),输入错误导致的简写(瑜教练→瑜伽教练,桑洗浴→桑拿洗浴),自然语言类型Query去词(染发剂哪里买→染发剂,祛斑哪家医院好→祛斑医院)。
总体来说,强化学习能够在生成改写词的质量上有一定的提升,尤其在相关性方面引入了搜索系统和用户的反馈后改写的精度和效率有较大提升,离线评估准确率由69%提升至87%,在线上提高复杂长尾Query改写覆盖的同时不会引入影响用户体验的恶劣BadCase,在整体美团搜索长尾Query的QV_CTR等指标上取得了较好的收益。
向量化召回随着Sentence-BERT,SimCSE等向量表示方法近期在学术界的刷榜,逐渐有越来越多的公司开始尝试大规模应用起来,如Facebook[23]、淘宝搜索[24]、京东[25]等。得益于预训练模型表达能力强等特点,对比传统的DSSM等方法有更好的泛化能力和准确度。
在改写场景使用向量召回还有两个优点:一方面Query和改写词较短且长度相近,并且语义和类型较一致,参数一致的双塔即可保证一定的准确率;另一方面改写词从候选池中检索出来而不是生成,可以控制改写词的有效性以及限制语义类型。通过分析美团搜索的漏召回问题发现商户名精搜漏召回问题较大,此外考虑到美团场景下,商户提供的服务丰富、Document端文本较长意图较分散的问题,我们先在商户意图下文本不匹配导致的少无结果问题中尝试了向量化召回(下文称为“模糊改写”)并取得了非常好的效果,下面将进行详细介绍。
首先对这类Case做归纳总结,认为模糊改写要解决的问题是:用户有明确商户意图时,因文本不匹配,或NER切分错误导致无结果、漏召回问题,这类Case用户意图明确但Query表述模糊。例如:搜索“九匠和牛烧肉”未召回POI“九匠精酿烤肉”、搜索“宁波莱斯小火车”未召回POI“宁波火车来斯主题公园”。这类问题混合了多种文本变体,难以在现有结构化召回框架内解决。确定问题的边界后,总结这类Case有以下特点:(1)Query是多变的,但商户名召回池是有限且确定的;(2)Query和商户名文本长度较短,非常适合向量化召回算法;(3)可以摆脱现有布尔检索召回框架的限制,避免简单文本匹配导致漏召回。因此我们制定了以向量召回为基础的模糊改写流程:
下面会着重介绍模糊改写的核心模型以及线上服务处理流程两部分。
模型结构: 模型结构采用双塔Query Tower $Q$和POI Tower $P$,对于给定的Query和POI,公式中使用 $q$表示输入Query文本,$p$表示输入POI标题文本,模型计算过程为:
$$f(q,p)=G(Q(q),P(p))$$
其中$Q(q)$表示产出Query Embedding的BERT塔,$P(p)$表示产出POI标题文本Embedding的BERT塔,$G$表示打分计算函数,比如Inner Product、L2 distance等。
向量Pooling: 根据BERT模型各层越远离下游任务泛化能力越强的特性,经过多次实验验证使用倒数第二层向量做Avg Pooling后输出的结果有更高的准确率和召回率。
Negative Sampling: Facebook在论文《Embedding-based Retrieval in Facebook Search》[23]中强调了负样本分布的问题。我们在负采样上有三部分:Random Negatives、Batch Negatives、Hard Sample Negatives,并增加了一组超参来调整三者的比例。Random Negatives 越多,召回商户质量较高但相关性会有所下降;Batch Negatives参考了SimCSE的做法,增加后相关性有所提升;Hard Sample Negatives是通过规则筛选了一批商户名文本上很相似的不同商户,以及加入错误的改写、纠错对,以较低的比例加入每一轮的训练中,进一步提升相关性表达。
Loss函数: Loss选用了Binary Cross-Entropy的Pointwise Loss函数,原因是对于有标准商户名Label的情况下,模型预测改写商户名“绝对正确”的性能好于Pairwise预测“相对正确”的改写商户名。在实际的对比实验结果中也体现了这一点。
线上服务搭建: 如图12所示,线上分为前置流量划分模块、Query端的在线文本向量化、ANN向量检索以及后置规则四部分。
模糊改写项目上线后,对“九匠和牛烧肉”未召回POI“九匠精酿烤肉”这类目标Case解决很好,在用户搜索商户名时出现换字、多字、少字的情况泛化能力很强,并且训练数据中加入同义词替换后也解决部分同义字、同义词替换的漏召回问题。从线上效果看,QV_CTR、无结果率以及长尾BadCase等指标上均有较大收益,有效改善了这部分流量的用户搜索体验。
除积累了向量检索的算法工程经验外,我们总结这个项目的成功之处在于通过一系列问题发现和问题分类的手段界定了清晰的问题边界,并做了合适的技术选型,使用意图信号限制应用范围对向量召回扬长避短,最终收益超出预期。向量检索近几年在业界各大公司均有尝试,我们认为在非商户名搜索流量以及商品搜索流量上还有巨大的挖掘空间,结合美团场景中商户多字段、多服务、多业务的难点,模型的变体有非常多可尝试的点,我们会在后续的文章介绍在线向量化检索方向的探索,敬请期待。
查询改写项目经过上述介绍的迭代,在美团搜索不同发展时期均贡献了不错的业务收益。并且随着技术影响力的扩大,逐步与大众点评App搜索、外卖App搜索、搜索广告等业务方建立了合作,在美团搜索的商品、外卖、酒店旅游等业务沉淀了相应的数据和技术能力。与此同时,各业务也根据自身的发展阶段和业务特点对查询改写提出了一些独有的需求,对此我们把查询改写的核心功能做了抽象,整个技术框架的发展方向为:
本文介绍了美团场景下查询改写任务上的探索和实践经验,在垂直领域搜索召回这一课题上结合实际业务场景和用户需求探索了语义判别模型、语义检索模型、图模型等前沿算法技术,积累了生活服务领域短语关联认知数据。其中在离线数据部分介绍了策略、统计翻译、图方法和Embedding等多种技术角度的挖掘方法,并对总结了各个方法在实践过程中的出发点、效果和优缺点。在线模型方面结合垂直领域搜索的结构化检索特点,设计了高精度的词典改写、较高精度的模型改写(基于SMT统计翻译模型和XGBoost排序模型)、覆盖长尾Query的基于强化学习方法优化的NMT模型、针对商户搜索的向量化召回四种线上方案。
目前,在美团App搜索中有改写流量占比约73%,在大众点评App搜索有改写流量占比约67%。构建的查询改写能力和服务平台支持各个业务频道内搜索以及搜索广告平台等,并取得了不错的收益。现在查询改写服务高峰期集群QPS(Query Per Second)已经达到了6万次/秒,我们会进一步投入研发,提升公司内乃至业界内的技术影响力。
如何更好地连接用户和平台上的服务、商家、商品是一个需要长期和多方面投入解决的问题。我们未来可能会进行以下几个方向的迭代:
杨俭、宗宇、谢睿、武威,均来自美团平台/搜索与NLP部NLP部。