营养套餐搭配 搭配套餐代码( 五 )


  1. 搭配模板挖掘:通过商家历史订单挖掘出商家高销的类目层面的搭配关系,即搭配模板,例如“热菜+主食” 。
  2. 搜索剪枝:在搭配选菜时,依据搭配模板中的菜品类目,进行菜品的选择 。例如上述的例子,首先进行“热菜”的选择,然后进行“主食”的选择 。在选择的过程中,根据用户的实时需求,例如指定必选菜、指定价格、指定主食类型等约束条件,对整体的选择过程进行剪枝 。
  3. 筛选评估:在搭配完成后,对得到的候选搭配结果进行质量评估,这里基于性能考虑,使用树模型进行质量评估,筛选出Top N的搭配结果 。

营养套餐搭配 搭配套餐代码

文章插图
图8 实时套餐搭配和离线套餐搭配
4. 套餐质量评估 高销量的订单中也存在搭配质量稍低的套餐,加上模型泛化的精度问题,搭配模型很容易生成质量较差的搭配组合 。如下图9右侧,模型生成的后两个套餐搭配相对不是特别合理 。为进一步保证用户体验,我们建立了套餐搭配质量模型,对套餐的质量进行统一评估 。套餐质量分类模型将套餐搭配质量转化为一个分类问题 。因为套餐组合是有多个菜品组成的,所以我们基于菜品名称、标签等信息构造菜品的表示,然后通过Global-Attention来实现菜品间重要程度的考量,同时添加总商品个数、总份数等全局特征来表示整体搭配的信息,模型结构具体见下图9所示:

营养套餐搭配 搭配套餐代码

文章插图
图9 套餐质量分类
我们对套餐的搭配质量进行了细粒度的分档:极差、差、中、好 ,且四种类别存在有序关系(极差<差<中<好),对应模型有四个输出值,每一个表示该位为1的概率,例如“极差”表示为“1,0,0,0”, “差”表示为“1,1,0,0”,“中”表示为“1,1,1,0”,“好”表示为“1,1,1,1” 。模型的损失采用Pair Hinge Loss函数,避免前面节点为0后面节点为1的情况,保证模型的准确度 。套餐的搭配质量分值为四个输出节点的求和平均值,使得预测值更加可信 。模型结构同一般的分类模型大体一致,目标函数如下:

营养套餐搭配 搭配套餐代码

文章插图
图10 套餐质量分类
套餐质量模型的建设过程中,负例样本主要来自用户反馈的Bad Case,和通过人工构造不合理搭配模式版筛出的套餐 。这种方式存在的问题是:Bad Case和人工构造的搭配负样本有偏、多样性较差,且负样本同正样本的配比不容易调节 。
为此,我们引入一个预训练任务学习历史订单的搭配模式,为套餐搭配质量模型引入更多的搭配先验知识 。预训练过程如下图11所示,我们随机Mask已成单搭配组合中的一个菜品,然后训练Transformer模型还原被Mask掉的菜品 。在这个过程中,考虑一些次优套餐的合理性(例如:"宫保鸡丁+米饭+可乐",Mask掉"宫爆鸡丁",生成器生成出来的是“鱼香肉丝”,“鱼香肉丝+米饭+可乐”就可理解为一个次优套餐),我们在最后的损失函数添加预测菜品与目标菜品类别相似性的判别器来解决这类情况 。预训练得到的参数最终用来初始化套餐搭配质量分档模型,并基于少量的人工标注语料进行模型的调优 。

营养套餐搭配 搭配套餐代码

文章插图
图11 套餐质量分类
5. 套餐搭配的应用和未来展望 目前,外卖已打造了多款以套餐为核心供给的产品,“今日套餐推荐”帮助用户解决不知道吃什么、选购慢的问题,店铺页内的“满减神器”、“单品搭配推荐”解决用户凑单难、搭配难的问题 。为了解决了各业务场景下套餐搭配难题,套餐搭配算法针对覆盖度、搭配质量、搭配多样性进行了持续优化,为业务提供了重要的技术和数据支撑 。离线套餐搭配用于”满减神器“、”今日套餐推荐“等业务,显著提高了套餐商家的覆盖率,实时套餐搭配用于“菜品详情页套餐搭配”等业务,并取得较好的业务收益 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: