发明内容
基于此,有必要针对上述技术问题,提供一种能够提高精准性的产品推送方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种产品推送方法。所述方法包括:
获取多个用户标识的用户信息和多个产品标识的产品信息;
基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量;
计算所述用户目标特征向量和所述产品目标特征向量之间的相似度,基于所述相似度确定所述多个用户标识中每个用户标识对应的待推送产品标识,所述待推送产品标识用于推送给对应的用户标识。
在一个实施例中,所述基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图包括:
将每一个所述用户标识作为一个用户节点,将每一个所述产品标识作为一个产品节点;所述用户节点的用户节点表征包括所述用户信息中的用户特征;
基于所述用户信息中的已获得产品特征,将每一个所述产品标识的有效年限范围划分成多个有效年限区间,将每一个所述产品标识的每一个有效年限区间作为一个产品子节点;所述产品子节点的产品子节点表征包括所述产品信息中的产品特征和有效年限区间;
将同一个产品标识对应的多个产品子节点与产品节点进行连接,基于所述用户信息中的已获得产品特征,将用户节点与对应的产品子节点进行连接,得到包括用户节点、产品子节点和产品节点的异质图。
在一个实施例中,所述基于所述用户信息中的已获得产品特征,将每一个所述产品标识的有效年限范围划分成多个有效年限区间包括:
获取各个所述已获得产品特征中的产品标识和已获得年限;
分别对每一个产品标识的已获得年限进行统计,得到每一个产品标识对应的有效年限范围;
基于预设时间间隔,对每一个所述产品标识对应的有效年限范围进行划分,得到每一个所述产品标识对应的多个有效年限区间。
在一个实施例中,所述对所述异质图进行特征提取包括:
将所述用户节点表征转换成用户初始矩阵,将所述产品子节点表征转换成子节点初始矩阵;
统计所述异质图中同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,得到所述产品节点对应的产品初始矩阵;
基于所述用户初始矩阵、子节点初始矩阵和产品初始矩阵,得到所述异质图对应的初始特征矩阵;
基于所述异质图中用户节点、产品子节点和产品节点之间的连接关系,得到所述异质图对应的邻接矩阵。
在一个实施例中,所述统计所述异质图中同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,得到所述产品节点对应的产品初始矩阵包括:
基于所述异质图,统计每一个所述产品子节点与用户节点之间的连接次数,得到各个所述产品子节点对应的第一连接次数;
基于所述异质图,统计每一个所述产品节点连接的各个产品子节点对应的第一连接次数,得到各个所述产品节点对应的第二连接次数;
将产品子节点对应的第一连接次数与所述产品子节点连接的产品节点对应的第二连接次数之间的比值,作为所述产品子节点对应的权值;
将所述产品子节点对应的子节点初始矩阵和权值进行融合,得到所述产品子节点对应的子节点融合矩阵;
针对每一个所述产品节点,统计所述产品节点连接的各个产品子节点对应的子节点融合矩阵,得到所述产品节点对应的产品初始矩阵。
在一个实施例中,所述对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量包括:
将所述初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵;所述特征提取函数中包含调整参数;
获取所述中间特征矩阵中的用户中间矩阵和产品中间矩阵,基于所述用户中间矩阵和产品中间矩阵构建误差损失函数;
对所述误差损失函数进行调整得到所述调整参数的参数值,将所述参数值带入所述中间特征矩阵,得到参考特征矩阵;
将所述参考特征矩阵作为更新后的初始特征矩阵,返回执行所述将所述初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵的步骤,直至返回次数达到预设次数,得到目标特征矩阵;
从所述目标特征矩阵中获取用户目标矩阵和产品目标矩阵,将所述用户目标矩阵转换成用户目标特征向量,将所述产品目标矩阵转换成产品目标特征向量。
在一个实施例中,所述获取所述中间特征矩阵中的用户中间矩阵和产品中间矩阵,基于所述用户中间矩阵和产品中间矩阵构建误差损失函数包括:
对所述用户中间矩阵和产品中间矩阵进行转换,得到用户中间特征向量和产品中间特征向量;
基于所述用户信息中的已获得产品特征,确定每一个所述用户标识对应的目标产品标识,获取所述目标产品标识对应的产品中间特征向量;
计算所述用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度,得到所述用户标识对应的目标函数;
基于各个所述目标函数,构建误差损失函数。
第二方面,本申请还提供了一种产品推送装置。所述装置包括:
获取模块,用于获取多个用户标识的用户信息和多个产品标识的产品信息;
构建模块,用于基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
提取模块,用于对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量;
推送模块,用于计算所述用户目标特征向量和所述产品目标特征向量之间的相似度,基于所述相似度确定所述多个用户标识中每个用户标识对应的待推送产品标识,所述待推送产品标识用于推送给对应的用户标识。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多个用户标识的用户信息和多个产品标识的产品信息;
基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量;
计算所述用户目标特征向量和所述产品目标特征向量之间的相似度,基于所述相似度确定所述多个用户标识中每个用户标识对应的待推送产品标识,所述待推送产品标识用于推送给对应的用户标识。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多个用户标识的用户信息和多个产品标识的产品信息;
基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量;
计算所述用户目标特征向量和所述产品目标特征向量之间的相似度,基于所述相似度确定所述多个用户标识中每个用户标识对应的待推送产品标识,所述待推送产品标识用于推送给对应的用户标识。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取多个用户标识的用户信息和多个产品标识的产品信息;
基于所述用户信息和所述产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
对所述异质图进行特征提取,得到所述用户节点对应的用户目标特征向量和所述产品节点对应的产品目标特征向量;
计算所述用户目标特征向量和所述产品目标特征向量之间的相似度,基于所述相似度确定所述多个用户标识中每个用户标识对应的待推送产品标识,所述待推送产品标识用于推送给对应的用户标识。
上述产品推送方法、装置、计算机设备、存储介质和计算机程序产品,获取多个用户标识的用户信息和多个产品标识的产品信息,根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,对上述异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量,计算用户目标特征向量和产品目标特征向量之间的相似度,根据相似度确定每个用户标识对应的待推送产品标识,将待推送产品标识推送给对应的用户标识。根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,该异质图包括了用户信息、产品信息和用户购买产品的信息,包含的信息更加丰富,为特征提取提供了丰富的基础数据,提高了用户目标特征向量和产品目标特征向量的准确性,通过计算每一个用户目标特征向量与各个产品目标特征向量之间的相似度,将每一个用户与各个产品之间的匹配程度转化为可量化的相似度,按照相似度从大到小的顺序,分别为每个用户选择多个匹配程度较高的待推送产品,提高产品推送的精准性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的产品推送方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端和服务器均可单独用于执行本申请实施例中提供的产品推送方法。终端和服务器也可协同用于执行本申请实施例中提供的产品推送方法。例如,终端102发送产品推送推荐请求,服务器104接收产品推送请求,然后获取多个用户标识的用户信息和多个产品标识的产品信息,根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,对上述异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量,计算用户目标特征向量和产品目标特征向量之间的相似度,根据相似度确定每个用户标识对应的待推送产品标识,将待推送产品标识推送给对应的用户标识。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种产品推送方法,该方法可应用于计算机设备,计算机设备可以是终端或服务器,由终端或服务器自身单独执行,也可以通过终端和服务器之间的交互来实现。本实施例以该方法应用于计算机设备为例进行说明,包括步骤202到步骤208。
步骤202,获取多个用户标识的用户信息和多个产品标识的产品信息。
其中,用户标识是指用于代表用户的字符串。可以理解为,用户的名称。用户标识可以为字母、数字、符号以及他们之间的组合。例如,zhangsan。用户信息是指用于描述用户属性的信息。用户信息可以包括用户的基本属性特征和用户购买产品的属性特征。例如,年龄、性别、职业、年收入等基本属性特征,购买产品的价格、购买时长等等购买产品的属性特征。产品标识是指用于代表产品的字符串。可以理解为,产品的名称或者代号。例如,chanpin01或者123456。产品信息是指产品的基本属性特征。例如,产品的风险等级、产品的利率等等。
示例性地,计算机设备从数据库或者云端获取多个用户标识的用户信息,和多个产品标识的产品信息。
步骤204,基于用户信息和产品信息,构建包括用户节点、产品子节点和产品节点的异质图。
其中,异质图是指含有多种类型节点和关系的图。可以理解为,由多种不同类型的对象和连接组成,每一个节点代表一个对象,节点与节点之间的连接线代表一个连接。用户节点代表一个用户,产品子节点代表一个购买时间区间的产品,产品节点代表一个产品。产品子节点可以理解为将产品节点划分成为多个对象,例如,产品节点代表产品01,其中一个产品子节点代表产品01且购买年限区间为1年至2年之间,另外一个产品子节点代表产品01且购买年限区间为2年至3年之间。
示例性地,计算机设备根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图。
在一个实施例中,计算机设备对用户信息进行统计分类,将用户划分为多个类别的用户,每个类别的用户为一个用户节点。例如,对用户信息中的用户年龄进行统计,根据统计结果将用户年龄划分成为多个年龄段,分别为21岁至25岁、26岁至30岁、31岁至35岁等等共计10个年龄段的客户,每个年龄段的客户作为一个用户节点。
步骤206,对异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量。
其中,特征向量是指代表节点属性特征的向量。可以理解为,代表对象多个属性特征的向量,特征向量可以表征对象的特点。
示例性地,计算机设备对异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量。
在一个实施例中,计算机设备将异质图输入到目标图神经网络模型,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量。其中,图神经网络(Graph Neural Network,GNN)是指使用神经网络来学习图结构数据,提取和发掘图结构数据中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。
步骤208,计算用户目标特征向量和产品目标特征向量之间的相似度,基于相似度确定多个用户标识中每个用户标识对应的待推送产品标识,待推送产品标识用于推送给对应的用户标识。
其中,相似度是指两个向量之间的相似程度。相似度可以用两个向量之间的夹角余弦来衡量两个向量方向的差异,或者用两个向量之间的皮尔逊相关系数来衡量两个向量间联系的紧密程度,或者其他方法等等。
示例性地,计算机设备计算用户目标特征向量与各个产品目标特征向量之间的相似度,根据相似度为每个用户标识确定一个或者多个待推送产品标识,将待推送产品标识推送给对应的用户标识。
在一个实施例中,计算机设备计算用户目标特征向量和产品目标特征向量之间的相似度,对得到的所有相似度进行从大到小的排序,选择最大相似度对应的产品标识作为各个用户标识对应的待推送产品标识,将待推送产品标识推送给所有的用户标识。
在一个实施例中,计算机设备计算目标用户标识对应的用户目标特征向量与各个产品目标特征向量之间的相似度,对目标用户标识对应的所有相似度进行从大到小排序,依次选择预设数量的相似度对应的产品标识作为目标用户标识对应的待推送产品标识,将待推送产品标识推送给目标用户标识。
上述产品推送方法中,获取多个用户标识的用户信息和多个产品标识的产品信息,根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,对上述异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量,计算用户目标特征向量和产品目标特征向量之间的相似度,根据相似度确定每个用户标识对应的待推送产品标识,将待推送产品标识推送给对应的用户标识。根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,该异质图包括了用户信息、产品信息和用户购买产品的信息,包含的信息更加丰富,为特征提取提供了丰富的基础数据,提高了用户目标特征向量和产品目标特征向量的准确性,通过计算每一个用户目标特征向量与各个产品目标特征向量之间的相似度,将每一个用户与各个产品之间的匹配程度转化为可量化的相似度,按照相似度从大到小的顺序,分别为每个用户选择多个匹配程度较高的待推送产品,提高产品推送的精准性。
在一个实施例中,如图3所示,基于用户信息和产品信息,构建包括用户节点、产品子节点和产品节点的异质图包括:
步骤302,将每一个用户标识作为一个用户节点,将每一个产品标识作为一个产品节点;用户节点的用户节点表征包括用户信息中的用户特征。
其中,用户节点表征是指用户节点对应用户的用户特征组成的集合。可以理解为,多个用户特征组成的集合,包含的用户特征可以根据实际需求进行选择。用户特征是指用户的属性特征。例如,用户节点表征包含4个用户特征,分别为年龄、性别、职业、年收入。
示例性地,计算机设备将每一个用户标识作为一个用户节点,将每一个产品标识作为一个产品节点,从用户信息中选择出用户特征组成用户节点的用户节点表征。
步骤304,基于用户信息中的已获得产品特征,将每一个产品标识的有效年限范围划分成多个有效年限区间,将每一个产品标识的每一个有效年限区间作为一个产品子节点;产品子节点的产品子节点表征包括产品信息中的产品特征和有效年限区间。
其中,已获得产品特征是指用户已购买产品的属性特征。已获得产品特征包括但不限于已获得产品标识、已获得产品年限、已获得产品数量等等。有效年限范围是指产品最短购买年限至最长购买年限之间的范围。例如,chanpin01的最短购买年限为3个月,截止目前,最长的购买年限为12个月,则有效年限范围为3个月至12个月。有效年限区间是指划分的购买年限区间。例如,将有效年限范围划分成2个购买年限区间,分别为3个月至7个月、8个月至12个月。产品子节点表征是指产品子节点对应产品的产品特征和有效年限区间组成的集合。可以理解为,多个产品特征和有效年限区间组成的集合,包含的产品特征可以根据实际需求进行选择。产品特征是指产品的属性特征。例如,用户节点表征包含3个产品特征和有效年限区间,产品特征可分别为价格、资源增益(如利率)、风险等级,有效年限区间可为3个月至7个月。
示例性地,计算机设备从用户信息中获取已获得产品特征,对全部用户标识对应的已获得产品特征进行统计,得到每一个产品标识对应的有效年限范围,然后将每一个产品标识的有效年限范围划分成多个有效年限区间,将每一个产品标识的每一个有效年限区间作为一个产品子节点,从产品信息中获取产品特征,将获取的产品特征与有效年限区间组成产品子节点的产品子节点表征。
在一个实施例中,计算机设备从用户信息中获取已获得产品特征,其中包括已获得产品的发售日期、截止日期、最短购买期限,然后获取当前日期,将当前日期与截止日期进行比较,如果当前日期大于截止日期,则用截止日期减去发售日期得到最长购买期限,将最短购买期间至最长购买期限作为有效年限范围;如果当前日期小于截止日期,则用当前日期减去发售日期得到最长购买期限,将最短购买期间至最长购买期限作为有效年限范围。
步骤306,将同一个产品标识对应的多个产品子节点与产品节点进行连接,基于用户信息中的已获得产品特征,将用户节点与对应的产品子节点进行连接,得到包括用户节点、产品子节点和产品节点的异质图。
示例性地,计算机设备将同一个产品标识对应的多个产品子节点与产品节点进行连接,然后根据用户信息中的已获得产品特征,将用户节点与对应的产品子节点进行连接,得到包括用户节点、产品子节点和产品节点的异质图。
本实施例中,根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,该异质图包括了用户信息、产品信息和用户购买产品的信息,包含的信息更加丰富,为特征提取提供了丰富的基础数据。
在一个实施例中,基于用户信息中的已获得产品特征,将每一个产品标识的有效年限范围划分成多个有效年限区间包括:
获取各个已获得产品特征中的产品标识和已获得年限;分别对每一个产品标识的已获得年限进行统计,得到每一个产品标识对应的有效年限范围;基于预设时间间隔,对每一个产品标识对应的有效年限范围进行划分,得到每一个产品标识对应的多个有效年限区间。
其中,已获得年限是指已经购买的年限。已获得年限可以为当前日期减去购买日期,也可以为产品的固定购买期限。例如,chanpin01为固定购买期限的产品,固定购买年期限为2年,用当前日期减去购买日期得到持有年限,如果持有年限小于或者等于2年,则已获得年限为2年,如果持有年限大于2年,则已获得年限为持有年限。预设时间间隔是指预先设定的划分间隔。
示例性地,计算机设备获取所有用户标识对应的已获得产品特征,从已获得产品特征中获取产品标识和已获得年限,分别对每一个产品标识的已获得年限进行统计,得到每一个产品标识对应的有效年限范围,然后根据预设时间间隔对每一个产品标识对应的有效年限范围进行划分,得到每一个产品标识对应的多个有效年限区间。
在一个实施例中,计算机设备分别对每一个产品标识的已获得年限进行汇总,然后对每一个产品标识的已获得年限进行排序,选择出每一个产品标识对应的最小已获得年限与最大已获得年限,将最小已获得年限与最大已获得年限组成的范围区间作为每一个产品标识对应的有效年限范围,根据每一个产品标识的已获得年限的分布特征将有效年限范围划分成第一时间段和第二时间段,其中,第一时间段中已获得年限分布密集,选择划分范围小的第一预设时间间隔,采用第一预设时间间隔对第一时间段进行划分,第二时间段中已获得年限分布稀疏,选择划分范围大的第二预设时间间隔,采用第二预设时间间隔对第二时间段进行划分,得到每一个产品标识对应的多个有效年限区间。
本实施例中,对每一个产品标识的有效年限范围进行划分,得到每一个产品标识对应的多个有效年限区间,将每一个产品标识的每一个有效年限区间作为一个产品子节点,将用户节点与产品子节点进行连接,增加了异质图中包含的信息量。
在一个实施例中,如图4所示,对异质图进行特征提取包括:
步骤402,将用户节点表征转换成用户初始矩阵,将产品子节点表征转换成子节点初始矩阵。
其中,矩阵是指按照阵列排列的复数或实数集合。可以理解为,m行n列的矩阵(简称m×n矩阵)是由m×n个数aij排成的m行n列的数表。
示例性地,计算机设备将用户节点表征转换成用户初始矩阵,将产品子节点表征转换成子节点初始矩阵。例如,用户节点表征包括年龄、性别、职业、年收入,用户标识zhangsan对应的用户节点表征为{25,女,教师,10万},转换成的用户初始矩阵为[25 1 310]。
在一个实施例中,用户初始矩阵和子节点初始矩阵为列数相同的行矩阵,例如,一行n列矩阵。或者,用户初始矩阵和子节点初始矩阵为行数相同的列矩阵,例如,n行一列矩阵。
在一个实施例中,计算机设备采用将离散特征转换为数字特征的方法,将用户节点表征转换成为用户初始矩阵,将产品子节点表征转换成子节点初始矩阵。例如,对性别等分类数较小的特征使用OneHotEncoder进行转换,对于职业等分类数较多的特征利用word2vec进行转换。其中,OneHotEncoder(One-Hot编码,又称为一位有效编码)采用n位状态寄存器对n个状态进行编码,可以将一个特征转换成一个数字。word2vec是一群用来产生词向量的相关模型,可以将每个特征转换成一个向量。
步骤404,统计异质图中同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,得到产品节点对应的产品初始矩阵。
示例性地,计算机设备获取同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,然后将获取的子节点初始矩阵相加,得到产品节点对应的产品初始矩阵。
步骤406,基于用户初始矩阵、子节点初始矩阵和产品初始矩阵,得到异质图对应的初始特征矩阵。
示例性地,计算机设备将用户初始矩阵、子节点初始矩阵和产品初始矩阵,按照一定的顺序进行组合,得到异质图对应的初始特征矩阵。
在一个实施例中,计算机设备对异质图中每一个节点进行编号,用户初始矩阵、子节点初始矩阵和产品初始矩阵分别为列数相同的行矩阵,然后将用户初始矩阵、子节点初始矩阵和产品初始矩阵按照对应节点的编号进行排列,组成异质图的初始特征矩阵。
步骤408,基于异质图中用户节点、产品子节点和产品节点之间的连接关系,得到异质图对应的邻接矩阵。
示例性地,计算机设备根据异质图中用户节点、产品子节点和产品节点之间的连接关系,得到异质图对应的邻接矩阵。
本实施例中,将异质图中用户节点表征转换成用户初始矩阵,将产品子节点表征转换成产品子节点初始矩阵,根据产品子节点初始矩阵以及异质图中产品节点与产品子节点之间的连接关系得到产品节点初始矩阵,产品节点初始矩阵中不仅包括了产品的属性特征,还包括了用户购买产品的属性特征,增加了异质图初始特征矩阵的信息量,为特征提取提供了丰富的基础数据。
在一个实施例中,统计异质图中同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,得到产品节点对应的产品初始矩阵包括:
基于异质图,统计每一个产品子节点与用户节点之间的连接次数,得到各个产品子节点对应的第一连接次数;基于异质图,统计每一个产品节点连接的各个产品子节点对应的第一连接次数,得到各个产品节点对应的第二连接次数;将产品子节点对应的第一连接次数与产品子节点连接的产品节点对应的第二连接次数之间的比值,作为产品子节点对应的权值;将产品子节点对应的子节点初始矩阵和权值进行融合,得到产品子节点对应的子节点融合矩阵;针对每一个产品节点,统计产品节点连接的各个产品子节点对应的子节点融合矩阵,得到产品节点对应的产品初始矩阵。
其中,权值是指比重。可以理解为,代表占比的系数。
示例性地,计算机设备根据上述异质图,统计每一个产品子节点与用户节点之间的连接次数,得到各个产品子节点对应的第一连接次数,将每一个产品节点连接的各个产品子节点对应的第一连接次数相加,得到各个产品节点对应的第二连接次数,将产品子节点对应的第一连接次数除以产品子节点连接的产品节点对应的第二连接次数,得到产品子节点对应的权值,将产品子节点对应的子节点初始矩阵和权值相乘,得到产品子节点对应的子节点融合矩阵,将每一个产品节点连接的各个产品子节点对应的子节点融合矩阵相加,得到产品节点对应的产品初始矩阵。
本实施例中,将产品子节点对应的子节点初始矩阵和权值相乘,得到产品子节点对应的子节点融合矩阵,子节点融合矩阵不仅包含用户购买产品的信息,而且包括用户购买产品的偏好程度,提高了子节点融合矩阵的信息量,将每一个产品节点连接的各个产品子节点对应的子节点融合矩阵相加,得到产品节点对应的产品初始矩阵,进一步提高了产品初始矩阵的信息量,为特征提取提供了更丰富的基础数据。
在一个实施例中,如图5所示,对异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量包括:
步骤502,将初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵;特征提取函数中包含调整参数。
其中,特征提取函数是指可以达到特征提取目的函数。例如,图神经网络模型中可以达到特征提取目的的函数。中间特征矩阵是指包含变量的矩阵。调整参数是指可以进行调整的变量。
示例性地,计算机设备将始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵。
在一个实施例中,特征提取函数为:
其中,
A为异质图对应的邻接矩阵,I是单位矩阵;D为异质图的度矩阵(用于描述异质图中每个节点的度的矩阵,节点的度表示与该节点相连的边的数量,度矩阵是一个对角矩阵);H
0为初始特征矩阵,H
l为经过l次特征提取的参考特征矩阵;σ为激活函数,激活函数可以为ReLU(Rectified Linear Unit,线性整流函数,通常指代以斜坡函数及其变种为代表的非线性函数)和Softmax(归一化指数函数,可以将多分类的结果以概率的形式展现出来的函数)等等;W
l为第l次特征提取时的调整参数。
步骤504,获取中间特征矩阵中的用户中间矩阵和产品中间矩阵,基于用户中间矩阵和产品中间矩阵构建误差损失函数。
示例性地,计算机设备从中间特征矩阵中获取用户中间矩阵和产品中间矩阵,然后根据用户中间矩阵和产品中间矩阵构建误差损失函数。
在一个实施例中,计算机设备从中间特征矩阵中获取与用户节点编号对应的一行数据作为用户中间矩阵,获取与产品节点编号对应的一行数据作为产品中间矩阵。
步骤506,对误差损失函数进行调整得到调整参数的参数值,将参数值带入中间特征矩阵,得到参考特征矩阵。
示例性地,计算机设备对误差损失函数中的调整参数进行调整,得到每一次调整参数对应的误差损失函数结果,当误差损失函数结果达到最大时,确定此时调整参数对应的数值为参数值,然后将参数值带入到中间特征矩阵,得到参考特征矩阵。
在一个实施例中,计算机设备对误差损失函数进行非线性优化,当误差损失函数结果达到最大值时,确定此时调整参数对应的数值为参数值。其中,非线性优化的方法包括但不限于一阶梯度法、和二阶梯度法、拟牛顿法、高斯-牛顿法等等。
步骤508,将参考特征矩阵作为更新后的初始特征矩阵,返回执行将初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵的步骤,直至返回次数达到预设次数,得到目标特征矩阵。
示例性地,计算机设备将参考特征矩阵作为更新后的初始特征矩阵,返回执行步骤502、步骤504、步骤506、步骤508,每返回执行一次上述步骤,将返回次数加上1得到更新后的返回次数,将返回次数与预设次数进行比对,如果返回次数小于预设次数,则重复上述步骤,如果返回次数等于预设次数,则将此次的参考特征矩阵作为目标特征矩阵。
步骤510,从目标特征矩阵中获取用户目标矩阵和产品目标矩阵,将用户目标矩阵转换成用户目标特征向量,将产品目标矩阵转换成产品目标特征向量。
示例性地,计算机设备从目标特征矩阵中获取用户目标矩阵和产品目标矩阵,然后用户目标矩阵转换成用户目标特征向量,将产品目标矩阵转换成产品目标特征向量。
在一个实施例中,计算机设备将用户目标矩阵中的每一个数据转换成用户目标特征向量中的一个维度的数值,例如,用户目标矩阵为[25 1 3 10],转换为用户目标特征向量为(25,1,3,10)。
在本实施例中,通过每次对误差损失函数中的调整参数进行调整,使误差损失函数达到最大值,此时参考特征矩阵中用户特征向量和产品特征向量之间的相似度最大,提高特征提取的精确度,执行预设次数的特征提取,提高了目标特征矩阵中用户目标特征向量和产品目标特征向量的精确度。
在一个实施例中,获取中间特征矩阵中的用户中间矩阵和产品中间矩阵,基于用户中间矩阵和产品中间矩阵构建误差损失函数包括:
对用户中间矩阵和产品中间矩阵进行转换,得到用户中间特征向量和产品中间特征向量;基于用户信息中的已获得产品特征,确定每一个用户标识对应的目标产品标识,获取目标产品标识对应的产品中间特征向量;计算用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度,得到用户标识对应的目标函数;基于各个目标函数,构建误差损失函数。
其中,目标产品标识是指选定的与用户标识相对应的一个产品标识。目标产品标识可以为用户购买的第一个产品的产品标识、购买的最后一个产品的产品标识或者购买数量最多产品的产品标识等等,可以根据实际需求进行选择。
示例性地,计算机设备将用户中间矩阵转换成为用户中间特征向量,将产品中间矩阵进行转换成为产品中间特征向量,然后根据预设规则,从用户信息中的已获得产品特征确定每一个用户标识对应的目标产品标识,获取目标产品标识对应的产品中间特征向量,计算用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度,得到用户标识对应的目标函数,将各个目标函数进行相加,构建误差损失函数。
在一个实施例中,误差损失函数为:
其中,E(u
i)为第i个用户节点对应的用户中间特征向量,
为第i个用户节点对应的目标产品标识的产品中间特征向量,
为E(u
i)和
之间的相似度。
本实施例中,根据用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度构建误差损失函数,该误差损失函数要求用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度最大,通过对误差损失函数进行非线性优化,使误差损失函数达到最大值,提高用户目标特征向量与产品目标特征向量之间的相似度,提高产品推荐的精确性。
在一个示例性地实施例中,从目标应用程序和目标小程序中获取使用目标应用程序用户或者目标小程序超过5年的用户信息,以及现有的金融产品的产品信息,筛选出没有购买过金融产品的用户,将没有购买过金融产品的用户信息从获取的用户信息中删除。
从用户信息中获取已购买产品特征,对全部用户标识对应的已购买产品特征进行统计,得到每一个产品标识对应的购买年限范围,然后将每一个产品标识的购买年限范围划分成多个购买年限区间,将每一个产品标识的每一个购买年限区间作为一个产品子节点,将每一个用户标识作为一个用户节点,将每一个产品标识作为一个产品节点,然后将同一个产品标识对应的多个产品子节点与产品节点进行连接,再根据用户信息中的已购买产品特征,将用户节点与对应的产品子节点进行连接,得到包括用户节点、产品子节点和产品节点的异质图,如图6所示。
将用户的年龄、性别、职业、年收入作为用户节点表征,第j个用户的用户节点表征为:
h0(uj)=(年龄,性别,职业,年收入) 公式(3)
将金融产品的价格,利率、风险和购买年限作为产品子节点表征,第i个产品连接的其中一个产品子节点表征为:
h0(ij)=(价格,利率、风险、购买年限区间) 公式(4)
将用户节点表征转换成用户初始矩阵,将产品子节点表征转换成子节点初始矩阵,获取同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,然后将获取的子节点初始矩阵相加,例如,第i个产品的产品节点连接了两个产品子节点,则产品节点对应的产品初始矩阵:
H0(i)=αH0(i0)+βH0(i1) 公式(5)
其中,H0(i)为第i个产品的产品节点对应的产品初始矩阵,H0(i0)为第i个产品的产品节点连接的第一个产品子节点对应的子节点初始矩阵,H0(i1)为第i个产品的产品节点连接的第二个产品子节点对应的子节点初始矩阵,α为第一个产品子节点对应的权值,β为第二个产品子节点对应的权值,权值可根据实际需求进行设定。
将用户初始矩阵、子节点初始矩阵和产品初始矩阵按照一定的顺序进行组合,得到异质图对应的初始特征矩阵,根据异质图中用户节点、产品子节点和产品节点之间的连接关系,得到异质图对应的邻接矩阵。
将初始特征矩阵和邻接矩阵输入到公式(1)中的特征提取函数进行特征提取,得到中间特征矩阵,然后从中间特征矩阵中获取用户中间矩阵和产品中间矩阵,计算每一个用户对应的用户中间矩阵和用户最后一次购买的金融产品对应的产品中间矩阵之间的余弦距离,余弦距离计算得到的相似度为每一个用户对应的目标函数,将各个用户对应的目标函数相加,构建如公式(2)所示的误差损失函数,对误差损失函数进行非线性优化,得到特征提取函数中调整参数的参数值,将参数值带入中间特征矩阵得到参考特征矩阵,然后将参考特征矩阵作为初始特征矩阵,重复执行上述步骤,一共重复执行预设次数,得到目标特征矩阵。
从目标特征矩阵中获取用户目标特征矩阵和产品目标特征矩阵,将用户目标特征矩阵转换为用户目标特征向量,将产品目标特征矩阵转换为产品目标特征向量,计算每一个用户对应的用户目标特征向量与各个产品目标特征向量之间的相似度,选择相似度最大的n个产品标识对应的金融产品为用户的待推送产品,将待推送产品推送给对应的用户。
本实施例中,获取多个用户标识的用户信息和多个产品标识的产品信息,根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,对上述异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量,计算用户目标特征向量和产品目标特征向量之间的相似度,根据相似度确定每个用户标识对应的待推送产品标识,将待推送产品标识推送给对应的用户标识。根据用户信息和产品信息构建包括用户节点、产品子节点和产品节点的异质图,该异质图包括了用户信息、产品信息和用户购买产品的信息,包含的信息更加丰富,为特征提取提供了丰富的基础数据,提高了用户目标特征向量和产品目标特征向量的准确性,通过计算每一个用户目标特征向量与各个产品目标特征向量之间的相似度,将每一个用户与各个产品之间的匹配程度转化为可量化的相似度,按照相似度从大到小的顺序,分别为每个用户选择多个匹配程度较高的待推送产品,提高产品推送的精准性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的产品推送法的产品推送置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个产品推送装置实施例中的具体限定可以参见上文中对于产品推送方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种产品推送装置,包括:获取模块、构建模块、提取模块和推送模块,其中:
获取模块702,用于获取多个用户标识的用户信息和多个产品标识的产品信息;
构建模块704,用于基于用户信息和产品信息,构建包括用户节点、产品子节点和产品节点的异质图;
提取模块706,用于对异质图进行特征提取,得到用户节点对应的用户目标特征向量和产品节点对应的产品目标特征向量;
推送模块708,用于计算用户目标特征向量和产品目标特征向量之间的相似度,基于相似度确定多个用户标识中每个用户标识对应的待推送产品标识,待推送产品标识用于推送给对应的用户标识。
在一个实施例中,构建模块704还用于:将每一个用户标识作为一个用户节点,将每一个产品标识作为一个产品节点;用户节点的用户节点表征包括用户信息中的用户特征;基于用户信息中的已获得产品特征,将每一个产品标识的有效年限范围划分成多个有效年限区间,将每一个产品标识的每一个有效年限区间作为一个产品子节点;产品子节点的产品子节点表征包括产品信息中的产品特征和有效年限区间;将同一个产品标识对应的多个产品子节点与产品节点进行连接,基于用户信息中的已获得产品特征,将用户节点与对应的产品子节点进行连接,得到包括用户节点、产品子节点和产品节点的异质图。
在一个实施例中,构建模块704还用于:获取各个已获得产品特征中的产品标识和已获得年限;分别对每一个产品标识的已获得年限进行统计,得到每一个产品标识对应的有效年限范围;基于预设时间间隔,对每一个产品标识对应的有效年限范围进行划分,得到每一个产品标识对应的多个有效年限区间。
在一个实施例中,提取模块706还用于:将用户节点表征转换成用户初始矩阵,将产品子节点表征转换成子节点初始矩阵;统计异质图中同一个产品节点连接的各个产品子节点对应的子节点初始矩阵,得到产品节点对应的产品初始矩阵;基于用户初始矩阵、子节点初始矩阵和产品初始矩阵,得到异质图对应的初始特征矩阵;基于异质图中用户节点、产品子节点和产品节点之间的连接关系,得到异质图对应的邻接矩阵。
在一个实施例中,提取模块706还用于:基于异质图,统计每一个产品子节点与用户节点之间的连接次数,得到各个产品子节点对应的第一连接次数;基于异质图,统计每一个产品节点连接的各个产品子节点对应的第一连接次数,得到各个产品节点对应的第二连接次数;将产品子节点对应的第一连接次数与产品子节点连接的产品节点对应的第二连接次数之间的比值,作为产品子节点对应的权值;将产品子节点对应的子节点初始矩阵和权值进行融合,得到产品子节点对应的子节点融合矩阵;针对每一个产品节点,统计产品节点连接的各个产品子节点对应的子节点融合矩阵,得到产品节点对应的产品初始矩阵。
在一个实施例中,提取模块706还用于:将初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵;特征提取函数中包含调整参数;获取中间特征矩阵中的用户中间矩阵和产品中间矩阵,基于用户中间矩阵和产品中间矩阵构建误差损失函数;对误差损失函数进行调整得到调整参数的参数值,将参数值带入中间特征矩阵,得到参考特征矩阵;将参考特征矩阵作为更新后的初始特征矩阵,返回执行将初始特征矩阵和邻接矩阵输入到特征提取函数,得到中间特征矩阵的步骤,直至返回次数达到预设次数,得到目标特征矩阵;从目标特征矩阵中获取用户目标矩阵和产品目标矩阵,将用户目标矩阵转换成用户目标特征向量,将产品目标矩阵转换成产品目标特征向量。
在一个实施例中,提取模块706还用于:对用户中间矩阵和产品中间矩阵进行转换,得到用户中间特征向量和产品中间特征向量;基于用户信息中的已获得产品特征,确定每一个用户标识对应的目标产品标识,获取目标产品标识对应的产品中间特征向量;计算用户标识对应的用户中间特征向量与目标产品标识对应的产品中间特征向量之间的相似度,得到用户标识对应的目标函数;基于各个目标函数,构建误差损失函数。
上述产品推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种产品推送方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。