推荐对象的确定方法、装置及计算机可读存储介质与流程

文档序号:32525241发布日期:2022-12-13 20:52阅读:39来源:国知局
推荐对象的确定方法、装置及计算机可读存储介质与流程

1.本技术涉及人工智能领域,具体而言,涉及一种推荐对象的确定方法、装置及计算机可读存储介质。


背景技术:

2.在商品营销场景中,如何根据用户的偏好为用户推荐商品,是提高商品营销成功率的关键。
3.其中,现有技术通过采用的是基于sql(structured query language,结构化查询语言)协同过滤方法检索商品的方式为用户推荐商品,但是这种方式需要在数据库中遍历每个商品与每个用户之间的购买关系,然后再收集用户偏好,进而找到与目标用户偏好最相似的用户,并将用户购买过的商品推荐给目标用户。在商品数据和用户数据较多时,数据库的遍历和检索过程会消耗大量的时长,从而导致在确定推荐商品时存在确定效率较低的问题。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种推荐对象的确定方法、装置及计算机可读存储介质,以至少解决现有技术中为用户确定推荐对象时存在的确定效率低的技术问题。
6.根据本技术实施例的一个方面,提供了一种推荐对象的确定方法,包括:获取目标用户的用户特征数据,其中,目标用户的用户特征数据至少表征目标用户的身份特征;基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量;将用户特征向量输入至向量检索引擎中,得到对象清单,其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。
7.进一步地,第一模型通过以下过程训练得到:获取历史时间段内的历史用户特征数据、对象数据以及交易标签数据,其中,对象数据为在历史时间段内能够被交易的对象的对象信息,交易标签数据用于表征在历史时间段内对象数据中每个对象所对应的购买记录,历史用户特征数据为在历史时间段内浏览过对象数据中的对象的用户的用户特征信息;根据历史用户特征数据、对象数据以及交易标签数据构建至少一个训练数据,其中,每个训练数据由正样本和负样本组成,正样本包含用户在历史时间段内所购买过的对象,负样本包含用户在历史时间段内未购买过的对象;根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型,其中,第二模型用于将对象数据转换为生成索引文件所需的对象特征向量。
8.进一步地,推荐对象的确定方法还包括:在根据至少一个训练数据分别对预设的
第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型之前,获取历史用户特征数据中的数值型用户数据以及字符型用户数据,其中,数值型用户数据为历史用户特征数据中表现形式为数值形式的数据,字符型用户数据为历史用户特征数据中表现形式为非数值形式的数据;对数值型用户数据以及字符型用户数据进行预处理,得到第一数值型数据以及第一字符型数据,其中,第一数值型数据中至少包含历史用户特征数据中数值型特征的数量,第一字符型数据中至少包含历史用户特征数据中字符型特征的数量,第一数值型数据和第一字符型数据的表现形式为三维向量。
9.进一步地,推荐对象的确定方法还包括:在根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型之前,获取对象数据中的数值型对象数据以及字符型对象数据,其中,数值型对象数据为对象数据中表现形式为数值形式的数据,字符型对象数据为对象数据中表现形式为非数值形式的数据;对数值型对象数据以及字符型对象数据进行预处理,得到第二数值型数据以及第二字符型数据,其中,第二数值型数据中至少包含样本总数量以及对象数据中数值型特征的数量,第二字符型数据中至少包含样本总数量以及对象数据中字符型特征的数量,样本总数量为至少一个训练数据中正样本数量与负样本数量之和,第二数值型数据和第二字符型数据的表现形式为三维向量。
10.进一步地,推荐对象的确定方法还包括:根据第一数值型数据和第一字符型数据确定第一目标张量,其中,第一目标张量表征历史用户特征数据中每个历史用户的用户特征;根据第二数值型数据和第二字符型数据确定第二目标张量,其中,其中,第一目标张量表征对象数据中每个对象的对象特征;确定第一目标张量与第二目标张量之间的相似度;根据相似度、第一目标张量以及第二目标张量确定目标损失函数;根据第一目标张量、第二目标张量以及目标损失函数分别对第一神经网络以及第二神经网络进行迭代,得到第一模型以及第二模型。
11.进一步地,推荐对象的确定方法还包括:根据历史用户特征数据中数值型特征的数量对第一数值型数据进行向量维度的扩充,得到第一张量,其中,第一张量包含四个维度的向量;根据历史用户特征数据中字符型特征的种类数量对第一字符型数据进行向量维度的扩充,得到第二张量,其中,第二张量包含四个维度的向量;根据历史用户特征数据中字符型特征的数量以及历史用户特征数据中数值型特征的数量,对第一张量与第二张量进行叠加,得到第三张量;对第三张量进行线性变换,并基于第一神经网络上预设的函数对变换后的第三张量进行加权计算,得到第一目标张量。
12.进一步地,推荐对象的确定方法还包括:根据对象数据中数值型特征的数量对第二数值型数据进行向量维度的扩充,得到第四张量,其中,第四张量包含四个维度的向量;根据对象数据中字符型特征的种类数量对第二字符型数据进行向量维度的扩充,得到第五张量,其中,第五张量包含四个维度的向量;根据对象数据中字符型特征的数量以及对象数据中数值型特征的数量,对第四张量与第五张量进行叠加,得到第六张量;对第六张量进行线性变换,并基于第二神经网络上预设的函数对变换后的第六张量进行加权计算,得到第二目标张量。
13.进一步地,推荐对象的确定方法还包括:在根据至少一个训练数据训练得到第一模型以及第二模型之后,将对象数据输入至第二模型中,得到对象特征向量;将对象特征向
量输入至向量检索引擎中,得到索引文件,并将索引文件存储在向量检索引擎中。
14.根据本技术实施例的另一方面,还提供了一种推荐对象的确定装置,包括:获取模块,用于获取目标用户的用户特征数据,其中,目标用户的用户特征数据至少表征目标用户的身份特征;向量转换模块,用于基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量;输入模块,用于将用户特征向量输入至向量检索引擎中,得到对象清单,其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;确定模块,用于将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。
15.根据本技术实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的推荐对象的确定方法。
16.根据本技术实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的推荐对象的确定方法。
17.在本技术中,采用将用户特征向量输入至向量检索引擎中,得到对象清单的方式,首先获取目标用户的用户特征数据,然后基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量,并将用户特征向量输入至向量检索引擎中,得到对象清单,最后将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;目标用户的用户特征数据至少表征目标用户的身份特征。
18.由上述内容可知,本技术通过引入第一模型,可将用户特征数据转换为用户特征向量,同时利用向量检索引擎中的索引文件快速确定对象清单,由于索引文件为预先部署在向量检索引擎中的文件,因此,向量检索引擎无需在数据库中检索大量的用户数据以及商品数据即可得到对象清单,并确定对象清单上的对象为推荐对象,从而提高了推荐对象的确定效率。
19.由此可见,本技术的技术方案达到了基于预先部署的索引文件确定推荐对象的目的,从而实现了提高推荐对象的确定效率的效果,进而解决了现有技术中为用户确定推荐对象时存在的确定效率低的技术问题。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1是根据本技术实施例的一种可选的推荐对象的确定方法的流程图;
22.图2是根据本技术实施例的一种可选的客户模型的训练过程的流程图;
23.图3是根据本技术实施例的一种可选的深度学习神经网络结构示意图;
24.图4是根据本技术实施例的一种可选的推荐商品的方法流程图;
25.图5是根据本技术实施例的一种可选的推荐对象的确定装置示意图;
26.图6是根据本技术实施例的一种可选的电子设备的示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.另外,还需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
30.实施例1
31.根据本技术实施例,提供了一种推荐对象的确定方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.图1是根据本技术实施例的一种可选的推荐对象的确定方法的流程图,如图1所示,该方法包括如下步骤:
33.步骤s101,获取目标用户的用户特征数据。
34.在步骤s101中,目标用户的用户特征数据至少表征目标用户的身份特征。
35.可选的,一种商品推荐系统可作为本技术实施例中的推荐对象的确定方法的执行主体,其中,商品推荐系统可与多个第三方应用程序相关联,第三方应用程序为用于用户进行购物的应用程序,第三方应用程序所交易的商品包括但不限于股票、基金等虚拟商品或者衣物、食物、日常百货等实物商品。第三方应用程序的客户端中可展示商品推荐页面,在目标用户点击商品推荐页面时,商品推荐系统从第三方应用程序对应的实时数据库中获取该目标用户的用户数据,并从用户数据中提取目标用户的用户特征数据,其中,用户特征数据包括但不限于目标用户的年龄、性别、职业、所在地区等数据。
36.步骤s102,基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特
征向量。
37.在步骤s102中,商品推荐系统内部预先部署有已经训练好的第一模型,其中,第一模型也称为客户模型。商品推荐系统将得到的用户特征数据输入至客户模型中,由客户模型对用户特征数据进行向量转换等一系列处理,得到用户特征向量,其中,用户特征向量可理解为是用户特征数据的向量表示。
38.步骤s103,将用户特征向量输入至向量检索引擎中,得到对象清单。
39.在步骤s103中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,目标用户特征向量与用户特征向量的相似度大于预设阈值。另外地,上述的对象包括但不限于股票、日用百货、衣物、基金等可进行交易的商品,对象清单上的对象为目标用户具有购买意向的商品。
40.可选的,上述的向量检索引擎包括但不限于faiss向量检索引擎、milvus向量检索引擎、hnsw向量检索引擎等向量检索引擎。假设向量检索引擎为faiss向量检索引擎,商品推荐系统在得到用户特征向量之后,将用户特征向量输入至已经部署了索引文件的faiss向量检索引擎中,faiss向量检索引擎即可根据索引文件确定与用户特征向量相似度大于预设阈值的至少一个目标用户特征向量,并将目标特征向量所对应的商品确定为推荐商品。
41.需要注意到的是,上述的目标用户特征向量为历史时间段内购买过商品的用户所对应的用户特征向量,上述的相似度可用用户特征向量与目标用户特征向量之间的距离表示,距离越近,则说明两者相似度越高,上述的预设阈值可自定义设置。
42.步骤s104,将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。
43.在步骤s104中,商品推荐系统在得到对象清单之后,可将对象清单上的对象确定为推荐对象,然后将推荐对象的对象信息发送至终端设备上的第三方应用程序上,并在第三方应用程序的商品推荐页面进行展示。其中,终端设备包括但不限于笔记本电脑、台式电脑、智能手机以及智能平板等设备。
44.基于上述步骤s101至步骤s104的内容可知,在本技术中,采用将用户特征向量输入至向量检索引擎中,得到对象清单的方式,首先获取目标用户的用户特征数据,然后基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量,并将用户特征向量输入至向量检索引擎中,得到对象清单,最后将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;目标用户的用户特征数据至少表征目标用户的身份特征。
45.由上述内容可知,本技术通过引入第一模型,可将用户特征数据转换为用户特征向量,同时利用向量检索引擎中的索引文件快速确定对象清单,由于索引文件为预先部署在向量检索引擎中的文件,因此,向量检索引擎无需在数据库中检索大量的用户数据以及商品数据即可得到对象清单,并确定对象清单上的对象为推荐对象,从而提高了推荐对象的确定效率。
46.由此可见,本技术的技术方案达到了基于预先部署的索引文件确定推荐对象的目的,从而实现了提高推荐对象的确定效率的效果,进而解决了现有技术中为用户确定推荐对象时存在的确定效率低的技术问题。
47.在一种可选的实施例中,上述的第一模型通过图2中的以下过程训练得到:
48.步骤s201,获取历史时间段内的历史用户特征数据、对象数据以及交易标签数据,其中,对象数据为在历史时间段内能够被交易的对象的对象信息,交易标签数据用于表征在历史时间段内对象数据中每个对象所对应的购买记录,历史用户特征数据为在历史时间段内浏览过对象数据中的对象的用户的用户特征信息;
49.步骤s202,根据历史用户特征数据、对象数据以及交易标签数据构建至少一个训练数据,其中,每个训练数据由正样本和负样本组成,正样本包含用户在历史时间段内所购买过的对象,负样本包含用户在历史时间段内未购买过的对象;
50.步骤s203,根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型,其中,第二模型用于将对象数据转换为生成索引文件所需的对象特征向量。
51.可选的,上述的历史时间段可自定义设置,例如一年、一个季度、一个月等等,对象数据也可理解为是商品数据。以历史时间段为过去的一个月为例,商品数据用于表征在过去的一个月中第三方应用程序中能够被进行交易的所有商品的相关信息。商品信息包括但不限于商品的价格、品牌、类型、产地、功能等信息。交易标签数据为在过去的一个月中每件商品所对应的购买记录,例如,每件商品被哪个客户购买。其中,一些商品可能没有对应的交易记录。历史用户特征数据则用于表征在过去的一个月中在第三方应用程序上浏览过商品的用户的相关特征信息,其中,这些用户可能购买了商品,也可能并没有购买商品。
52.另外,上述的正样本和负样本的确定过程以用户为基准进行确定,例如,假设在历史时间段内有用户a、用户b和用户c三个用户浏览了商品,对于用户a而言,正样本为用户a在历史时间段内购买了的商品,负样本由两部分数据集构成,一部分为被用户b和用户c购买过但是未被用户a购买过的商品,另一部分为用户a、用户b以及用户c都没有购买过的商品。
53.在一种可选的实施例中,在根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型之前,商品推荐系统首先获取历史用户特征数据中的数值型用户数据以及字符型用户数据,其中,数值型用户数据为历史用户特征数据中表现形式为数值形式的数据,字符型用户数据为历史用户特征数据中表现形式为非数值形式的数据。然后,商品推荐系统对数值型用户数据以及字符型用户数据进行预处理,得到第一数值型数据以及第一字符型数据,其中,第一数值型数据中至少包含历史用户特征数据中数值型特征的数量,第一字符型数据中至少包含历史用户特征数据中字符型特征的数量,第一数值型数据和第一字符型数据的表现形式为三维向量。
54.可选的,商品推荐系统还会获取对象数据中的数值型对象数据以及字符型对象数据,其中,数值型对象数据为对象数据中表现形式为数值形式的数据,字符型对象数据为对象数据中表现形式为非数值形式的数据。然后,商品推荐系统对数值型对象数据以及字符型对象数据进行预处理,得到第二数值型数据以及第二字符型数据,其中,第二数值型数据中至少包含样本总数量以及对象数据中数值型特征的数量,第二字符型数据中至少包含样
本总数量以及对象数据中字符型特征的数量,样本总数量为至少一个训练数据中正样本数量与负样本数量之和,第二数值型数据和第二字符型数据的表现形式为三维向量。
55.在一种可选的实施例中,在本技术中,历史用户特征数据中的字符型用户数据可用数字编码进行表示,表1示出了一种历史用户特征数据:
56.表1
[0057][0058][0059]
其中,在表1中,第一列为用户id,id从0开始依次用整型数字编码,第二列至第七列为历史用户特征数据中的数值型用户数据,第八列至第十列为历史用户特征数据中的字符型用户数据的编码。另外,在表1中,数值型用户数据均做归一化处理,字符型用户特征数据的编码原则为将所有字符型特征从1开始依次映射为整型数字编码,同样的特征采用同样的数字编码,不同的特征的编码不同,最大编码为所有字符型特征的种类数量n。
[0060]
另外,与历史用户特征数据类似,商品数据由数值型商品数据和字符型商品数据组成,字符型商品数据也可以通过数字编码来表示。
[0061]
此外,表2示出了一种交易标签数据,如表2所示:
[0062]
表2
[0063]
6631722366318223663192236632022366321223
[0064]
其中,在表2中,第一列表示历史用户特征数据的id,第二列表示商品数据的id,每一行数据表示该用户购买过该商品。
[0065]
在获取得到数值型用户数据、字符型用户数据之后,商品推荐系统首先对数值型用户数据、字符型用户数据进行预处理,其中,预处理的目的用于生成可输入至神经网络的向量。因此,预处理的过程可理解为是将数值型用户数据和字符型用户数据分别进行向量化的过程,预处理之后的数值型用户数据转换为第一数值型数据batch_size
×1×
m_q,预处理之后的字符型用户数据转换为第一字符型数据batch_size
×1×
n_q。其中,m_q为历史用户特征数据中数值型特征的个数,n_q为历史用户特征数据中字符型特征的个数。
[0066]
另外,在获取得到数值型对象数据、字符型对象数据之后,商品推荐系统也会对数值型对象数据、字符型对象数据进行预处理,预处理之后的数值型对象数据转换为第二数值型数据batch_size
×
group_size
×
m_i,预处理之后的字符型对象数据转换为第二字符
型数据batch_size
×
group_size
×
n_i。其中,m_i为商品数据中数值型特征的个数,n_i为商品数据中字符型特征的个数。batch_size为历史用户特征数据和商品数据的批大小。group_size为抽样的商品数据的个数(即样本总数量),包括一个正样本和group_size-1个负样本。
[0067]
在一种可选的实施例中,商品推荐系统根据第一数值型数据和第一字符型数据确定第一目标张量,其中,第一目标张量表征历史用户特征数据中每个历史用户的用户特征。同时,商品推荐系统根据第二数值型数据和第二字符型数据确定第二目标张量,其中,第一目标张量表征对象数据中每个对象的对象特征。然后,商品推荐系统确定第一目标张量与第二目标张量之间的相似度,并根据相似度、第一目标张量以及第二目标张量确定目标损失函数,最后,商品推荐系统根据第一目标张量、第二目标张量以及目标损失函数分别对第一神经网络以及第二神经网络进行迭代,得到第一模型以及第二模型。
[0068]
可选的,在确定第一目标张量时,商品推荐系统首先根据历史用户特征数据中数值型特征的数量对第一数值型数据进行向量维度的扩充,得到第一张量,其中,第一张量包含四个维度的向量。然后,商品推荐系统根据历史用户特征数据中字符型特征的种类数量对第一字符型数据进行向量维度的扩充,得到第二张量,其中,第二张量包含四个维度的向量。最后,商品推荐系统根据历史用户特征数据中字符型特征的数量以及历史用户特征数据中数值型特征的数量,对第一张量与第二张量进行叠加,得到第三张量,并对第三张量进行线性变换,并基于第一神经网络上预设的函数对变换后的第三张量进行加权计算,得到第一目标张量。
[0069]
第二目标张量的确定过程与第一目标张量的确定过程类似,商品推荐系统首先根据对象数据中数值型特征的数量对第二数值型数据进行向量维度的扩充,得到第四张量,然后根据对象数据中字符型特征的种类数量对第二字符型数据进行向量维度的扩充,得到第五张量,其中,其中,第四张量包含四个维度的向量,第五张量包含四个维度的向量。最后,商品推荐系统根据对象数据中字符型特征的数量以及商品数据中数值型特征的数量,对第四张量与第五张量进行叠加,得到第六张量,并对第六张量进行线性变换,并基于第二神经网络上预设的函数对变换后的第六张量进行加权计算,得到第二目标张量。
[0070]
在一种可选的实施例中,图3示出了一种深度学习神经网络结构示意图,如图3所示,该深度学习神经网络可分为左右两部分,左边对应的是第一神经网络,右边对应的是第二神经网络,以下以第一神经网络这一侧进行说明。
[0071]
将第一数值型数据batch_size
×1×
m_q输入至第一神经网络的第一层神经元中,第一层神经元会对第一数值型数据batch_size
×1×
m_q点乘以一个形状为m_q
×
d的参数矩阵v,从而第一层神经元会输出一个形状为batch_size
×1×
m_q
×
d的第一张量。另外,商品推荐系统还会将第一字符型数据batch_size
×1×
n_q输入至第一神经网络的第一层神经元中,第一层神经元会对第一字符型数据batch_size
×1×
n_q构建一个n
×
d的embeding矩阵,然后输出一个形状为batch_size
×1×
n_q
×
d的第二张量。其中,此处的n即为用户数据中字符型特征的种类数量。
[0072]
如图3所示,在得到第一张量batch_size
×1×
m_q
×
d以及第二张量batch_size
×1×
n_q
×
d之后,第一神经网络还会根据第一张量的第三个轴以及第二张量的第三个轴对第一张量与第二张量进行叠加,得到第三张量batch_size
×1×
(m_q+n_q)
×
d,其中,第一
张量中的第三个轴为m_q向量,第二张量中的第三个轴为n_q向量。
[0073]
如图3所示,在得到第三张量之后,还需要进行两部分操作,一部分为将第三张量batch_size
×1×
(m_q+n_q)
×
d按第三个轴求和(对应图3中的reduce_sum),输出形状为batch_size
×1×
d的第一子目标张量h1。另一部分是将第三张量batch_size
×1×
(m_q+n_q)
×
d从第三个轴开始铺开(对应图3中的flatten)输出形状为batch_size
×1×
((m_q+n_q)d)的张量,然后对此张量应用一个线性变换和relu激活函数的加权计算,输出一个形状为batch_size
×1×
d1的第二子目标张量h2,接着再对h2应用一个线性变换和relu激活函数的加权计算,输出一个形状为batch_size
×1×
d2的第三子目标张量h3。
[0074]
最后,如图3所示,将第一部分所得的第一子目标张量h1和第二部分所得的第二子目标张量h2、第三子目标张量h3按第三个轴拼接在一起形成一个形状为batch_size
×1×
(d+d1+d2)的张量;最后对该张量应用一个线性变换和tanh激活函数最终输出一个每个维度取值都在(-1,1)之间的形状为batch_size
×1×
h的张量vq。其中,张量vq即为第一目标张量。
[0075]
另外,如图3所示,右边的第二神经网络做与第一神经网络类似的处理,最终输出一个形状为batch_size
×
group_size
×
h的第二目标张量vi。
[0076]
在一种可选的实施例中,如图3所示,本技术还提出一种基于“group比较”的hingloss损失函数。其公式为:
[0077][0078]
其中,上述公式中的cosine_similarity为第一目标张量vq和第二目标张量vi之间的cosine相似度,形状为batch_size
×
group_size,cosine_similarity0为cosine_similarity中第二个轴上第一个位置的值,表示客户和正样本商品的相似度。cosine_similarityi为cosine_similarity中第二个轴上其余位置的值,分别表示客户和负样本商品的相似度,其中,(i=1,2,

group_size-1)。ε为一个偏移值,一般取值为0.05。最终输出的group_hingloss相当于拿正样本的相似度分别对其他group_size-1个负样本做比较,当相似度低于负样本时给一个惩罚,高于负样本ε时不做惩罚并取值为0。
[0079]
在一种可选的实施例中,商品推荐系统可使用sgd随机梯度下降算法对上述的第一神经网络以及第二神经网络分别进行迭代训练,最终输出两个模型:第一模型和第二模型。其中,第一模型也称为客户模型,第二模型也称为商品模型。
[0080]
在一种可选的实施例中,在根据至少一个训练数据训练得到第一模型以及第二模型之后,商品推荐系统将对象数据输入至第一模型中,得到对象特征向量,然后将对象特征向量输入至向量检索引擎中,得到索引文件,并将索引文件存储在向量检索引擎中。
[0081]
可选的,图4示出了根据本技术实施例的一种推荐商品的方法流程图。如图4所示,首先商品推荐系统获取历史时间段内的历史用户特征数据、商品数据以及交易标签数据,然后基于历史用户特征数据、商品数据以及交易标签数据构建正样本和负样本,并根据正样本和负样本训练第一神经网络和第二神经网络,同时构建损失函数group_hingloss。随
后,商品推荐系统根据损失函数group_hingloss对第一神经网络和第二神经网络进行迭代,得到客户模型以及商品模型。最后,商品推荐系统将所有的商品数据输入至商品模型中,得到商品特征向量,然后将所有的商品特征向量输入至向量检索引擎中以cosine距离建立向量索引,输出索引文件。当用户点击到商品推荐页面时,从商品推荐系统获取该用户的用户特征数据并输入到客户模型中,得到用户特征向量,然后商品推荐系统将用户特征向量输入到向量检索引擎中根据cosine距离召回目标商品清单呈现给该用户。
[0082]
由上述内容可知,通过本技术的技术方案,可以高效、精准地从海量商品中召回用户最有购买意愿的商品,从而可以提升用户体验和商品购买率。另外,本技术不仅可以根据客户推荐产品,也可以根据产品推荐客户,只需将数据互换输入即可。
[0083]
实施例2
[0084]
根据本技术实施例,还提供了一种推荐对象的确定装置实施例,其中,图5是根据本技术实施例的一种可选的推荐对象的确定装置示意图,如图5所示,该装置包括:获取模块501、向量转换模块502、输入模块503以及推荐模块504。
[0085]
其中,获取模块501,用于获取目标用户的用户特征数据,其中,目标用户的用户特征数据至少表征目标用户的身份特征;向量转换模块502,用于基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量;输入模块503,用于将用户特征向量输入至向量检索引擎中,得到对象清单,其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;推荐模块504,用于将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。
[0086]
可选的,推荐对象的确定装置还包括模型训练模块,其中,模型训练模块包括:第一获取单元、构建单元以及训练单元。其中,第一获取单元,用于获取历史时间段内的历史用户特征数据、对象数据以及交易标签数据,其中,对象数据为在历史时间段内能够被交易的对象的对象信息,交易标签数据用于表征在历史时间段内对象数据中每个对象所对应的购买记录,历史用户特征数据为在历史时间段内浏览过对象数据中的对象的用户的用户特征信息;构建单元,用于根据历史用户特征数据、对象数据以及交易标签数据构建至少一个训练数据,其中,每个训练数据由正样本和负样本组成,正样本包含用户在历史时间段内所购买过的对象,负样本包含用户在历史时间段内未购买过的对象;训练单元,用于根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型,其中,第二模型用于将对象数据转换为生成索引文件所需的对象特征向量。
[0087]
可选的,推荐对象的确定装置还包括:第一获取模块和第一预处理模块。其中,第一获取模块,用于获取历史用户特征数据中的数值型用户数据以及字符型用户数据,其中,数值型用户数据为历史用户特征数据中表现形式为数值形式的数据,字符型用户数据为历史用户特征数据中表现形式为非数值形式的数据;第一预处理模块,用于对数值型用户数据以及字符型用户数据进行预处理,得到第一数值型数据以及第一字符型数据,其中,第一数值型数据中至少包含历史用户特征数据中数值型特征的数量,第一字符型数据中至少包含历史用户特征数据中字符型特征的数量,第一数值型数据和第一字符型数据的表现形式为三维向量。
[0088]
可选的,推荐对象的确定装置还包括:第二获取模块和第二预处理模块。其中,第二获取模块,用于获取对象数据中的数值型对象数据以及字符型对象数据,其中,数值型对象数据为对象数据中表现形式为数值形式的数据,字符型对象数据为对象数据中表现形式为非数值形式的数据;第二预处理模块,用于对数值型对象数据以及字符型对象数据进行预处理,得到第二数值型数据以及第二字符型数据,其中,第二数值型数据中至少包含样本总数量以及对象数据中数值型特征的数量,第二字符型数据中至少包含样本总数量以及对象数据中字符型特征的数量,样本总数量为至少一个训练数据中正样本数量与负样本数量之和,第二数值型数据和第二字符型数据的表现形式为三维向量。
[0089]
可选的,上述训练单元还包括:第一确定子单元、第二确定子单元、第三确定子单元、第四确定子单元以及第五确定子单元。其中,第一确定子单元,用于根据第一数值型数据和第一字符型数据确定第一目标张量,其中,第一目标张量表征历史用户特征数据中每个历史用户的用户特征;第二确定子单元,用于根据第二数值型数据和第二字符型数据确定第二目标张量,其中,第一目标张量表征对象数据中每个对象的对象特征;第三确定子单元,用于确定第一目标张量与第二目标张量之间的相似度;第四确定子单元,用于根据相似度、第一目标张量以及第二目标张量确定目标损失函数;第五确定子单元,用于根据第一目标张量、第二目标张量以及目标损失函数分别对第一神经网络以及第二神经网络进行迭代,得到第一模型以及第二模型。
[0090]
可选的,上述第一确定子单元还包括:第一向量处理子模块、第二向量处理子模块、第一叠加子模块以及第一线性变换子模块。其中,第一向量处理子模块,用于根据历史用户特征数据中数值型特征的数量对第一数值型数据进行向量维度的扩充,得到第一张量,其中,第一张量包含四个维度的向量;第二向量处理子模块,用于根据历史用户特征数据中字符型特征的种类数量对第一字符型数据进行向量维度的扩充,得到第二张量,其中,第二张量包含四个维度的向量;第一叠加子模块,用于根据历史用户特征数据中字符型特征的数量以及历史用户特征数据中数值型特征的数量,对第一张量与第二张量进行叠加,得到第三张量;第一线性变换子模块,用于对第三张量进行线性变换,并基于第一神经网络上预设的函数对变换后的第三张量进行加权计算,得到第一目标张量。
[0091]
可选的,上述第二确定子单元还包括:第三向量处理子模块、第四向量处理子模块、第二叠加子模块以及第二线性变换子模块。其中,第三向量处理子模块,用于根据对象数据中数值型特征的数量对第二数值型数据进行向量维度的扩充,得到第四张量,其中,第四张量包含四个维度的向量;第四向量处理子模块,用于根据对象数据中字符型特征的种类数量对第二字符型数据进行向量维度的扩充,得到第五张量,其中,第五张量包含四个维度的向量;第二叠加子模块,用于根据对象数据中字符型特征的数量以及对象数据中数值型特征的数量,对第四张量与第五张量进行叠加,得到第六张量;第二线性变换子模块,用于对第六张量进行线性变换,并基于第二神经网络上预设的函数对变换后的第六张量进行加权计算,得到第二目标张量。
[0092]
可选的,推荐对象的确定装置还包括:第一输入模块以及第二输入模块。其中,第一输入模块,用于将对象数据输入至第二模型中,得到对象特征向量;第二输入模块,用于将对象特征向量输入至向量检索引擎中,得到索引文件,并将索引文件存储在向量检索引擎中。
[0093]
实施例3
[0094]
根据本技术实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的推荐对象的确定方法。
[0095]
实施例4
[0096]
根据本技术实施例的另一方面,还提供了一种电子设备,其中,图6是根据本技术实施例的一种可选的电子设备的示意图,如图6所示,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
[0097]
获取目标用户的用户特征数据,其中,目标用户的用户特征数据至少表征目标用户的身份特征;基于第一模型对目标用户的用户特征数据进行向量转换,得到用户特征向量;将用户特征向量输入至向量检索引擎中,得到对象清单,其中,对象清单上记录有至少一个对象的对象信息,向量检索引擎中部署有索引文件,索引文件至少包括目标用户特征向量,目标用户特征向量与对象信息相对应,并且目标用户特征向量与用户特征向量的相似度大于预设阈值;将对象清单上的对象确定为推荐对象,并将推荐对象的对象信息发送至目标用户所对应的终端设备中。
[0098]
可选的,处理器执行程序时还实现以下步骤:获取历史时间段内的历史用户特征数据、对象数据以及交易标签数据,其中,对象数据为在历史时间段内能够被交易的对象的对象信息,交易标签数据用于表征在历史时间段内对象数据中每个对象所对应的购买记录,历史用户特征数据为在历史时间段内浏览过对象数据中的对象的用户的用户特征信息;根据历史用户特征数据、对象数据以及交易标签数据构建至少一个训练数据,其中,每个训练数据由正样本和负样本组成,正样本包含用户在历史时间段内所购买过的对象,负样本包含用户在历史时间段内未购买过的对象;根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型,其中,第二模型用于将对象数据转换为生成索引文件所需的对象特征向量。
[0099]
可选的,处理器执行程序时还实现以下步骤:在根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型之前,获取历史用户特征数据中的数值型用户数据以及字符型用户数据,其中,数值型用户数据为历史用户特征数据中表现形式为数值形式的数据,字符型用户数据为历史用户特征数据中表现形式为非数值形式的数据;对数值型用户数据以及字符型用户数据进行预处理,得到第一数值型数据以及第一字符型数据,其中,第一数值型数据中至少包含历史用户特征数据中数值型特征的数量,第一字符型数据中至少包含历史用户特征数据中字符型特征的数量,第一数值型数据和第一字符型数据的表现形式为三维向量。
[0100]
可选的,处理器执行程序时还实现以下步骤:在根据至少一个训练数据分别对预设的第一神经网络及预设的第二神经网络进行训练,得到第一模型以及第二模型之前,获取对象数据中的数值型对象数据以及字符型对象数据,其中,数值型对象数据为对象数据中表现形式为数值形式的数据,字符型对象数据为对象数据中表现形式为非数值形式的数据;对数值型对象数据以及字符型对象数据进行预处理,得到第二数值型数据以及第二字符型数据,其中,第二数值型数据中至少包含样本总数量以及对象数据中数值型特征的数量,第二字符型数据中至少包含样本总数量以及对象数据中字符型特征的数量,样本总数
量为至少一个训练数据中正样本数量与负样本数量之和,第二数值型数据和第二字符型数据的表现形式为三维向量。
[0101]
可选的,处理器执行程序时还实现以下步骤:根据第一数值型数据和第一字符型数据确定第一目标张量,其中,第一目标张量表征历史用户特征数据中每个历史用户的用户特征;根据第二数值型数据和第二字符型数据确定第二目标张量,其中,其中,第一目标张量表征对象数据中每个对象的对象特征;确定第一目标张量与第二目标张量之间的相似度;根据相似度、第一目标张量以及第二目标张量确定目标损失函数;根据第一目标张量、第二目标张量以及目标损失函数分别对第一神经网络以及第二神经网络进行迭代,得到第一模型以及第二模型。
[0102]
可选的,处理器执行程序时还实现以下步骤:根据历史用户特征数据中数值型特征的数量对第一数值型数据进行向量维度的扩充,得到第一张量,其中,第一张量包含四个维度的向量;根据历史用户特征数据中字符型特征的种类数量对第一字符型数据进行向量维度的扩充,得到第二张量,其中,第二张量包含四个维度的向量;根据历史用户特征数据中字符型特征的数量以及历史用户特征数据中数值型特征的数量,对第一张量与第二张量进行叠加,得到第三张量;对第三张量进行线性变换,并基于第一神经网络上预设的函数对变换后的第三张量进行加权计算,得到第一目标张量。
[0103]
可选的,处理器执行程序时还实现以下步骤:根据对象数据中数值型特征的数量对第二数值型数据进行向量维度的扩充,得到第四张量,其中,第四张量包含四个维度的向量;根据对象数据中字符型特征的种类数量对第二字符型数据进行向量维度的扩充,得到第五张量,其中,第五张量包含四个维度的向量;根据对象数据中字符型特征的数量以及对象数据中数值型特征的数量,对第四张量与第五张量进行叠加,得到第六张量;对第六张量进行线性变换,并基于第二神经网络上预设的函数对变换后的第六张量进行加权计算,得到第二目标张量。
[0104]
可选的,处理器执行程序时还实现以下步骤:在根据至少一个训练数据训练得到第一模型以及第二模型之后,将对象数据输入至第二模型中,得到对象特征向量;将对象特征向量输入至向量检索引擎中,得到索引文件,并将索引文件存储在向量检索引擎中。
[0105]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0106]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0107]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0108]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0109]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0110]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0111]
以上仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1