推荐套餐的推送方法、装置、电子设备及可读存储介质与流程

文档序号:19895493发布日期:2020-02-11 13:13阅读:204来源:国知局
推荐套餐的推送方法、装置、电子设备及可读存储介质与流程

本申请实施例涉及数据处理技术领域,尤其涉及一种推荐套餐的推送方法、装置、电子设备及可读存储介质。



背景技术:

随着互联网技术的发展和智能终端设备的普及,越来越多的线下商家入驻电商平台,以通过电商平台打通线下商家与消费者之间的信息交互渠道。其中,在食品外卖领域,消费者通过其终端设备上运行的应用软件浏览电商平台,根据电商平台中入驻商家所提供的电子菜单,选择合适的菜品组合成套餐并下单,从而完成线上点餐。

通常情况下,入驻商家为了提高其在电商平台中的竞争力,会尽可能地丰富其菜品种类,使消费者基于其电子菜单而实施更多样的选择搭配方案。然而,随着菜品种类的丰富,消费者选择、搭配多样性的增强,在刺激消费者消费的同时,却无形增加了消费者的选择难度,导致消费者在面临多种潜在的菜品搭配方案时难以快速做出选择。

为此,相关技术提供了一种菜品分类方法,该方法针对多个入驻商家中的每个入驻商家,将该入驻商家的多个菜品划分为多个类别,例如:荤菜、素菜、炒菜、炖菜、凉菜、卤菜、汤品、主食等等,旨在使消费者可以迅速锁定目标菜品类别,并在目标菜品类别下迅速选择合适的菜品。然而基于该方法,消费者仍然需要对菜品类别和每个菜品类别下的具体菜品的进行双重选择,该方法并不能从根本上解决菜品搭配困难的问题。



技术实现要素:

本申请实施例提供一种推荐套餐的推送方法、装置、电子设备及可读存储介质,旨在提高食品外卖电商平台的智能化水平,从而帮助消费者降低搭配菜品的难度。

本申请实施例第一方面提供了一种推荐套餐的推送方法,所述方法包括:

根据用户的输入信息,从多个商家中确定目标商家;

获得所述目标商家的多个候选菜品;

将所述多个候选菜品各自对应的菜品信息输入套餐生成模型,通过所述套餐生成模型的编码模块对每个菜品信息进行特征提取,获得该菜品信息对应的菜品特征,并通过所述编码模块对多个菜品特征进行编码,得到所述多个候选菜品对应的菜品总特征,通过所述套餐生成模型的解码模块对所述菜品总特征进行解码,得到推荐套餐,所述推荐套餐中包括至少一个候选菜品;

向用户推送所述推荐套餐。

本申请实施例第二方面提供一种推荐套餐的推送装置,所述装置包括:

目标商家确定模块,用于根据用户的输入信息,从多个商家中确定目标商家;

候选菜品获得模块,用于获得所述目标商家的多个候选菜品;

推荐套餐获得模块,用于将所述多个候选菜品各自对应的菜品信息输入套餐生成模型,通过所述套餐生成模型的编码模块对每个菜品信息进行特征提取,获得该菜品信息对应的菜品特征,并通过所述编码模块对多个菜品特征进行编码,得到所述多个候选菜品对应的菜品总特征,通过所述套餐生成模型的解码模块对所述菜品总特征进行解码,得到推荐套餐,所述推荐套餐中包括至少一个候选菜品;

推荐套餐推送模块,用于向用户推送所述推荐套餐。

本申请实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。

本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。

采用本申请实施例提供的推荐套餐的推送方法,根据用户的输入信息确定目标商家,将目标商家的多个候选菜品各自对应的菜品信息输入套餐生成模型;通过套餐生成模型的编码模块对菜品信息进行特征提取,并对提取的菜品特征进行编码,得到多个候选菜品对应的菜品总特征,再通过套餐生成模型的解码模块对菜品总特征进行解码,得到推荐套餐;最后将得到的推荐套餐推送给用户。如此,提高了食品外卖电商平台的智能化水平。并且在用户侧,当用户在输入信息后,用户能自动获得推荐套餐信息,从而降低其搭配菜品的难度,提高点餐效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例中推荐套餐的推送方法的流程图;

图2是本申请一实施例中套餐生成模型的结构示意图;

图3是本申请一实施例中输出推荐套餐的示意图;

图4是本申请一实施例中应用软件和服务端的交互示意图;

图5是本申请一实施例中训练套餐生成模型的训练流程图;

图6是本申请一实施例中输出目标套餐的示意图;

图7是本申请一实施例中推荐套餐的推送装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,均应属于本申请保护的范围。

在食品外卖领域,越来越多的线下商家入驻食品外卖电商平台,消费者(下文统称用户)通过其终端设备上运行的应用软件进入电商平台后,根据电商平台中入驻商家所提供的电子菜单,选择合适的菜品组合成套餐并下单,从而完成线上点餐操作。通常情况下,入驻商家为了提高其在电商平台中的竞争力,会尽可能地丰富其菜品种类,使用户基于其电子菜单而实施更多样的选择搭配方案。然而随着菜品种类的丰富,用户选择、搭配多样性的增强,在刺激用户消费的同时,却无形增加了用户的选择难度,导致用户在面临多种潜在的菜品搭配方案时难以快速做出选择。

为此,相关技术提供了一种菜品分类方法,该方法针对多个入驻商家中的每个入驻商家,将该商家的多个菜品划分为多个类别,例如:荤菜、素菜、炒菜、炖菜、凉菜、卤菜、汤品、主食等等,旨在使用户可以迅速锁定目标菜品类别,并在目标菜品类别下迅速选择合适的菜品。然而基于该方法,用户仍然需要对菜品类别和每个菜品类别下的具体菜品进行双重选择,该方法并不能从根本上解决菜品搭配困难的问题。

可见,目前的食品外卖电商平台的智能化水平较低,不能有效帮助用户降低搭配菜品的难度,难以有效提高用户的点餐效率。有鉴于此,本申请实施例提出:根据用户的输入信息确定目标商家,将目标商家的多个候选菜品各自对应的菜品信息输入套餐生成模型;通过套餐生成模型的编码模块对菜品信息进行特征提取,并对提取的菜品特征进行编码,得到多个候选菜品对应的菜品总特征,再通过套餐生成模型的解码模块对菜品总特征进行解码,得到推荐套餐;最后将得到的推荐套餐推送给用户。

参考图1,图1是本申请一实施例提出的推荐套餐的推送方法的流程图。如图4所示,该推送方法包括以下步骤:

步骤s110:根据用户的输入信息,从多个商家中确定目标商家。

本实施例中,用户的输入信息通常携带有目标商家的信息。例如当用户在食品外卖电商平台的主页点击某一商家,以进入该商家的页面时,伴随着用户的点击操作所输入的信息中,通常携带了该商家的信息,例如名称、编号、字符串等标识。如此,服务端可根据该用户的输入信息,从注册的多个商家中确定该用户目前正试图进入的商家,该商家即为所述目标商家。

又例如,在用户已经进入某一商家页面的情况下,该页面中存在套餐推荐按键,在用户点击该套餐推荐按键,以请求服务端向其推送套餐时,伴随着用户的点击操作所输入的信息中,也可以携带该商家的信息。如此,服务端可根据该用户的输入信息,从注册的多个商家中确定该用户当前所在的商家,该商家即为所述目标商家。

步骤s120:获得所述目标商家的多个候选菜品。

本实施例中,可以通过实时获取目标商家的电子菜单,并将该电子菜单中包括的菜品确定为多个候选菜品。或者,也可以从数据库中读取针对该目标商家预先记录的多个候选菜品信息。应当理解的,本申请对如何获得多个候选菜品不做限定。

其中,每个候选菜品携带有菜品信息。通常,一个候选菜品的菜品信息包括以下至少两者:菜品名称、菜品类别、菜品价格、菜品销量。其中,菜品的名称和类别通常为文字,因此菜品的名称和类别通常为文本信息,例如菜品名称为“西红柿炒蛋”、“玉米炖排骨”、“kungpaochicken”等等,例如菜品类别为“荤菜”、“素菜”、“炖菜”、“蛋类”、“鱼类”等等。而菜品的价格和销量通常为具体的数字,因此菜品的价格和销量通常为数字信息。

步骤s130:将所述多个候选菜品各自对应的菜品信息输入套餐生成模型,通过所述套餐生成模型的编码模块对每个菜品信息进行特征提取,获得该菜品信息对应的菜品特征,并通过所述编码模块对多个菜品特征进行编码,得到所述多个候选菜品对应的菜品总特征,通过所述套餐生成模型的解码模块对所述菜品总特征进行解码,得到推荐套餐,所述推荐套餐中包括至少一个候选菜品。

本实施例中,步骤s130所利用的套餐生成模型可以是通过下述包括步骤s510至步骤s550的训练流程,对第一预设模型训练后得到的套餐生成模型。步骤s130所利用的套餐生成模型也可以是通过其他训练方式,或者通过其他渠道所获得的套餐生成模型。

示例地,参考图2,图2是本申请一实施例提出的套餐生成模型的结构示意图。如图2所示,套餐生成模型包括编码模块和解码模块。其中,编码模块主要包括记忆子网络和特征提取子网络。该记忆子网络可选用循环神经网络rnn(recurrentneuralnetwork)、长短期记忆网络lstm(longshort-termmemory)、或者门控循环单元网络gru(gaterecurrentunit)。该特征提取子网络可选用卷积神经网络cnn(convolutionalneuralnetworks)。其中,解码模块也可选用循环神经网络rnn、长短期记忆网络lstm或门控循环单元网络gru等。需要说明的是,针对图2中示出的两个特征提取子网络,其本质是同一个特征提取子网络,该特征提取子网络依次针对多个菜品进行处理。

在所述步骤s130中,针对多个候选菜品中的一个候选菜品,考虑到该候选菜品的菜品信息中可能包含菜品名称和菜品类别等文本信息,因此可以首先从其菜品信息分类出含菜品名称和菜品类别,然后将菜品名称和菜品类别输入至图2所示的词向量转化模块embedding,从而将菜品名称和菜品类别分别转化为词向量。又考虑到地域、生活习惯、方言等因素对菜品名称命名的影响,不同商家对同一样本菜品的命名稍有差异,因此步骤s130在通过套餐生成模型的编码模块对该候选菜品的菜品信息进行特征提取时,可具体采用如下提取方式:

子步骤s130-1:通过所述特征提取子网络对所述菜品信息中的文本信息进行特征提取,得到该文本信息对应的文本特征。

子步骤s130-2:将所述文本特征和所述菜品信息中的数字信息进行拼接,得到所述菜品信息对应的菜品特征。

如图2所示,在子步骤s130-1中,具体将菜品名称的词向量输入特征提取子网络中,特征提取子网络针对输入的菜品名称的词向量,提取其能反应菜品本质的特征。通过特征提取子网络针对菜品名称的词向量进行特征提取,有利于消除因地域、生活习惯、方言等因素而导致的命名差异化对套餐推送准确性的影响,提高推荐套餐的合理性和适用性。此外,如图2所示,套餐生成模型的编码模块还可以包括池化层pooling。特征提取子网络针对菜品名称的词向量所提取的特征被输入该池化层pooling,经过池化层pooling的池化处理后,得到菜品名称的特征。需要说明的是,针对图2中示出的两个池化层pooling,其本质是同一个池化层pooling,该池化层pooling依次针对多个菜品进行处理。

如图2所示,在子步骤s130-2中,可以将该候选菜品的菜品名称的特征、菜品类别的词向量、菜品价格、以及菜品销量等拼接成一个更大的总特征,即获得所述菜品特征。

在上述步骤s130中,在获得菜品特征后,通过编码模块对多个菜品特征进行编码时,可具体采用如下编码方式:

子步骤s130-3:将所述多个菜品特征分别以不同的轮次,输入至所述记忆子网络,获得所述记忆子网络输出的所述菜品总特征。

示例地,如图2所示,可以在获得一个候选菜品的菜品特征后,将该候选菜品的菜品特征作为针对记忆子网络的一次输入,输入至记忆子网络。然后基于同样的方式,针对下一个候选菜品获得其菜品特征,再将该菜品特征作为针对记忆子网络的另一次输入,输入至记忆子网络。在将多个候选菜品各自的菜品特征依次输入记忆子网络后,记忆子网络完成对各候选菜品的编码,并输出所有候选菜品对应的一个菜品总特征。

在上述步骤s130中,通过套餐生成模型的解码模块对菜品总特征进行解码,得到推荐套餐时,可具体采用如下解码方式:

子步骤s130-4:将所述菜品总特征输入所述解码模块,获得所述解码模块输出的所述多个候选菜品各自的选中概率以及第一终止位的选中概率,所述第一终止位表征推荐套餐已生成。

子步骤s130-5:根据所述多个候选菜品各自的选中概率以及第一终止位的选中概率,选择概率较大的n个选中概率;其中,n为大于等于1的整数。

子步骤s130-6:针对n个选中概率中的每一个选中概率,确定该选中概率对应的菜品为目标候选菜品,并将所述目标候选菜品的特征输入所述解码模块。

子步骤s130-7:获得所述解码模块输出的在已选中所述目标候选菜品的情况下,所述第一终止位的选中概率以及所述多个候选菜品各自的选中概率,并返回步骤:根据所述多个候选菜品各自的选中概率以及第一终止位的选中概率,选择概率较大的n个选中概率;针对n个选中概率中的每一个选中概率,确定该选中概率对应的菜品为目标候选菜品。

子步骤s130-8:在每次选择的n个选中概率包含对应所述第一终止位的选中概率时,将在选择所述第一终止位前已选择的各个选中概率对应的菜品进行组合,得到一份推荐套餐。

示例地,参考图3,图3是本申请一实施例提出的输出推荐套餐的示意图。如图3所示,解码模块在接收到编码模块输入的菜品总特征(即编码)后,输出第一组选中概率,包括:多个候选菜品各自的选中概率(图3中每个候选菜品以圆圈表示)、以及第一终止位的选中概率(图3中第一终止位以方框表示)。

如图3所示,以n等于2为例,根据多个候选菜品各自的选中概率以及第一终止位的选中概率,从其中选择概率较大的2个选中概率。

如图3所示,在经过第一轮选择后,候选菜品1和候选菜品4作为被选中的目标候选菜品,其各自的特征被输入至该解码模块(为了简化附图,图3中未示出将候选菜品1和候选菜品4各自的特征被输入至解码模块的过程)。解码模块基于输入的特征,输出左右两个第二组选中概率,每个第二组选中概率包括:多个候选菜品各自的选中概率(图3中每个候选菜品以圆圈表示)、以及第一终止位的选中概率(图3中第一终止位以方框表示)。

如图3所示,基于同样的方式,针对两个第二组选中概率进行选择。在经过第二轮选择后,左侧的第二组选中概率中候选菜品2被选中,右侧的第二组选中概率中同样是候选菜品2被选中。两个候选菜品2作为被选中的目标候选菜品,其各自的特征被输入至该解码模块。解码模块基于输入的特征,输出左右两个第三组选中概率,每个第三组选中概率包括:多个候选菜品各自的选中概率(图3中每个候选菜品以圆圈表示)、以及第一终止位的选中概率(图3中第一终止位以方框表示)。

如图3所示,基于同样的方式,针对两个第三组选中概率进行选择。在经过第三轮选择后,左侧的第三组选中概率中第一终止位被选中,右侧的第三组选中概率中候选菜品3被选中。针对被选中的第一终止位,利用在选中其之前已经被选择的候选菜品1和候选菜品2组合成一份推荐套餐。针对被选中的候选菜品3,将其作为被选中的目标候选菜品,并将其特征输入至该解码模块。解码模块基于输入的特征,输出一个第四组选中概率,该第四组选中概率包括:多个候选菜品各自的选中概率(图3中每个候选菜品以圆圈表示)、以及第一终止位的选中概率(图3中第一终止位以方框表示)。

如图3所示,基于同样的方式,针对该第四组选中概率进行选择。在经过第四轮选择后,该第四组选中概率中第一终止位被选中。针对被选中的第一终止位,利用在选中其之前已经被选择的候选菜品4、候选菜品2、以及候选菜品3组合成另一份推荐套餐。

如此,总共得到两份推荐套餐,套餐生成模型将这两份推荐套餐输出。应当理解的,上述包括子步骤s130-4至子步骤s130-8的解码方式,仅作为本申请的多种实施方式中的一种示例,不用于限定本申请。例如,为了获得推荐套餐,还可以采用如图6所示的方式。针对图6的说明,请参考下文所述内容。

步骤s140:向用户推送所述推荐套餐。

示例地,服务端可以将推荐套餐的信息返回给用户终端上所运行的软件,通过该软件向用户展示该推荐套餐。展示的方式包括但不限于:文字、图像和/或动画。

通过执行上述包括步骤s110至步骤s140的推荐套餐的推送方法,提高了食品外卖电商平台的智能化水平。并且在用户侧,当用户在输入信息后,用户能自动获得推荐套餐信息,从而降低其搭配菜品的难度,提高点餐效率。

此外,考虑到不同用户、或者同一用户在不同时间所期望的推荐套餐类型存在差异,为了满足用户的个性化需求,本申请实施例还可以包括以下步骤:

向用户展示多个推荐类型;获得用户输入的目标推荐类型的信息,所述目标推荐类型是所述多个推荐类型中的一个。然后在上述s130中,在将多个候选菜品各自对应的菜品信息输入套餐生成模型时,具体地,针对用户输入的目标推荐类型的信息,将所述多个候选菜品各自对应的菜品信息输入所述套餐生成模型,以通过所述套餐生成模型生成与所述目标推荐类型对应的套餐。

示例地,参考图4,图4是本申请一实施例提出的应用软件和服务端的交互示意图。如图4所示,应用软件用户界面向用户展示商家a的多个推荐类型,例如“清淡口味”、“荤素搭配”、“满减优惠”、“热销套餐”等等。相应地,服务端至少包括四个套餐生成模型,四个套餐生成模型分别用于生成上述四种推荐套餐。

示例地,当用户在应用软件用户界面上点选“荤素搭配”这一推荐类型后,应用软件获得用户输入的目标推荐类型的信息,即是说获得“荤素搭配”这一推荐类型信息。应用软件将“荤素搭配”这一推荐类型信息提交给服务端。服务端根据该信息,将商家a的多个候选菜品各自对应的菜品信息输入套餐生成模型2。其中,套餐生成模型2用于生成“荤素搭配”类型的推荐套餐。

或者示例地,当用户在应用软件用户界面上点选“清淡口味”这一推荐类型后,应用软件获得用户输入的目标推荐类型的信息,即是说获得“清淡口味”这一推荐类型信息。应用软件将“清淡口味”这一推荐类型信息提交给服务端。服务端根据该信息,将商家a的多个候选菜品各自对应的菜品信息输入套餐生成模型1。其中,套餐生成模型1用于生成“清淡口味”类型的推荐套餐。

为了更智能地实施本申请实施例提出的上述推送方法,在实施上述方法之前,可以预先构建第一预设模型,并针对该第一预设模型搜集训练样本,然后基于所搜集的训练样本对第一预设模型进行训练,将经过训练的第一预设模型作为套餐生成模型。该套餐生成模型可以作为一种可选手段,用于执行本申请实施例提供的上述推送方法中的部分步骤。

参考图5,图5是本申请一实施例提出的训练套餐生成模型的训练流程图。如图5所示,该训练流程包括以下步骤:

步骤s510:将多个样本菜品的菜品特征输入第一预设模型。

示例地,第一预设模型的结构可选用图2所示的模型结构。即是说,第一预设模型也包括编码模块和解码模块。其中,编码模块主要包括记忆子网络和特征提取子网络。该记忆子网络可选用循环神经网络rnn(recurrentneuralnetwork)、长短期记忆网络lstm(longshort-termmemory)、或者门控循环单元网络gru(gaterecurrentunit)。该特征提取子网络可选用卷积神经网络cnn(convolutionalneuralnetworks)。其中,解码模块也可选用循环神经网络rnn、长短期记忆网络lstm或门控循环单元网络gru等。需要说明的是,针对图2中示出的两个特征提取子网络,其本质是同一个特征提取子网络,该特征提取子网络依次针对多个菜品进行处理。

本实施例中,多个样本菜品可来自于一个商家的电子菜单,每个样本菜品具有属性信息,一个样本菜品的属性信息包括以下至少两者:样本菜品名称、样本菜品类别、样本菜品价格、样本菜品销量。其中,样本菜品的名称和类别通常为文字,因此样本菜品的名称和类别通常为文本信息,例如样本菜品名称为“西红柿炒蛋”、“玉米炖排骨”、“kungpaochicken”等等,例如样本菜品类别为“荤菜”、“素菜”、“炖菜”、“蛋类”、“鱼类”等等。而样本菜品的价格和销量通常为具体的数字,因此样本菜品的价格和销量通常为数字信息。

本实施例中,可以针对多个样本菜品中的每个样本菜品,对该样本菜品的属性信息进行分类。示例地,所述分类是指:从该样本菜品的原始信息中分类出样本菜品名称、样本菜品类别、样本菜品价格、样本菜品销量等属性信息。然后可以将该样本菜品的分类后的属性信息作为该样本菜品的特征。如此,在上述步骤s510中,将样本菜品的菜品特征输入第一预设模型,也即是:将分类后的属性信息输入第一预设模型。

如图2所示,对于一个样本菜品的样本菜品名称和样本菜品类别等文本类信息,可以在输入第一预设模型之前,利用词向量转化模块embedding将样本菜品名称和样本菜品类别分别转化为词向量。又考虑到地域、生活习惯、方言等因素对菜品名称命名的影响,不同商家对同一样本菜品的命名稍有差异,因此针对样本菜品名称的词向量,可利用图2所示的特征提取子网络对其进行特征提取。特征提取子网络针对输入的样本菜品名称的词向量,提取其能反应菜品本质的特征。例如针对“番茄煎蛋汤”和“大番茄蛋汤”这两个样本菜品名称的词向量,特征提取子网络提取出的两个特征是相互近似的两个特征。

此外,如图2所示,编码模块还可以包括池化层pooling。特征提取子网络针对样本菜品名称的词向量所提取的特征被输入该池化层pooling,经过池化层pooling的池化处理后,得到样本菜品名称的特征。如此,如图2所示,得到一个样本菜品的样本菜品名称的特征、以及样本菜品类别的词向量,然后可以将该样本菜品的样本菜品名称的特征、样本菜品类别的词向量、样本菜品价格、以及样本菜品销量等拼接成一个更大的总特征,再将该总特征作为针对记忆子网络的一次输入,输入至记忆子网络。需要说明的是,针对图2中示出的两个池化层pooling,其本质是同一个池化层pooling,该池化层pooling依次针对多个菜品进行处理。

如图2所示,基于同样的方式,针对下一个样本菜品获得其总特征,再将该总特征作为针对记忆子网络的另一次输入,输入至记忆子网络。在将多个样本菜品各自的总特征依次输入记忆子网络后,记忆子网络完成对各样本菜品的编码。

步骤s520:获得所述第一预设模型输出的目标套餐,所述目标套餐包含所述多个样本菜品中的至少一个样本菜品。

本实施例中,第一预设模型从上述多个样本菜品中确定至少一个样本菜品,组成目标套餐并输出。

为了获得目标套餐,本申请实施例提出一种获得目标套餐的具体方式,该方式包括以下子步骤:

步骤s520-1:获得所述第一预设模型输出的所述多个样本菜品各自的选中概率以及第二终止位的选中概率,所述第二终止位表征所述目标套餐已生成。

步骤s520-2:根据所述多个样本菜品各自的选中概率以及第二终止位的选中概率,从所述多个样本菜品中选中目标样本菜品作为所述目标套餐包含的菜品,或,选中所述第二终止位作为所述目标套餐。

步骤s520-3:在选中所述目标样本菜品的情况下,将所述目标样本菜品的特征输入所述第一预设模型,并获得所述第一预设模型输出的在已选中所述目标样本菜品的情况下,所述第二终止位的选中概率以及所述多个样本菜品各自的选中概率,并返回步骤:根据所述多个样本菜品各自的选中概率以及第二终止位的选中概率,从所述多个样本菜品中选中目标样本菜品作为所述目标套餐包含的菜品,或,选中所述第二终止位作为所述目标套餐。

步骤s520-4:在每次选中所述第二终止位时,将已选中的各个样本菜品的组合确定为所述目标套餐并输出。

示例地,参考图6,图6是本申请一实施例提出的输出目标套餐的示意图。如图6所示,解码模块在接收到编码模块输入的编码后,输出第一组选中概率,包括:多个样本菜品各自的选中概率(图6中每个样本菜品以圆圈表示)、以及第二终止位的选中概率(图6中第二终止位以方框表示)。

如图6所示,在根据多个样本菜品各自的选中概率以及第二终止位的选中概率,对多个样本菜品以及第二终止位进行选择的时候,可以将其中概率最大的一个选中。或者,以每个候选者对应的选中概率来选择该候选者,例如图6中解码模块输出的第一组选中概率中,样本菜品1的选中概率为0.62,第二终止位的选中概率为0.05,因此样本菜品1在该轮选择中被选中的概率为0.62,而第二终止位在该轮选择中被选中的概率为0.05。

如图6所示,在经过第一轮选择后,样本菜品1作为被选中的目标样本菜品,其特征被输入至该解码模块。解码模块基于输入的样本菜品1的特征,输出第二组选中概率,包括:多个样本菜品各自的选中概率(图6中每个样本菜品以圆圈表示)、以及第二终止位的选中概率(图6中第二终止位以方框表示)。

如图6所示,基于同样的方式,针对第二组选中概率进行选择。在经过第二轮选择后,样本菜品3作为被选中的目标样本菜品,其特征被输入至该解码模块。解码模块基于输入的样本菜品3的特征,输出第三组选中概率,包括:多个样本菜品各自的选中概率(图6中每个样本菜品以圆圈表示)、以及第二终止位的选中概率(图6中第二终止位以方框表示)。

如图6所示,基于同样的方式,针对第三组选中概率进行选择。在经过第三轮选择后,第二终止位被选中。如此,利用在选中第二终止位之前已经被选择的样本菜品1和样本菜品3组合成目标套餐,并输出。

应当理解的,上述包括子步骤s120-1至子步骤s120-4的获得目标套餐的具体方式,仅作为本申请的多种实施方式中的一种示例,不用于限定本申请。例如,为了获得目标套餐,还可以采用如图3所示的获得方式。针对图3的说明,请参考上文所述内容。

步骤s530:确定所述目标套餐的反馈值,该目标套餐的反馈值表征该目标套餐与期望套餐的匹配程度。

本实施例中,一种可能的情况是:所述反馈值与所述匹配程度呈正相关。换言之,目标套餐与期望套餐的匹配程度越高,该目标套餐的反馈值越大。另一种可能的情况是:所述反馈值与所述匹配程度呈负相关。换言之,目标套餐与期望套餐的匹配程度越高,该目标套餐的反馈值越小。下文所述内容均以反馈值与匹配程度呈正相关为例。

本实施例中,确定目标套餐的反馈值的一种具体方式可以是:将所述目标套餐输入所述反馈函数,并将所述反馈函数的输出确定为所述目标套餐的反馈值。

其中,模型训练人员可根据不同的训练目标,选择与训练目标对应的反馈函数。例如,如果针对第一预设模型的训练目标是:训练一个用于推荐荤素搭配套餐的套餐生成模型。基于该训练目标,对应的反馈函数应具有如下特性:当一个同时具有荤菜和素菜的目标套餐输入时,输出一个较高的反馈值;当一个仅具有荤菜、或者仅具有素菜的目标套餐输入时,输出一个较低的反馈值。

又例如,如果针对第一预设模型的训练目标是:训练一个用于推荐具有较高转化率的套餐的套餐生成模型。基于该训练目标,对应的反馈函数应具有如下特性:当一个转化率较高的目标套餐输入时,输出一个较高的反馈值;当一个转化率较低的目标套餐输入时,输出一个较低的反馈值。其中,转化率是指套餐的历史下单率,换言之,转化率可以反映套餐的热销程度,或者可以反映用户针对该套餐再次下单的可能性。

为了向用户提供更多的选择,可以预设多个第一预设模型,在针对不同第一预设模型进行训练时,采用不同类型的反馈函数。如此,在训练结束后,可以获得多个套餐生成模型,多个套餐生成模型生成的套餐类型互不相同。例如预先设立四个第一预设模型,在针对不同第一预设模型进行训练时,采用不同类型的反馈函数。如此,在训练结束后,获得图4所示的四个套餐生成模型。

由于反馈函数不与具体的商家绑定,因此基于反馈函数确定反馈值,并根据该反馈值执行后述的模型更新步骤,可以消除套餐优劣评价在商家维度的偏差,提高最终获得的套餐生成模型的泛化性能。

此外,本申请实施例提出一种获得反馈函数的具体方式:获得多个样本套餐,每个所述样本套餐携带预先标记的反馈值,所述样本套餐携带的反馈值表征该样本套餐与所述期望套餐的匹配程度;以多个所述样本套餐为输入,对第二预设模型进行训练,并将训练结束时的第二预设模型确定为反馈函数。

沿用上述示例,如果针对第一预设模型的训练目标是:训练一个用于推荐具有较高转化率的套餐的套餐生成模型。则可以根据大量用户的浏览日志和下单日志,确定多个样本套餐。然后针对每个样本套餐,确定该样本套餐的转化率;并将该样本套餐的转化率标记为该样本套餐携带的反馈值。其中,转化率可以由用户针对样本套餐的下单频率所表示。例如某一商家的电子菜单在最近一个月内总共被浏览了20000次,其中由菜品5、菜品8和菜品16所组成的样本套餐被下单了124次,则该样本套餐的下单频率为124/20000,因此该样本套餐的转化率等于124/20000。此外,转化率还可以直接由用户针对样本套餐的下单次数所表示,例如某一商家的电子菜单中,由菜品5、菜品8和菜品16所组成的样本套餐在最近一个月内总共被下单了124次,则该样本套餐的转化率等于124。

在将携带有转化率的样本套餐输入第二预设模型后,第二预设模型输出针对该样本套餐的预测转化率。如此,可以根据该样本套餐携带的转化率、以及该预测转化率,确定损失值,并基于该损失值对第二预设模型进行更新。在多次更新该第二预设模型后,可以将最终的第二预设模型作为反馈函数。在获得反馈函数后,可以利用该反馈函数确定目标套餐的反馈值,即针对目标套餐预测其转化率。

步骤s540:根据所述目标套餐的反馈值,对所述第一预设模型进行更新。

本实施例中,在反馈值与匹配程度呈正相关的情况下,如果反馈值越大,则说明第一预设模型输出的目标套餐与期望套餐之间的匹配程度越大,相应地,第一预设模型与训练人员所期望的套餐生成模型越接近。因此可根据目标套餐的反馈值,基于策略梯度的训练方式对第一预设模型进行更新。

步骤s550:以更新后的模型作为所述第一预设模型,并返回步骤:将多个样本菜品各自的特征输入第一预设模型,直至所述第一预设模型输出的目标套餐的反馈值满足预设条件时,结束训练,以获得套餐生成模型。

换言之,在经过上述步骤s540后,以更新后的模型重新作为第一预设模型,并循环执行上述步骤s510至步骤s540。在步骤s550中,当第一预设模型输出的目标套餐的反馈值满足预设条件时,说明该第一预设模型已经接近或者满足训练人员的训练目标,因此可以结束训练,并将完成训练的第一预设模型作为套餐生成模型。

其中示例地,所述预设条件可以是:第一预设模型在连续n轮训练中输出的n个反馈值均大于第一预设阈值,其中n为预设的数值,例如100。或者,第一预设模型在连续n轮训练中输出的n个反馈值中,存在m(m小于或等于n)个大于第一预设阈值的反馈值,其中m/n大于第二预设阈值。

至此,通过执行上述包括步骤s510至步骤s550的训练流程,获得了套餐生成模型。如上所述,针对一个第一预设模型执行上述训练流程,获得一个套餐生成模型。针对多个第一预设模型执行上述训练流程,并且在针对不同的第一预设模型进行训练时,采用不同类型的反馈函数。如此,可以获得多个套餐生成模型,多个套餐生成模型生成的套餐类型互不相同。这些套餐生成模型可以作为一种可选手段,用于执行本申请实施例提供的上述推送方法中的部分步骤。

应当理解的,训练结束时所获得的套餐生成模型的基本结构与第一预设模型的基本结构相同。套餐生成模型与第一预设模型的不同之处在于,结构中的模型参数不同。

基于同一发明构思,本申请一实施例提供一种推荐套餐的推送装置。参考图7,图7是本申请一实施例提供的推荐套餐的推送装置的示意图。如图7所示,该装置包括:

目标商家确定模块71,用于根据用户的输入信息,从多个商家中确定目标商家。

候选菜品获得模块72,用于获得所述目标商家的多个候选菜品。

推荐套餐获得模块73,用于将所述多个候选菜品各自对应的菜品信息输入套餐生成模型,通过所述套餐生成模型的编码模块对每个菜品信息进行特征提取,获得该菜品信息对应的菜品特征,并通过所述编码模块对多个菜品特征进行编码,得到所述多个候选菜品对应的菜品总特征,通过所述套餐生成模型的解码模块对所述菜品总特征进行解码,得到推荐套餐,所述推荐套餐中包括至少一个候选菜品。

推荐套餐推送模块74,用于向用户推送所述推荐套餐。

可选地,所述装置还包括:

推荐类型展示模块,用于向用户展示多个推荐类型。

目标推荐类型获得模块,用于获得用户输入的目标推荐类型的信息,所述目标推荐类型是所述多个推荐类型中的一个。

所述推荐套餐获得模块包括:

套餐生成子模块,用于针对用户输入的目标推荐类型的信息,将所述多个候选菜品各自对应的菜品信息输入所述套餐生成模型,以通过所述套餐生成模型生成与所述目标推荐类型对应的套餐。

可选地,所述套餐生成模型中的编码模块包括特征提取子网络;所述推荐套餐获得模块包括:

特征提取子模块,用于通过所述特征提取子网络对所述菜品信息中的文本信息进行特征提取,得到该文本信息对应的文本特征。

拼接子模块,用于将所述文本特征和所述菜品信息中的数字信息进行拼接,得到所述菜品信息对应的菜品特征。

可选地,所述套餐生成模型中的编码模块包括记忆子网络;所述推荐套餐获得模块包括:

菜品特征输入子模块,用于将所述多个菜品特征分别以不同的轮次,输入至所述记忆子网络,获得所述记忆子网络输出的所述菜品总特征。

可选地,所述推荐套餐获得模块包括:

菜品总特征输入子模块,用于将所述菜品总特征输入所述解码模块,获得所述解码模块输出的所述多个候选菜品各自的选中概率以及第一终止位的选中概率,所述第一终止位表征推荐套餐已生成。

概率选择子模块,用于根据所述多个候选菜品各自的选中概率以及第一终止位的选中概率,选择概率较大的n个选中概率;其中,n为大于等于1的整数。

目标候选菜品特征输入子模块,用于针对n个选中概率中的每一个选中概率,确定该选中概率对应的菜品为目标候选菜品,并将所述目标候选菜品的特征输入所述解码模块。

第一循环子模块,用于获得所述解码模块输出的在已选中所述目标候选菜品的情况下,所述第一终止位的选中概率以及所述多个候选菜品各自的选中概率,并返回步骤:根据所述多个候选菜品各自的选中概率以及第一终止位的选中概率,选择概率较大的n个选中概率;针对n个选中概率中的每一个选中概率,确定该选中概率对应的菜品为目标候选菜品。

菜品组合子模块,用于在每次选择的n个选中概率包含对应所述第一终止位的选中概率时,将在选择所述第一终止位前已选择的各个选中概率对应的菜品进行组合,得到一份推荐套餐。

可选地,所述装置还包括:

训练模块,用于训练套餐生成模型。

所述训练模块包括:

样本菜品特征输入子模块,用于将多个样本菜品的菜品特征输入第一预设模型。

目标套餐获得子模块,用于获得所述第一预设模型输出的目标套餐,所述目标套餐包含所述多个样本菜品中的至少一个样本菜品。

反馈值确定子模块,用于确定所述目标套餐的反馈值,该目标套餐的反馈值表征该目标套餐与期望套餐的匹配程度。

模型更新子模块,用于根据所述目标套餐的反馈值,对所述第一预设模型进行更新。

第二循环子模块,用于以更新后的模型作为所述第一预设模型,并返回步骤:将多个样本菜品各自的特征输入第一预设模型,直至所述第一预设模型输出的目标套餐的反馈值满足预设条件时,结束训练,以获得套餐生成模型。

可选地,所述装置还包括:

样本套餐获得模块,用于获得多个样本套餐,每个所述样本套餐携带预先标记的反馈值,所述样本套餐携带的反馈值表征该样本套餐与所述期望套餐的匹配程度。

反馈函数训练模块,用于以多个所述样本套餐为输入,对第二预设模型进行训练,并将训练结束时的第二预设模型确定为反馈函数。

所述反馈值确定子模块包括:

目标套餐输入子单元,用于将所述目标套餐输入所述反馈函数,并将所述反馈函数的输出确定为所述目标套餐的反馈值。

可选地,所述装置还包括:

转化率确定模块,用于针对每个所述样本套餐,确定该样本套餐的转化率。

转化率标记模块,用于将该样本套餐的转化率标记为该样本套餐携带的反馈值。

可选地,所述目标套餐获得子模块包括:

概率获得子单元,用于获得所述第一预设模型输出的所述多个样本菜品各自的选中概率以及第二终止位的选中概率,所述第二终止位表征所述目标套餐已生成。

选择子单元,用于根据所述多个样本菜品各自的选中概率以及第二终止位的选中概率,从所述多个样本菜品中选中目标样本菜品作为所述目标套餐包含的菜品,或,选中所述第二终止位作为所述目标套餐。

循环子单元,用于在选中所述目标样本菜品的情况下,将所述目标样本菜品的特征输入所述第一预设模型,并获得所述第一预设模型输出的在已选中所述目标样本菜品的情况下,所述第二终止位的选中概率以及所述多个样本菜品各自的选中概率,并返回步骤:根据所述多个样本菜品各自的选中概率以及第二终止位的选中概率,从所述多个样本菜品中选中目标样本菜品作为所述目标套餐包含的菜品,或,选中所述第二终止位作为所述目标套餐。

样本菜品组合子单元,用于在每次选中所述第二终止位时,将已选中的各个样本菜品的组合确定为所述目标套餐并输出。

可选地,所述样本菜品特征输入子模块包括:

属性信息分类提取子单元,用于对所述多个样本菜品中每个样本菜品的属性信息进行分类,一个样本菜品的属性信息包括以下至少两者:样本菜品名称、样本菜品类别、样本菜品价格、样本菜品销量。

属性信息输入子单元,用于将分类后的属性信息输入所述第一预设模型。

基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种推荐套餐的推送方法、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1