针对多任务推荐系统的少样本学习的制作方法

文档序号:31661514发布日期:2022-09-27 23:09阅读:46来源:国知局
针对多任务推荐系统的少样本学习的制作方法
针对多任务推荐系统的少样本学习
1.交叉引用
2.本技术要求2021年3月22日提交的申请号为63/164152的美国临时申请的优先权,该公开通过引用而被明确地整体并入本文。


背景技术:

3.企业在可以包括多个企业和客户的网络的连接环境中执行操作。例如,在其它上下文中,企业可以在企业到企业(b2b)上下文中操作,其中企业向其它企业提供商品和/或服务。企业利用技术来支持正在进行的企业操作。示例技术包括计算机实现的推荐方系统(也称为推荐系统),该推荐方系统摄入输入数据并且提供表示一个或多个推荐的输出数据。例如,企业可以利用推荐方系统来标识可能与其操作相关的产品和/或服务(例如,企业可以从b2b上下文中的其他企业采购的产品/服务)。传统上,推荐方系统被提供为机器学习(ml)系统,该机器学习系统通过一个或多个ml模型来处理输入数据,以提供表示一个或多个推荐的输出数据。然而,传统的推荐方系统存在技术上的缺陷。
4.例如,推荐系统不支持针对企业的自动简档创建,相反依赖于静态的并且不全面的第三方数据源。这导致ml模型性能的准确度降低,从而导致次优的推荐。作为另一示例,存在数据稀疏性问题。例如,传统的推荐方系统依赖于表示产品与客户(即,客户购买的产品)之间的历史交互的大量训练数据,但是这样的训练数据可能是不足的、不完整的和/或有噪声的。由于不完整和有噪声的训练数据,传统的ml模型可能容易地过拟合,并且得到的预测是次优的。这突出了所谓的冷启动问题,意味着推荐方系统不能针对其还没有收集足够的训练数据的客户或产品来得出任何推断。此外,b2b推荐场景通常受到与技术的因素、组织的因素、和市场影响的因素有关的变化的上下文的影响,这些影响因素可能显著影响预测。传统推荐方系统的ml模型不包含动态上下文,使ml模型次优。作为又一示例,在b2b上下文中,要求是非常动态的(例如,品牌推广、产品交叉/追加销售等),并且传统的推荐方系统没有能力或具有有限的能力来基于不同的优化目标和场景(例如,边际贡献、覆盖范围、收入等)和/或其组合提供推荐。


技术实现要素:

5.本公开的实现通常针对能够快速集成推荐解决方案的推荐方系统。更具体地,本公开的实现针对推荐方系统,该推荐方系统启用web爬虫和第三方数据连接方的利用、执行机器学习(ml)模型训练、以及针对企业对企业(b2b)上下文中的各种推荐用例来构建ml或深度学习(dl)模型。
6.在一些实现中,动作包括接收元组集,每个元组包括实体和来自产品集的产品,针对每个元组:通过嵌入模块生成作为对推荐方网络的输入的总隐式向量,总隐式向量基于结构向量、文本向量和类别向量而被生成,结构向量、文本向量和类别向量各自基于相应的产品的产品简档和实体的实体简档而被生成,由上下文集成模块基于表示实体的上下文的上下文向量来生成隐式上下文向量,并且将总隐式向量和隐式上下文向量输入到推荐方网
络,推荐方网络通过使用多任务损失函数的少样本学习而被训练,并且通过推荐方网络生成包括特定于实体的推荐集的预测。此方面的其他实现包括被配置为执行在计算机存储设备上所编码的方法的动作的相应系统、装置和计算机程序。
7.这些和其他实现可以各自可选地包括以下特征中的一个或多个特征:推荐方网络包括多个输出层,每个输出层对应于相应的任务并且包括在少样本学习期间针对相应的任务而被优化的参数;多任务损失函数包括损失函数集,每个损失函数对应于任务集中的相应的任务;推荐方网络包括串接层,该串接层用于串接总隐式向量和隐式上下文向量,以提供用于通过中间层集来处理的所串接的向量;嵌入模块包括结构嵌入模块,该结构嵌入模块通过处理产品简档的结构数据和实体简档的结构数据来针对相应的元组生成结构向量;嵌入模块包括文本嵌入模块,该文本嵌入模块通过处理产品简档的文本数据和实体简档的文本数据来针对相应的元组生成文本向量;嵌入模块包括编码模块,该编码模块通过处理产品简档的类别数据和实体简档的类别数据来针对相应的元组生成类别向量;生成隐式上下文向量包括:将上下文向量输入到自动编码器,从自动编码器的中间层输出隐式上下文向量;隐式上下文向量比上下文向量具有更少的维度;并且总隐式向量还基于作为实体的基线表示而被提供的偏移向量。
8.应当了解,根据本公开的方法可以包括本文所述的方面和特征的任何组合。即,例如,根据本公开的装置和方法不限于本文具体所描述的方面和特征的组合,而是还可以包括所提供的方面和特征的任何组合。
9.本公开的一个或多个实现的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本公开的其他特征和优点将是明显的。
附图说明
10.图1描绘了可以执行本公开的实现的示例系统。
11.图2a描绘了包括根据本公开的实现的推荐方系统的示例概念架构。
12.图2b描绘了根据本公开的实现的少样本学习的概念表示。
13.图3描绘了根据本公开的实现的表示多模态嵌入的示例概念架构。
14.图4描绘了根据本公开的实现方式的用于上下文集成的隐式上下文向量的选择的示例表示。
15.图5描绘了根据本公开的实现的多任务推荐方网络的概念表示。
16.图6描绘了根据本公开的实现的推荐工作流的表示。
17.图7描绘了根据本公开的实现的示例过程。
18.在各种附图中相同的附图标记和标号表示相同的元素。
具体实施方式
19.本公开的实现通常针对能够快速集成推荐解决方案的推荐方系统。更具体地,本公开的实现针对推荐方系统,该推荐方系统启用web爬虫和第三方数据连接方的利用、执行机器学习(ml)模型训练、以及针对企业对企业(b2b)上下文中的各种推荐用例来构建ml或深度学习(dl)模型。
20.在一些实现中,动作包括接收元组集,每个元组包括实体和来自产品集的产品,针
对每个元组:通过嵌入模块生成作为对推荐方网络的输入的总隐式向量,总隐式向量基于结构向量、文本向量和类别向量而被生成的,结构向量、文本向量和类别向量各自基于相应的产品的产品简档和实体的实体简档而被生成,由上下文集成模块基于表示实体的上下文的上下文向量来生成隐式上下文向量,并且将总隐式向量和隐式上下文向量输入到推荐方网络,推荐方网络通过使用多任务损失函数的少样本学习而被训练,并且由推荐方网络生成包括特定于实体的推荐集的预测。。
21.为了提供针对本公开的实现的上下文,并且如上所述,企业在可以包括多个企业和客户的网络的连接环境中执行操作。例如,在其它上下文中,企业可以在b2b上下文中操作,其中企业向其它企业提供商品和/或服务。企业利用技术来支持正在进行的企业操作。示例技术包括计算机实现的推荐方系统(也称为推荐系统),该推荐方系统摄入输入数据并且提供表示一个或多个推荐的输出数据。例如,企业可以利用推荐方系统来标识可能与其操作相关的产品和/或服务(例如,企业可以从b2b上下文中的其他企业采购的产品/服务)。传统上,推荐方系统被提供为ml系统,该ml系统通过一个或多个ml模型来处理输入数据以提供表示一个或多个推荐的输出数据。然而,传统的推荐方系统存在技术上的缺点。
22.例如,推荐系统不支持针对企业的自动简档创建,相反依赖于静态的并且不全面的第三方数据源。这导致ml模型性能的准确度降低,从而导致次优的推荐。作为另一示例,存在数据稀疏性问题。例如,传统的推荐方系统依赖于表示产品与客户(即,客户购买的产品)之间的历史交互的大量训练数据,但是这样的训练数据可能是不足的、不完整的和/或有噪声的。由于不完整和有噪声的训练数据,传统的ml模型可能容易地过拟合,并且得到的预测是次优的。这突出了所谓的冷启动问题,意味着推荐方系统不能针对其还没有收集足够的训练数据的客户或产品得出任何推断。此外,b2b推荐场景通常受到与技术的因素、组织的因素、和市场影响的因素有关的变化的上下文的影响,这些影响因素可能显著影响预测。传统推荐方系统的ml模型不包含动态上下文,使ml模型次优。作为又一示例,在b2b上下文中,要求是非常动态的(例如,品牌推广、产品交叉/追加销售等),并且传统的推荐方系统没有能力或具有有限的能力来基于不同的优化目标和场景(例如,边际贡献、覆盖范围、收入等)和/或其组合来提供推荐。
23.鉴于此,本公开的实现针对推荐方系统,该推荐方系统启用web爬虫和第三方数据连接方的利用,执行ml模型训练并且针对b2b上下文中的各种推荐用例来构建ml/dl模型。如本文进一步详细描述的,本公开的推荐方系统包括智能数据富集、少样本学习、多模态嵌入、上下文集成和多任务评估。在一些示例中,使用数据富集模块的协调来提供智能数据富集,以利用行业数据,统一资源定位符(url)填充率,外部字典,爬行数据等来丰富第一方数据。在一些示例中,通过应用元学习算法以学习推荐方网络的全局参数来使用少样本学习,其中(所学习的)全局参数被用于指导具有很少过去交互(例如,稀疏数据、冷启动)的企业的配置。在一些示例中,嵌入的多模态学习捕获产品简档和客户简档的丰富语义,以提高推荐质量(例如,特别是在对于企业而言,很少或没有历史交易数据可用的情况下)。在一些示例中,对于上下文集成,使用自动编码器来学习上下文因素之间的非线性相关性,该非线性相关性作为输入被提供给推荐方网络。在一些示例中,对于多任务评估,推荐方网络中的损失函数被制定为加权的多目标价值函数,并且针对多个策略(例如,边际贡献、收入等)进行优化。
24.图1描绘了可以执行本公开的实现的示例系统100。示例系统100包括计算设备102、后端系统108和网络106。在一些示例中,网络106包括局域网(lan)、广域网(wan)、互联网或其组合和连接网站、设备(例如,计算设备102)和后端系统(例如,后端系统108)。在一些示例中,可以通过有线和/或无线通信链路来访问网络106。
25.在一些示例中,计算设备102可以包括任何适当类型的计算设备,诸如台式计算机、膝上型计算机、手持计算机、平板计算机,个人数字助理(pda)、蜂窝电话、网络设备、相机、智能电话、增强型通用分组无线服务(egprs)移动电话、媒体播放器、导航设备、电子邮件设备、游戏控制台或这些设备中的任何两个或更多个的适当组合、或其它数据处理设备。
26.在所描绘的示例中,后端系统108包括至少一个服务器系统112和数据存储114(例如,数据库和知识图结构)。在一些示例中,至少一个服务器系统112托管用户可以使用计算设备来交互的一个或多个计算机实现的服务。例如,服务器系统112可以托管根据本公开的实现的推荐方系统。
27.本文参考包括b2b的示例用例更详细地描述本公开的实现。更具体地,参考从一个公司(企业)推荐产品(例如,商品和/或服务)以供另一公司(企业)购买来描述本公开的实现。例如,供应方可以使用本公开的多任务推荐方网络,以确定要推荐给购买方购买的一个或多个产品。然而,预期本发明的实施方案可应用于任何适当的用例。
28.图2a描绘了包括根据本公开的实现的推荐方系统的示例概念架构200。在图2中,示例概念体系架构200包括数据富集模块202和少样本学习模块204。少样本学习模块204包括嵌入模块206,上下文集成模块208和多任务推荐方网络210。在一些示例中,推荐方系统包括数据富集模块202和少样本学习模块204。在图2的示例中,提供了一个或多个私有数据源220a、一个或多个公共数据源220b以及一个或多个实体数据源220c。在一些示例中,推荐方系统包括数据富集模块202和少样本学习模块204以及数据源220a、220b、220c中的至少一个数据源。
29.根据本公开的实现,从数据源220a、220b、220c取回数据。所取回的数据代表表示客户(例如,企业、公司)的不同属性、表示产品的不同属性、以及代表上下文的属性。表示客户的示例性属性可以包括但不限于:公司数据(例如,创立年份、总部位置、(多个)地点位置、雇员数目、销售收入、市场占有率、财政年度、购买周期)和金融健康(例如,信用得分、金融通道、最后资金日期、费用)。表示产品的示例属性可以包括但不限于产品层次,产品类别等。通常,上下文描述了产品推荐发生的条件。上下文随着经济、技术、组织等方面的变化是动态的。这种变化影响公司的销售和购买预测。表示上下文的示例属性可以包括但不限于雇佣、辞退、策略改变等。
30.在一些示例中,每个私有数据源220a可以记录关于一个或多个实体(例如,客户)为私有的数据。例如,并且从供应方的角度来看,私有数据源可以记录表示由特定企业提供的产品和/或特定企业的客户的内部信息的数据。作为另一示例,并且从购买方的角度来看,私有数据源可以记录表示特定企业的产品购买和/或特定企业的供应方的数据。在一些示例中,对私有数据源的访问是受限的(例如,购买方仅具有其私有数据源的访问权、供应方仅具有其私有数据源的访问权)。在一些示例中,每个公共数据源220b可以记录从公共数据源而被提供的数据。公共数据源的示例包括客户网站和新闻网站。例如,客户可以维护可公开查看的网站,可使用web爬虫来爬取该网站以搜集关于客户的数据。作为另一示例,新
闻出口可维护可公开查看的网站,可以使用web爬虫来爬取该网站,以搜集关于客户的数据。作为另一示例,政府代理可以维护可公开查看的网站,该政府代理可以使用web爬虫来爬取该网站,以搜集关于客户的数据(例如,列出由客户拥有的专利的美国专利商标局(uspto)、向美国证券和交易委员会(sec)提交的文件、法院网站)。在一些示例中,每个实体数据源220c可以记录实体专有的数据,该实体管理实体数据源。例如,第三方可以组装关于客户的数据,并且可以使数据可用于付费(例如,v12数据平台)。
31.在一些示例中,数据富集模块202基于从数据源220a、220b、220c中的每个数据源所提供的数据来生成客户数据集和产品数据集合。例如,如上所述,数据可以包括表示客户的第一方数据,并且通过爬取网站(例如,客户产品页面,uspto页面)而被取回。在一些示例中,数据丰富模块202清理第一方数据并且利用行业数据(例如,来自v12数据平台)、url填充率、外部字典、爬虫数据等来丰富第一方数据。例如,并且如本文进一步所详细描述的,提供数据集描述(例如,用于客户数据集和产品数据集)并且构造一个或多个知识图(kg)。在一些示例中,并且如本文进一步详细描述的,嵌入模块206执行捕获产品和客户简档的丰富语义的嵌入(例如,结构的、文本的、类别的)的多模态学习,以提高推荐质量(例如,特别是在企业的情况下,针对其几乎没有或没有历史交易数据可用)。
32.更详细地,来自数据源220a、220b、220c中的每个数据源的数据可以被处理以提供结构数据,文本数据和类别数据。在一些示例中,结构数据表示记录在数据源220a、220b、220c中的一个或多个数据源中的实体以及实体之间的关系。结构数据可以被记录在一个或多个kg中,本文进一步详细描述。在一些实现中,可以生成并且维护(例如,周期性地更新)kg,以表示公司、公司之间的关系、公司与位置之间的关系、公司与行业之间的关系、公司与产品之间的关系、产品与描述(例如)和/或代号之间的关系以及其他可能的关系。在一些示例中,文本数据包括记录在数据源220a、220b、220c中的一个或多个数据源的数据中的文本(例如,字符串)。在一些示例中,类别数据包括表示在数据源220a、220b、220c中的一个或多个数据源的数据内的类别。
33.kg可以被描述为数据的集合,并且与基于表示实体和实体之间的关系的模式相关。数据可以在逻辑上描述为图(即使也以表格形式而被提供),其中每个不同的实体由相应的节点表示,并且实体对之间的每个关系由节点之间的边缘表示。每个边缘与关系相关联,并且边缘的存在表示在由边缘连接的节点之间存在相关联的关系。例如,如果节点a表示公司阿尔法,节点b表示产品贝塔,并且边缘e与关系“由制造”相关联,则在图中具有沿从节点a到节点b的方向连接节点的边缘e表示阿尔法是制造贝塔的公司的事实。在一些示例中,知识图可以利用模式相关知识来放大(例如,阿尔法是概念公司,查理是概念公司,而“供应”是概念公司的两个实体/实例之间的特性或关系)。添加模式相关信息支持推理结果的评估。知识图可以由任何多种物理数据结构来表示。例如,知识图可以用三元组表示,每个三元组按顺序表示两个实体,以及从第一实体到第二实体的关系;例如,[阿尔法,贝塔,由制造]或[阿尔法,贝塔,由制造]是表示相同事实的备选方式。每个实体和每个关系可以并且通常被包括在多个三元组中。
[0034]
在一些示例中,每个实体可以作为节点而被存储一次,例如作为记录或对象,并且通过所链接的列表数据结构而被链接到该实体具有的所有关系,以及该实体相关的所有其他实体。更具体地,知识图可以被存储为邻接列表,其中邻接信息包括关系信息。在一些示
例中,每个不同的实体和每个不同的关系利用相应的唯一标识符来表示。由知识图表示的实体不必是有形的事物或特定的人。实体可以包括特别的人、地方、事物、艺术作品、概念、事件或其他类型的实体。因此,知识图可以包括限定公司(例如,沿着供应链的供应方)之间的关系的数据;限定公司与事物(例如,由特定的公司生产的特定的产品)之间的关系的数据;限定地点和事物之间关系的数据(例如,特定的产品来自特定的地理位置);限定公司和地点之间关系的数据(例如,公司总部在特定的城市);以及实体之间的其他类型的关系。
[0035]
在一些实现中,每个节点具有基于该节点表示的实体的种类的类型;并且所述类型可以各自具有指定数据种类的模式,该数据可以维护关于由类型的节点表示的实体以及应当如何存储数据。例如,用于表示公司的类型的节点可以具有模式,该模式限定针对诸如位置、行业等信息的字段。这样的信息可以由类型特定数据结构中的字段,或由看起来像节点关系节点三元组的三元组(例如,[公司标识符,位于,行业中]),或以任何其他方便的预定义方式来表示。在一些示例中,由类型模式指定的一些或全部信息可以由到知识图中的节点的链接来表示;例如,[一个公司标识符,子公司,另一公司标识符],其中其他公司标识符是图中的节点。
[0036]
在一些示例中,上下文集成模块208使用自动编码器来学习上下文因素之间的非线性相关性,该上下文因素作为输入而被提供给推荐方网络。例如,使用例如具有均方误差(mse)损失函数的反向传播和梯度下降算法来训练(例如,离线)自动编码器神经网络,并且从自动编码器的中间层提取隐式上下文向量,该隐式上下文向量是对自动编码器的输入的低维表示。在一些示例中,多任务推荐方网络210使用少样本学习而被训练。例如,并且如本文进一步详细描述的,通过应用元学习算法来学习推荐方网络的全局参数来使用少样本学习,其中(所学习的)全局参数被用于指导针对具有很少过去交互(例如,稀疏数据、冷启动)的企业的配置。在一些示例中,对于多任务评估,推荐方网络中的损失函数被制定为加权多目标价值函数,并且针对多个策略(例如,边际贡献、收入等)而被优化。
[0037]
图2b描绘了根据本公开的实现的少样本学习的概念性表示。在图2的示例中,图2a的少样本学习模块204执行包括每任务训练232和特定任务学习234的全局训练230。在图2b的示例中,训练数据集250(也称为支持集)被用于训练推荐方网络210,测试数据集252(也称为查询集)被用于在训练的每次迭代(少样本学习)时测试(所训练的)推荐方网络210。在图2b的示例中,提供了特定任务损失模块240、本地权重更新模块242、共享任务损失模块244和全局权重更新模块246。
[0038]
对于训练,将数据集(数据
总共
)分成训练任务集(t
元-训练
)。在一些示例中,每个训练任务(t
si
)对应于相应的场景,诸如以特定产品或客户中心的或诸如更高等级类别的特定场景。例如:
[0039][0040]
在少样本学习中,优化参数集,使得当关于特定任务(t
si
)而采取梯度步长时,参数θ3接近针对任务(t
si
)的最佳参数。这里,任务是特定场景(例如,公司到产品)。参数θ3对应于正在被训练的多任务推荐方网络的特定任务输出层。因此,少样本学习的目的是学习广泛适用于所有任务而不是单个任务的内部特征。在局部更新期间,在每个支持集(训练数据
集)上调整多任务推荐方网络的参数θ3。在全局更新期间,多任务推荐方网络参数θ1最小化损失。如图2b所示,粗线中的组件表示全局更新,而非粗线组件表示局部更新。因此,图2b示出了使用双反向传播(梯度下降)来训练多任务推荐方网络的概念,使得多任务推荐方网络被局部地和全局地优化。如图2b所示,使用支持集来计算针对局部更新的损失,然后使用这些权重,使用查询集计算针对全局更新的损失,并且进一步优化/更新这些权重。
[0041]
图3描绘了根据本公开的实现的表示多模态嵌入的示例概念架构300。图3的示例描绘了图2的嵌入模块206的操作,嵌入模块206除了集成了从产品简档和公司简档所提供的文本内容、结构内容和类别内容之外,还集成了来自异构信息网络(例如,数据源220a、220b、220c)的具有不同语义表示的协同过滤。
[0042]
图3的示例概念架构300包括结构知识模块302、文本知识模块304、类别知识模块306、结构嵌入模块308、文本嵌入模块310、编码模块312和总隐式向量(tlv)模块314。
[0043]
在一些示例中,结构知识模块302从产品简档320和客户简档322中提取结构数据,并且将该结构数据提供给结构嵌入模块308。例如,可以从kg提供结构数据,如本文所述,该kg表示实体以及在节点和边缘方面的实体之间的关系。在一些示例中,结构嵌入模块308处理结构数据,以生成作为结构向量(sv)330而被提供的结构嵌入。例如但不限于,结构嵌入模块308可以使用诸如图形卷积网络(gcn)的嵌入技术来处理结构数据。通常,gcn接收诸如kg的图作为输入,并且生成作为图的结构的表示的嵌入。这里,嵌入被提供为sv 330,sv 330是多维向量。
[0044]
在一些示例中,文本知识模块304从产品简档320和公司简档322中提取文本数据,并且将文本数据提供给文本嵌入模块310。在一些示例中,文本嵌入模块310处理文本数据以生成作为文本向量(tv)332而被提供的文本嵌入。例如但不限于,文本嵌入模块310可以使用诸如来自转换器(bert)的双向编码器表示的嵌入技术来处理结构数据。通常,bert模型接收文本数据作为输入,并生成作为文本数据的表示的嵌入。此处,嵌入被提供为tv 332,tv 332是多维向量。
[0045]
在一些示例中,类别知识模块306从产品简档320和公司简档322中提取类别数据,并且将类别数据提供给编码模块312。在一些示例中,编码模块312处理类别数据,以生成作为类别向量(cv)334而被提供的类别嵌入。举例来说,但不限于,编码模块312可以使用编码技术(例如,独热编码)来处理类别数据。通常,独热编码器接收类别数据作为输入并且生成作为类别数据的表示的编码。此处,编码被提供为cv 334,cv 334是多维向量。
[0046]
尽管本文讨论了gcn,bert和独热编码,但预期可以使用任何合适的嵌入技术和/或编码技术来提供向量。
[0047]
在一些示例中,tlv模块314处理sv 330,tv 332和cv 334以提供总隐式向量(tlv)340。在一些示例中,sv 330,tv 332和cv 334的处理包括串接sv 330,tv 332和cv 334。在一些情况下,sv 330,tv 332和cv 334可以具有不同的维度。因此,可以在串接之前各自可以被缩减为共同维度的密集格式。
[0048]
在一些实现中,偏移向量(ov)336对tlv 340有贡献(例如,也包括在串接中)。在一些示例中,ov 336由协同矩阵因式分解提供。例如,推荐系统可以包括代表客户和产品的历
史数据,其中每个客户已经购买了一个或多个产品。历史数据可以被表示为客户和产品的矩阵。考虑到损失函数,该矩阵可以针对每个客户的逻辑回归问题而被处理,其中输入是产品的描述向量。通过最小化损失函数,可以针对每个客户提供客户嵌入。针对特定客户,得到的客户嵌入可以被提供为针对客户简档322中所表示的客户的ov 336。此处,ov 336用作基于历史数据的相应的客户的基线表示,并且ov 336由tlv 340中的sv 330,tv 332和cv 334来扩充。
[0049]
图4描绘了根据本公开的实现的用于上下文集成的隐式上下文向量的选择的示例表示。更具体地,图4描绘了自动编码器400的至少部分,编码器400包括提供隐式上下文向量的中间层402。图4的示例描绘了图2的上下文集成模块208的操作,上下文集成模块208提供隐式上下文向量以表示影响由多任务推荐方网络210输出的推荐的动态上下文(上面介绍的)。
[0050]
更详细地,并且如上所述,产品推荐可以取决于附加的上下文证据,诸如例如但不限于改变技术基础设施、金融健康、政府支持、竞争压力、供应方支持、经济变化等。这些上下文因素通常是相关的,并且难以直接学习与最终目标变量y的关系。鉴于此,本公开的实现使用自动编码器(例如,如图4所示)来发现不同上下文特征之间的相关性,并且提取相对低维表示中的相关性,即隐式上下文向量
[0051]
通常,自动编码器是可以被描述为应用反向传播的无监督学习算法的神经网络,将目标值设置为等于输入。在图4的示例中,上下文向量包括xn上下文特征,并且作为输入被提供给自动编码器400。通常,上下文向量在维度方面可以相对大(即,n是相对较大的数,n≥100)。通过使用自动编码器,深层揭示了相关性和模式,并且被转换成在隐式上下文向量中所表示的隐式上下文。在一些示例中,使用反向传播和梯度下降算法以及mse损失函数来分别离线训练自动编码器。从中间层提取隐式上下文向量并且该隐式上下文向量是输入的低维表示(例如,比输入更低的维度)。
[0052]
图5描绘了根据本公开的实现的多任务推荐方网络502(例如,图2的推荐方网络210)的训练的概念表示500。在图5的示例中,概念表示500还包括嵌入模块504(例如,图2的嵌入模块206)和上下文集成模块506(例如,图2的上下文集成模块206)。在一些实现中,嵌入模块504处理产品简档508和客户简档510,其中的每个都由数据富集模块(例如,图2a的数据富集模块202)提供。在一些示例中,嵌入模块504提供tlv(例如,如本文参考图3所描述的)作为对多任务推荐方网络502的输入。在一些示例中,上下文集成模块506提供隐式上下文向量(例如,如本文参考图4所描述的)作为对多任务推荐方网络502的输入。
[0053]
通常,迭代地训练ml模型,其中,在迭代期间,调节ml模型的一个或多个参数,并且基于训练数据来生成输出。对于每次迭代,基于损失函数来确定损失值。如本文进一步详细描述的,本公开的实现使用多个损失函数(例如,具化在多任务损失函数中)。损失值表示ml模型的输出的准确程度。损失值可以被描述为ml模型的输出与ml模型的期望输出(期望输出由训练数据提供)之间的差异程度的表示。在一些示例中,如果损失值不满足期望值(例如,不等于零),则在训练的另一迭代中调整ml模型的参数。在一些实例中,重复该过程直到
损失值满足期望值。通常,在训练期间,在训练数据中的客户简档和产品简档之间存在多对多的关系。即,多个客户简档和多个产品简档被用于训练。
[0054]
在本公开的实现的上下文中,训练包括嵌入模块的嵌入方的训练和推荐方网络的训练。根据本公开的实现,少样本学习包括嵌入模块(例如,f(θ1))的网络参数的同时训练和推荐方网络(例如,f(θ3))的网络参数的训练。在一些示例中,并且如图2b所示,在局部更新期间,网络参数θ3被更新,并且在全局更新期间,网络参数θ1和网络参数θ3被更新。
[0055]
更详细地,训练多任务推荐方网络502以解决多个任务或优化。示例优化可以包括但不限于产品相关性、最大化利润率、最大化数量、边际贡献、最大化收入以及最小化多样性(例如,推荐给客户的产品的多样性)。因此,多任务推荐方网络502被训练以优化多个任务(优化目标)。为了实现这一点,在多任务损失函数528中实现多个损失函数,损失函数用于每个优化任务。在一些示例中,损失函数可以包括排序损失和基于相似性的损失。示例损失函数可以包括但不限于利润排序损失(例如,产品相关性),三元组损失(例如,相似性)和mse(例如利润率)。尽管本文描述了示例损失函数,但是应当理解,可以使用任何适当的损失函数来实现本公开的实现。示例多任务损失函数可以被提供为:
[0056]
ln=最小化(l1(θ
共享的
,θ
任务1
),l2(θ
共享的
,θ
任务2
),l3(θ
共享的
,θ
任务3
))
[0057]
其中ln可以是特定任务的(即,特定于优化目标)损失函数(例如,成对排序损失函数,三元组损失,mse),θ
共享的
是对所有损失共同的网络,并且θ
任务
特定于单个的损失。
[0058]
在图5的示例中,多任务推荐方网络502包括串接层520、层集522(例如,虽然描绘了3层,但是可以包括更多层)、输出层524、526和多任务损失函数528。串接层520接收来自嵌入模块504(本文参考图3所描述的多模式嵌入)的tlv和来自上下文集成模块506(本文参考图4描述的)的隐式上下文向量串接模块520串接tlv和以提供所串接的向量,该所串接的向量是对该层集522的输入。在一些示例中,在串接tlv和之前,处理其中的一个或两个以将它们相应的值带到具有适当维度的固定范围。在一些示例中,预处理可以包括任何适当的归一化技术(例如,最小最大缩放器(“minmaxscaler”))。
[0059]
根据本公开的实现,多任务推荐方网络502包括多个输出层(例如,如图5所示的输出层524、526),每个输出层对应于相应的优化目标。例如,输出层524可以对应于第一优化目标(例如,最大化利润率),而输出层526可以对应于第二优化目标(例如,最小化产品推荐中的多样性)。尽管在图5中描绘了两个输出层,但是可以预期的是,根据优化目标的数目,可以提供任何适当数目的输出层。如图5所示,每个输出层524、526共享该层集522的输出。即,该层集522中的最后一层的输出被提供为输出层524、526中的每个输出层的输入。在一些示例中,取决于相应的优化目标,每个输出层524、526可以是任何适当类型的输出层。输出层的示例类型可以包括但不限于s形函数和线性层。
[0060]
在一些实现中,输出层524、526的输出被求和为加权和。即,将权重应用于每个输出层524、526的输出,并且提供加权和。在一些示例中,权重调整相应的输出在训练中具有的影响。即,例如,不是所有的优化任务都可以被认为是相等的,一些比另一些更重要。因此,权重使更重要的优化目标比不太重要的优化目标更多地影响所得的损失值。例如,最大化利润多样性可能比最小化利润率更重要。因此,施加到对应于利润率的输出层的权重可以大于施加到对应于产品多样性的输出层的权重。在一些示例中,多任务损失函数528确定
针对多任务推荐方网络502的总损失值,并且基于总损失值选择性地继续训练(例如,执行训练的下一次迭代以进一步最小化总损失值)。
[0061]
如上面所介绍的,本公开的实现使用少样本学习来训练多任务推荐方网络502。通常,少样本学习可以被描述为用于使用相对少量的训练数据来训练ml模型(在这种情况下是多任务推荐方网络502)的技术。少样本学习也可以被描述为元学习类型,在少样本学习期间,ml模型在元训练阶段期间在多个相关任务上被训练。例如,在少样本学习期间,训练ml模型以学习针对各种任务的公共表示,并且在公共表示之上训练特定任务分类器。在使用少样本学习的训练之后,ml模型能够识别和分类新数据(例如,训练数据中未被表示的数据)。因此,本公开的实现利用少样本学习来解决数据稀疏性(即,相对少的可用训练数据)以及冷启动(即,未包括在训练数据中的新数据)。
[0062]
图6描绘了根据本公开的实现的推荐工作流600的表示。更具体地,图6的示例表示训练后使用(所训练的)多任务推荐方网络来提供推荐(即,推断阶段)。在图6的示例中,该表示包括多任务推荐方模块602、任务集604和排序模块606。
[0063]
多任务推荐方模块602执行(所训练的)多任务推荐方网络(例如,训练后的图5的多任务推荐方网络502)。在一些示例中,多任务推荐方模块602接收输入集610,每个输入包括客户和产品对(例如,表示客户c1和产品集{p1,...,pn}中产品pi的元组[c1,pi])。在一些示例中,该产品集包括产品数据库中的所有产品,其可用于提供给客户c1。多任务推荐方模块602输出得分集{y
任务1
,...,y
任务n
},每个得分y任务i与相应的元组[c1,pi]相关联,并且由多任务损失函数确定。在一些示例中,每个得分表示相应的优化目标。对单个的损失函数的得分求和,以输出针对每个元组的总得分,总得分被提供给排序模块606。在求和期间,也可以引入权重(w)以使不同的损失对总得分具有不同的影响。因此,每个元组由多任务推荐方模块602单独处理,以向排序模块606提供相应的总得分。排序模块606基于总得分对元组进行排名和排序,以提供所排序的推荐集620作为输出。该所排序的推荐集表示可以被推荐给客户c1的产品。
[0064]
图7描绘了可以在本公开的实现中执行的示例过程700。在一些示例中,使用由一个或多个计算设备执行的一个或多个计算机可执行程序来提供示例过程700。
[0065]
接收(702)来自多个数据源的数据。例如,并且如本文详细描述的,数据从图2a的数据源220a、220b、220c接收,并且代表了表示客户(例如,企业,公司)的不同属性、表示产品的不同属性、以及代表上下文的属性。在一些示例中,每个私有数据源220a可以记录关于一个或多个实体(例如,客户)是私有的数据,每个公共数据源220b可以记录从公共数据源提供的数据,并且每个实体数据源220c可以记录实体专有的数据,该实体管理实体数据源。数据富集和kg生成(或更新)被执行(704)。例如,如本文详细描述的,数据富集模块202基于从数据源220a、220b、220c中的每个数据源所提供的数据来生成客户数据集和产品数据集。在一些示例中,数据丰富模块202清理第一方数据并且利用行业数据(例如,来自v12数据平台),url填充率,外部字典,爬虫数据等来丰富第一方数据。例如,提供数据集描述(例如,用于客户数据集和产品数据集),并且构造和/或更新一个或多个kg(例如,基于最近所接收的数据来更新现有的kg)。
[0066]
执行少样本学习以训练多任务推荐方网络(706)。例如,如本文详细描述的,训练包括嵌入模块的嵌入方的训练和推荐方网络的训练。根据本公开的实现,少样本学习包括
嵌入模块(例如,f(θ1))的网络参数的同时训练和推荐方网络(例如,f(θ3))的网络参数的训练。在一些示例中,并且如图2b所示,在局部更新期间,网络参数θ3被更新,并且在全局更新期间,网络参数θ1和网络参数θ3被更新。如本文所述,多任务推荐方网络被训练以解决多个任务或优化。示例优化可以包括但不限于产品相关性、最大化利润率、最大化数量、边际贡献、最大化收入以及最小化多样性(例如,推荐给客户的产品的多样性)。因此,多任务推荐方网络被训练以优化多个任务(优化目标)。为了实现这一点,在多任务损失函数(每个优化任务的损失函数)中实现多个损失函数,损失函数用于每个优化任务。
[0067]
(所训练的)多任务推荐方网络被部署以供生产使用(708)。例如,如本文详细描述的,多任务推荐方模块602执行(所训练的)多任务推荐方网络(例如,训练后的图5的多任务推荐方网络502)。在一些示例中,多任务推荐方模块602接收输入集610,每个输入包括客户和产品对(例如,表示客户c1和产品集{p1,...,pn}中产品pi的元组[c1,pi])。在一些示例中,每个元组由多任务推荐方模块602单独处理,以向排序模块606提供相应的总得分。排序模块606基于总得分对元组进行排名和排序,以提供所排序的推荐集620作为输出。该所排序的推荐集表示可以被推荐给客户c1的产品。
[0068]
在本说明书中所描述的实现和所有功能操作可以在数字电子电路中实现、或者在计算机软件、固件或硬件中实现、包括在本说明书中公开的结构及其结构等同物、或者它们中的一个或多个的组合。实现可以被实现为一个或多个计算机程序产品(即,编码在计算机可读介质上用于由数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一个或多个模块)。计算机可读介质可以是机器可读存储设备,、机器可读存储基板、存储设备、实现机器可读传播信号的物质组成、或它们中的一个或多个的组合。术语“计算系统”包括用于处理数据的所有装置,设备和机器,例如包括可编程处理器,计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码(例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其一个或多个的任何适当组合的代码)。传播信号是人工生成的信号(例如,机器生成的电、光或电磁信号),其被生成以对信息进行编码以传输到合适的接收器装置。
[0069]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何适当形式的编程语言来编写,包括所编译的或所解释的语言,并且它可以以任何适当的形式来部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境中的其他单元。计算机程序不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为一个计算机或多个计算机上执行,该计算机位于一个站点或跨在多个站点并且通过通信网络互连。
[0070]
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并且生成输出来执行功能。该过程和逻辑流程也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))来执行,并且装置也可以被实现为专用逻辑电路。
[0071]
例如,适于执行计算机程序的处理器包括:通用和专用微处理器,以及任何适当类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储
器或两者接收指令和数据。计算机的元素可以包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或向其传输数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备(例如,移动电话,个人数字助理(pda),移动音频播放器,全球定位系统(gps)接收器)中。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备(例如,eprom,eeprom和闪存设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或合并专用逻辑电路中。
[0072]
为了提供与客户的交互,实现可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)监视器)以及客户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标、跟踪球、触摸板)的计算机上被实现。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何适当形式的感觉反馈(例如,视觉反馈、听觉反馈、触觉反馈);并且可以以任何适当的形式接收来自用户的输入,包括声音、语音或触觉输入。
[0073]
实现可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器)、中间件组件(例如,应用服务器)和/或前端组件(例如,具有图形用户界面或web浏览器的用户端计算机,用户可以通过该图形用户界面或web浏览器与实现交互),或者一个或多个这样的后端、中间件或前端组件的任何适当组合。系统的组件可以通过任何适当形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如互联网。
[0074]
计算系统可以包括用户端和服务器。用户端和服务器通常彼此远离,并且通常通过通信网络进行交互。用户端和服务器的关系是借助于在相应计算机上运行的并且彼此具有用户端-服务器关系的计算机程序而产生的。
[0075]
虽然本说明书包含许多细节,但是这些不应被解释为对本公开的范围或可能要求保护的范围的限制,而是作为对特别实现所特定的特征的描述。在本说明书中在单独实现的上下文中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的上下文中描述的各种特征也可以在多个实现中单独地或以任何合适的子组合来实现。此外,尽管特征可能在上文中被描述为在某些组合中起作用并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在某些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
[0076]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实现方式中的各种系统组件的分离不应被理解为在所有实现方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
[0077]
已经描述了许多实现。然而,应当理解,可以进行各种修改而不脱离本公开的精神和范围。例如,可以使用上面所示的各种形式的流,其中步骤被重新排序、添加或移除。因此,其它实现在以下权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1