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



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

文章插图
图6 套餐搭配价格约束
基于Attention网络的套餐搭配模型
基于LSTM网络的商家内菜品特征提取面临的问题有:第一,商家菜单的菜品本身无序,而RNN网络依赖序列进行建模 。第二,菜品之间可能存在长距离的语义依赖,例如,菜单内是否有“米饭”、“馒头”等菜品会影响对于“宫保鸡丁”菜品的搭配 。
为了更好的对无序菜单和菜品之间依赖信息进行表征,我们尝试了基于Attention结构的Encoder-Decoder模型 。Encoder部分采用层次化Attention结构提取菜品的语义信息,包含底层单菜品级的Attention和菜品之间的Attention两部分 。对于单菜品级的Attention,我们在字维度采用Multi-Head Attention结构得到菜品名称的语义向量,菜品标签同样采用Multi-Head Attention 得到菜品标签语义向量,对于菜品的交易属性,我们采用多层全连接网络提取交易特征的语义向量 。
最后,菜品名称语义向量、菜品标签语义向量、交易特征语义向量拼接后经过全连接层+层归一化得到菜品语义向量 。对于菜品之间的Attention层,我们对该店的菜品语义向量列表采用多层Multi-Head Attention得到该店的菜单级别语义向量 。模型Decoder部分同样采用Multi-Head Attention进行解码,输入信息包括用户偏好信息、历史时刻的解码输入、价格约束等上下文信息,模型在每步输出商家菜单中的菜品被选择的概率分布 。Decoder过程中我们对用户偏好信息同商家菜单级别的语义向量进行Multi-Head Attention,在套餐搭配过程中考虑用户的用餐偏好 。

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

文章插图
图7 基于Attention的套餐搭配网络
3.2.3 套餐搭配模型分析 我们认为商家高质量的搭配可以从订单的销量体现,一种评估方法即是评估模型输出的套餐对商家真实高销量套餐的覆盖 。通过离线和在线评估,我们发现该模型可以拟合出商家高销量套餐 。在人工评估部分,我们把算法搭配的套餐和真实成单订单进行混合并让人工进行区分,发现人工无法分辨模型搭配的订单和真实成单订单的差异 。同时,该模型具备良好的泛化能力,显著提升了套餐对商家和特定业务场景的覆盖度 。
我们对模型输出的菜品表征向量进行了分析,以了解模型的套餐搭配模式 。利用TSNE对向量进行降维和聚类,通过聚类图观察发现“主食”、“主菜”、“小食”类的菜品各自聚集在一起,可以看出模型识别了菜品的“主食”、“菜品”、"小食"等品类语义属性,并参考此语义进行套餐搭配 。

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

文章插图
3.3 实时套餐搭配模型 利用离线搭配产生套餐候选的方案可以满足推荐型业务的需求,但对于一些搭配型的业务场景仍然覆盖不足,例如,目前离线套餐对菜品的覆盖度较低,即对于菜品详情页等应用只保证部分PV的搭配模块露出 。
一种解决方案是通过离线搭配提升套餐对美食商品的覆盖,但该方案的存储成本较高,为此我们采用实时套餐搭配方案 。实时生成方案的难点在于既要保证套餐质量,又要满足各种搭配条件,最重要的还要保证实时性 。最初我们把离线搭配模型应用于线上实时搭配,发现在性能方面存在瓶颈 。因此,我们对离线模型进行了精简,精简的思路是将选菜的过程精简为选择菜品类目的过程,将菜品维度的搭配关系精简为菜品类目的搭配关系,实现整个解空间的缩小 。如下图8所示,具体流程如下:


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

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