一种基于二部图网络的商品推送方法和装置
技术领域
本说明书实施例涉及机器学习技术领域,更具体地,涉及一种商品推送方法和装置、以及嵌入模型的训练方法和装置。
背景技术
推荐系统是互联网行业的一个重要研究方向和应用领域,有效的提高用户的点击率对公司来说意味着更高的盈利,因此,优秀的推荐算法成为目前研发的重点。用户在日常购物中,会在不同时间段选择点击或者购买某个商品,而忽略其他商品,整个行为过程构成了用户与商品的二部图网络。现有技术中将该场景建模为用户和商品构成的矩阵,通过矩阵分解的方法计算用户和商品的相似度。还有一些方法是把用户和商品作为一个整体,提取用户和商品的特征,把整个问题建模为有监督学习问题。另外,在现有技术的Node2Vec方法中,在训练过程中引入的特征有限。
因此,需要一种更有效的基于二部图网络向用户推送商品的方案。
发明内容
本说明书实施例旨在提供一种更有效的基于二部图网络向用户推送商品的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种基于二部图网络向用户推送商品的方法,包括:
获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户;
获取所述第一用户已购买的第一商品、和未购买的多个第二商品,其分别与所述二部图网络中的第一商品节点、多个第二商品节点对应,并基于所述二部图网络获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边;
获取所述第一商品节点、与第一商品节点连通的多个节点和多个连接边、所述多个第二商品、与各个第二商品节点分别连通的多个节点和多个连接边各自的初始特征;
将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取;以及
基于所述第一商品的嵌入向量分别与所述多个第二商品各自的嵌入向量的相似度,向所述第一用户推送商品。
在一个实施例中,在所述向用户推送商品的方法中,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量包括在所述嵌入模型中执行以下步骤:
基于所述第一商品节点、其邻居节点、以及其与各个邻居节点之间的各个第一连接边的各自的初始特征,确定第一商品节点、其邻居节点、以及所述各个第一连接边的各自的初级迭代的节点嵌入向量;
执行多级向量迭代,以确定第一商品节点的多级迭代的嵌入向量,所述多级向量迭代包括对节点的多级向量迭代和对连接边的多级向量迭代,其中,对所述第一商品节点的每级向量迭代包括,至少基于所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量、所述各个第一连接边的上一级迭代的嵌入向量,确定所述第一商品节点的本级迭代的嵌入向量,其中,对所述第一连接边的每级向量迭代包括,至少基于所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量,获取所述第一连接边的本级迭代的嵌入向量。
在一个实施例中,在所述向用户推送商品的方法中,与所述第一商品节点连通的多个节点和多个连接边的个数基于所述多级向量迭代的迭代级数确定。
在一个实施例中,在所述向用户推送商品的方法中,对所述第一商品节点的每级向量迭代包括,基于以下三项确定所述第一商品节点的本级迭代的嵌入向量:所述第一商品节点的初级迭代的嵌入向量、所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量的加权和、所述各个第一连接边的上一级迭代的嵌入向量的加权和。
在一个实施例中,在所述向用户推送商品的方法中,对所述第一连接边的每级向量迭代包括,基于以下两项获取所述第一连接边的本级迭代的嵌入向量:所述第一连接边的初级迭代的嵌入向量、所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量的内积。
在一个实施例中,在所述向用户推送商品的方法中,所述初始特征包括商品节点的初始特征,其中,所述商品节点的初始特征包括以下至少一项:商品所属类目、商品价格、商品卖家特征、预定时段内的商品出售次数、预定时段内的商品买家数。
在一个实施例中,在所述向用户推送商品的方法中,所述初始特征包括用户节点的初始特征,其中,用户节点的初始特征包括以下至少一项:年龄、性别、教育背景、职业、以及预定时段内的交易金额、交易次数、信用卡交易金额和交易次数、购买商品数、购买商品的卖家数、笔均交易金额、及用户画像特征。
在一个实施例中,在所述向用户推送商品的方法中,所述初始特征包括连接边的初始特征,其中,所述连接边的初始特征包括预定时段内的以下至少一项:该连接边对应的用户购买该连接边对应的商品的交易金额、交易次数、信用卡交易金额和交易次数、及交易时间,以及,对应的用户点击对应的商品的次数和点击时间。
在一个实施例中,在所述向用户推送商品的方法中,所述多个第二商品与所述第一商品具有以下至少一种关联关系:属于同一商品类目、由同一卖家出售、由同一产家生产。
本说明书另一方面提供一种基于二部图网络向用户推送商品的方法,包括:
获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户,其与所述二部图网络中的第一用户节点对应;
获取多个第二用户,其分别与所述二部图网络中的多个第二用户节点对应,并基于所述二部图网络,获取与第一用户节点连通的多个节点和多个连接边、与各个第二用户节点分别连通的多个节点和多个连接边;
获取所述第一用户节点、与第一用户节点连通的多个节点和多个连接边、多个第二用户节点、与各个第二用户节点分别连通的多个节点和多个连接边各自的初始特征;
将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一用户和所述多个第二用户各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征获取;以及
基于所述第一用户的嵌入向量分别与所述多个第二用户各自的嵌入向量的相似度、和各个所述第二用户已购买的商品,向所述第一用户推送商品。
在一个实施例中,在所述向用户推送商品的方法中,所述多个第二用户与所述第一用户具有以下至少一种关联关系:具有相同的年龄段、具有相同的教育背景、来自相同的城市、具有同一类型的用户画像、具有相同的职业。
在一个实施例中,在所述向用户推送商品的方法中,所述嵌入模型通过以下方式训练:
获取至少一个样本,所述样本包括所述二部图网络中的连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征、以及该连接边的标签值,其中,所述标签值指示该连接边对应的用户动作;以及
使用所述至少一个样本训练所述嵌入模型,以使得相比于训练前,训练后的嵌入模型基于所述初始特征获取的对所述至少一个样本对应的用户动作的预测损失减少,其中,所述嵌入模型基于所述初始特征获取样本对应的连接边在嵌入空间中的嵌入向量、并基于所述嵌入向量在所述嵌入空间中的空间位置预测该连接边对应的用户动作。
本说明书另一方面提供一种基于二部图网络向用户推送商品的装置,包括:
网络获取单元,配置为,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户;
商品获取单元,配置为,获取所述第一用户已购买的第一商品、和未购买的多个第二商品,其分别与所述二部图网络中的第一商品节点、多个第二商品节点对应,并基于所述二部图网络获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边;
特征获取单元,配置为,获取所述第一商品节点、与第一商品节点连通的多个节点和多个连接边、所述多个第二商品、与各个第二商品节点分别连通的多个节点和多个连接边各自的初始特征;
输入单元,配置为,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取;以及
推送单元,配置为,基于所述第一商品的嵌入向量分别与所述多个第二商品各自的嵌入向量的相似度,向所述第一用户推送商品。
在一个实施例中,在所述向用户推送商品的装置中,所述输入单元包括以下子单元:
初级迭代子单元,配置为,基于所述第一商品节点、其邻居节点、以及其与各个邻居节点之间的各个第一连接边的各自的初始特征,确定第一商品节点、其邻居节点、以及所述各个第一连接边的各自的初级迭代的节点嵌入向量;
多级迭代子单元,配置为,执行多级向量迭代,以确定第一商品节点的多级迭代的嵌入向量,所述多级向量迭代包括对节点的多级向量迭代和对连接边的多级向量迭代,其中,对所述第一商品节点的每级向量迭代包括,至少基于所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量、所述各个第一连接边的上一级迭代的嵌入向量,确定所述第一商品节点的本级迭代的嵌入向量,其中,对所述第一连接边的每级向量迭代包括,至少基于所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量,获取所述第一连接边的本级迭代的嵌入向量。
在一个实施例中,在所述向用户推送商品的装置中,所述多级迭代子单元还配置为,基于以下三项确定所述第一商品节点的本级迭代的嵌入向量:所述第一商品节点的初级迭代的嵌入向量、所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量的加权和、所述各个第一连接边的上一级迭代的嵌入向量的加权和。
在一个实施例中,在所述向用户推送商品的装置中,所述多级迭代子单元还配置为,基于以下两项获取所述第一连接边的本级迭代的嵌入向量:所述第一连接边的初级迭代的嵌入向量、所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量的内积。
本说明书另一方面提供一种基于二部图网络向用户推送商品的装置,包括:
网络获取单元,配置为,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户,其与所述二部图网络中的第一用户节点对应;
用户获取单元,配置为,获取多个第二用户,其分别与所述二部图网络中的多个第二用户节点对应,并基于所述二部图网络,获取与第一用户节点连通的多个节点和多个连接边、与各个第二用户节点分别连通的多个节点和多个连接边;
特征获取单元,配置为,获取所述第一用户节点、与第一用户节点连通的多个节点和多个连接边、多个第二用户节点、与各个第二用户节点分别连通的多个节点和多个连接边各自的初始特征;
输入单元,配置为,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一用户和所述多个第二用户各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征获取;以及
推送单元,配置为,基于所述第一用户的嵌入向量分别与所述多个第二用户各自的嵌入向量的相似度、和各个所述第二用户已购买的商品,向所述第一用户推送商品。
在一个实施例中,在所述向用户推送商品的装置中,所述嵌入模型通过训练装置训练,所述训练装置包括:
获取单元,配置为,获取至少一个样本,所述样本包括所述二部图网络中的连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征、以及该连接边的标签值,其中,所述标签值指示该连接边对应的用户动作;以及
训练单元,配置为,使用所述至少一个样本训练所述嵌入模型,以使得相比于训练前,训练后的嵌入模型基于所述初始特征获取的对所述至少一个样本对应的用户动作的预测损失减少,其中,所述嵌入模型基于所述初始特征获取样本对应的连接边在嵌入空间中的嵌入向量、并基于所述嵌入向量在所述嵌入空间中的空间位置预测该连接边对应的用户动作。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的商品推送方案,基于用户商品的二部图网络,对网络中节点或边连通的节点和边的特征进行整合,从而获取网络中节点或边的嵌入特征,基于该嵌入特征,进行对用户的商品推荐,在该推荐中,结合了网络中的丰富特征,从而可进行全面的分析和评估,从而使得推荐效果更好。另外,嵌入模型的训练直接对业务目标(即促进用户对商品的购买)进行优化,从而更适于该具体业务。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的推荐系统100的示意图;
图2示出根据本说明书实施例的一种基于二部图网络向用户推送商品的方法;
图3示出了用户与商品之间的二部图网络的示意图;
图4示出根据本说明书实施例的一种基于二部图网络向用户推送商品的方法;
图5示出根据本说明书实施例的一种训练嵌入模型的方法;
图6示出根据本说明书实施例的一种基于二部图网络向用户推送商品的装置600;
图7示出根据本说明书实施例的一种基于二部图网络向用户推送商品的装置700;以及
图8示出根据本说明书实施例的一种用于训练嵌入模型的训练装置800,所述训练装置800。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的推荐系统100的示意图。如图1所示,系统100包括数据采集模块11、二部图网络12、嵌入模型13和推荐模块14。在数据采集模块11中,采集用户日常点击、购买商品的动作,以用于构建二部图网络12,采集用户和商品的特征,以用于获取二部图网络中的用户节点、商品节点、用户与商品之间的连接边的初始特征。
在嵌入模型13中,通过基于二部图网络12中的节点的初始特征、其连通的多个节点和多个边的初始特征,进行多次迭代,从而获取该节点的嵌入特征。同样地,通过基于连接边的初始特征、其连通的多个节点和多个边的初始特征,进行多次迭代,从而获取该连接边的嵌入特征。另外,所述嵌入模型13基于连接边的嵌入特征在嵌入空间中的空间位置预测该连接边对应的用户动作,即,点击或购买。
在训练嵌入模型13的阶段,训练样本包括所述二部图网络12中的连接边、与该连接边连通的多个节点和多个连接边各自的初始特征、以及该连接边的标签值,从而通过至少一个样本训练所述模型,使得模型对连接边的预测损失减少。
在使用嵌入模型13进行商品推送阶段,对于该二部图网络12中包括的任一用户,可基于嵌入模型13输出的商品的嵌入特征,计算候选商品与用户已购买商品的相似度,并将相似度高的商品推送给该用户。在一个实施例中,还可以基于嵌入模型13输出的用户的嵌入特征,计算其他用户与该用户的相似度,并将相似度高的其他用户的购买商品推送给该用户。
图2示出根据本说明书实施例的一种基于二部图网络向用户推送商品的方法,包括:
在步骤S202,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户;
在步骤S204,获取所述第一用户已购买的第一商品、和未购买的多个第二商品,其分别与所述二部图网络中的第一商品节点、多个第二商品节点对应,并基于所述二部图网络获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边;
在步骤S206,获取所述第一商品节点、与第一商品节点连通的多个节点和多个连接边、所述多个第二商品、与各个第二商品节点分别连通的多个节点和多个连接边各自的初始特征;
在步骤S208,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取;以及
在步骤S210,基于所述第一商品的嵌入向量分别与所述多个第二商品各自的嵌入向量的相似度,向所述第一用户推送商品。
首先,在步骤S202,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户。
图3示出了用户与商品之间的二部图网络的示意图。如图中所示,在二部图网络中,包括与用户对应的用户节点和与商品对应的商品节点。用户节点与商品节点属于两个集合,其可以分别通过用户ID和商品ID标识,例如,如图3中所示,以A、B、C、D分别标识四个用户,以a、b、c分别标识商品鞋、毛巾和书。用户节点与对应的用户在预定时段内点击或购买过的商品对应的商品节点之间具有连接边,该连接边连接的两个节点互为邻居节点。如图2中所示,所述连接边还可以通过不同形式示出(如不同的灰度、虚线或实线等)连接边对应的用户动作,例如,通过较浅的灰度示出该连接边对应于用户点击商品,较深的灰度线示出该连接边对应于用户购买该商品。另外,该二部图网络的节点之间的相邻关系可通过邻居矩阵A表示,其中A={(i,j)=0或1|i∈[0,|V|],j∈[0,|V|]},V表示所述网络中的节点。
如上文所述,所述二部图网络可通过采集预定时段内的购物平台(例如淘宝平台)内的各个用户对各个商品的点击或购买行为而获取。该预定时段例如可设定为一年、半年等。上述第一用户可为所述购物平台内多个用户中的任意用户。可以理解,所述二部图网络不限于对应于整个购物平台中的用户和商品,也可以在购物平台的预定范围内的用户和商品之间建立二部图网络,例如,可以在预定地区的用户与预定范围的商品之间建立二部图网络。
在步骤S204,获取所述第一用户已购买的第一商品、和未购买的多个第二商品,其分别与所述二部图网络中的第一商品节点、多个第二商品节点对应,并基于所述二部图网络获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边。
所述多个第二商品可以是购物平台中第一用户未购买的全部商品。然而,通常,购物平台中的商品种类繁多,如果对第一用户未购买的全部商品进行计算,计算量将非常大。因此,可以通过与第一商品的关联关系,在未购买的全部商品中进行初筛以获取多个第二商品。例如,在第一用户未购买的全部商品中,可获取与第一商品属于同一商品类目的多个商品作为多个第二商品,或者,可获取由与第一商品相同的卖家出售的多个商品作为多个第二商品,或者,可获取由与第一商品相同的产家生产的多个商品作为多个第二商品,等等。
在二部图网络中,与所述第一商品节点连通的多个节点和多个连接边不限于第一商品节点直接连接的节点和连接边,而是包括可通过任意数目的中间节点和中间的连接边连接的多个节点和多个连接边。例如,参考图3,假设图中的鞋节点(a节点)为第一商品节点,则由图中的网络连接可得出,a节点与A节点、a-A连接边、B节点、a-B连接边、D节点、a-D连接边、c节点、B-c连接边都是连通的。因此,基于上述二部图网络,可获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边。
在步骤S206,获取所述第一商品节点、与第一商品节点连通的多个节点和多个连接边、所述多个第二商品、与各个第二商品节点分别连通的多个节点和多个连接边各自的初始特征。
如上文所述,在上述二部图网络中包括商品节点和用户节点以及其之间的连接边。其中,商品节点的初始特征例如包括:商品所属类目、商品价格、商品卖家特征、预定时段内的商品出售次数、预定时段内的商品买家数等等。用户节点的初始特征例如包括年龄、性别、教育背景、职业、以及预定时段内的交易金额、交易次数、信用卡交易金额和交易次数、购买商品数、购买商品的卖家数、笔均交易金额、用户画像特征等等。连接边的初始特征例如包括预定时段内的对应的用户购买对应商品的交易金额、交易次数、信用卡交易金额和交易次数、及交易时间,以及,对应的用户点击对应的商品的次数和点击时间,等等。所述预定时段例如为一年、半年等等。在所述初始特征中,还可以包括一天中不同时间的信息,例如用户节点的初始特征可包括用户在一天中不同的时间的交易金额、交易次数等,从而可表征用户特征的时间相关性。
在步骤S208,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取。
对于上述二部图网络,常规的学习模型由于只使用每一个样本自身的特征,而无法对网络关系中的丰富特征进行整合,因此难以进行全面分析和评估。对此,根据本说明书的实施例,提出一种嵌入模型,该模型用于对上述的二部图网络进行深度学习,通过多级迭代,基于节点连通的多级的节点及边的特征确定出该节点在嵌入空间中的嵌入特征,边的在嵌入空间中的嵌入特征,还可以进一步预测边对应的用户动作。其中,所述嵌入模型基于连接边的嵌入向量在嵌入空间中的空间位置预测该连接边对应的用户动作,即是点击动作还是购买动作。该嵌入模型的训练过程将在下文中详细说明。
在上述获取的初始特征中,节点i的初始特征可以以特征向量xi表示,各连接边Eij的初始特征可以以特征向量eij表示,其中i、j为二部图网络中的节点标号,其中连接边连接的两个节点互为邻居节点,节点i的的邻居节点集为Ni。
下面基于以上的节点特征、边特征和嵌入模型参数,来进行对第一商品节点和各个第二商品节点的嵌入计算。嵌入模型参数是节点嵌入向量计算过程中需要用到的参数,至少包括第一参数集、第二参数集和第三参数集,其分别用于初始嵌入向量的运算和迭代嵌入向量的运算。
首先,基于所述第一商品节点、其邻居节点、以及其与各个邻居节点之间的各个第一连接边的各自的初始特征,确定第一商品节点、其邻居节点、以及所述各个第一连接边的各自的初级迭代的节点嵌入向量
具体地,在一个实施例中,第一参数集包括第一权重参数和第二权重参数,基于第一权重参数,以及上述各个节点的初始特征,确定各个节点的初级迭代的嵌入向量;并且,基于第二权重参数,以及上述各个连接边的初始特征,确定各个连接边的初级迭代的嵌入向量。
例如,在一个具体例子中,对于上述多个节点中的节点i,可以如下计算初始嵌入向量ui:
ui=σ(w1xi) (1)
其中,w1为第一权重参数,xi为节点i的初始特征,σ为非线性变换函数。
上述非线性变换函数可以使用Relu函数,Sigmoid函数,Tanh函数等等。
在一个例子中,将节点i的初始嵌入向量ui作为其初级迭代的节点嵌入向量,即:
其中的下角标i表示对应于节点i,上角标表示迭代级数,上角标为0则指示出为初级迭代。
对于各个连接边Eij,可以如下计算其初始嵌入向量vij:
vij=σ(w2eij) (3)
其中,w2为第二权重参数,eij为连接边Eij的边特征。
在一个例子中,将连接边Eij的初始嵌入向量vij作为其初级迭代的边嵌入向量,即:
其中的下角标ij表示对应于节点i和节点j之间的连接边,上角标表示迭代级数,上角标为0则指示出为初级迭代。
可以理解,以上示出了基于权重参数w1以及节点特征xi,确定初级迭代的节点嵌入向量,以及基于权重参数w2以及边特征eij,确定初级迭代的边嵌入向量。在不同实施例中,还可以采用其他方式执行上述步骤,例如在以上权重参数w1和w2基础上添加进一步的附加权重参数(例如,将节点i的初级迭代的节点嵌入向量确定为初始嵌入向量ui乘以附加权重参数),采用不同形式的变换函数等等。
在确定了上述各个节点的初级迭代的嵌入向量以及各个连接边的初级迭代的嵌入向量的基础上,执行多级向量迭代,以确定各个节点的多级迭代的嵌入向量其中T为迭代级数。所述多级向量迭代包括对节点的多级向量迭代和对连接边的多级向量迭代。
在针对节点的每级向量迭代中,对于各个节点i,至少基于其各个邻居节点j的上一级迭代(t-1级迭代)的节点嵌入向量各个连接边的上一级迭代(t-1级迭代)的边嵌入向量以及嵌入模型的第二参数集,确定该节点i的本级迭代(第t次迭代)的节点嵌入向量
例如,可以通过以下方式进行向量迭代,确定节点i的t级迭代的节点嵌入向量
在第一示例中,节点i的t级迭代的节点嵌入向量通过下式计算:
即,对各个邻居节点j的上一级迭代(t-1级迭代)的节点嵌入向量的向量和进行σ函数转换,对各个连接边的上一级迭代(t-1级迭代)的边嵌入向量的向量和进行σ函数转换,基于两项的和确定其中,参数w3和w4体现了相邻节点和相邻边对节点i的作用权重。
在第二示例中,节点i的t级迭代的节点嵌入向量通过下式计算:
式(6)在式(5)的基础上,在对各个邻居节点j的上一级迭代的节点嵌入向量求和时,引入了权重因子αij,对各个连接边的上一级迭代的边嵌入向量进行向量求和时,引入了权重因子βij。这些权重因子可以根据节点ij之间的关联强度预先设定,例如,根据用户动作是购买还是点击、购买次数、点击次数等预先设定。
在第三示例中,节点i的t级迭代的节点嵌入向量通过下式计算:
根据式(7),利用第二参数集中的参数w3,w4和w5作为公式(7)中第一项、第二项和第三项中的权重,对第一项、第二项和第三项进行求和,基于求和结果确定该节点i的本级迭代的节点嵌入向量其中第一项基于节点i的初级迭代的节点嵌入向量和参数w3获取;第二项基于各个邻居节点j的上一级迭代的节点嵌入向量的加权和与参数w4获取;第三项基于各个连接边的上一级迭代的边嵌入向量的加权和与参数w5获取。
在针对连接边的每级向量迭代中,对于各个连接边,至少基于该连接边Eij所连接的两个节点i和j各自的上一级迭代的节点嵌入向量,以及第三参数集,确定该连接边的本级迭代的边嵌入向量。
例如,可以通过以下方式进行向量迭代,确定连接边Eij的t级迭代的边嵌入向量
在一个示例中,连接边Eij的t级迭代的边嵌入向量通过下式计算:
其中表示和两个向量的内积,即,对该连接边Eij所连接的两个节点i和j各自的上一级迭代的节点嵌入向量进行内积。即,基于两个节点i和j各自的上一级迭代的节点嵌入向量和确定t级迭代的边嵌入向量
在另一个示例中,连接边Eij的t级迭代的边嵌入向量通过下式计算:
即,基于该连接边Eij的初始迭代嵌入向量νij、和两个节点i和j各自的上一级迭代的节点嵌入向量和确定t级迭代的边嵌入向量其中参数w6和w7分别表示νij和的权重。
可以理解,在进行节点嵌入向量或连接边嵌入向量的向量迭代计算时,每进行一次向量迭代,就引入了节点i或连接边Eij的更高阶的连通的节点的信息和更高阶的连通的连接边的信息。例如,根据公式(2),节点i的0级迭代的节点嵌入向量只包含本节点的节点特征,一次迭代以后,节点i的1级迭代的节点嵌入向量中就包含了其邻居节点(即其一阶连通节点)的节点特征;二次迭代之后,节点i的2级迭代的节点嵌入向量中包含邻居节点j的1级嵌入向量,而该邻居节点j的1级嵌入向量中又包含了节点j的邻居节点k的节点特征,也就是说,节点i的2级迭代的节点嵌入向量中包含了其二阶连通节点(即邻居节点j的邻居节点k)的节点特征。对于边特征也是如此。因此,随着迭代级数增加,节点嵌入向量和边嵌入向量中均引入了其连通的节点和边的更高阶的连接信息。
因此,在进行节点嵌入向量或连接边嵌入向量的向量迭代计算时引入的其连通的节点和边的个数由迭代级数T确定,迭代级数越高,引入的连通节点和边的个数越多,即,在二部图网络中展开地更大。另外,通过上述迭代计算的公式可以看出,节点i或边Eij的较高阶的连通节点和连通边的特征位于更深嵌套的σ函数中,也就是说,距离节点i或边Eij越远的连通节点和边,对节点i或边Eij的嵌入特征的影响越小,这也符合实际用户商品关系中的情况。
在一个实施例中,迭代级数T可以根据经验预先设定。在另一实施例中,迭代级数T可以根据模型训练时损失函数的收敛状况而调整设置。
如上,经过反复的多次向量迭代运算,可以确定所述第一商品和所述多个第二商品各自的对应节点的多级迭代(T级迭代)的节点嵌入向量
在通过嵌入模型如上获取连接边Eij的嵌入特征之后之后,可通过如下公式(10)计算该嵌入模型对连接边Eij对应的用户动作的预测:
其中w8和b为嵌入模型中用于预测的参数,为模型对连接边对应的动作的预测值。从公式(10)中可得出,嵌入模型基于连接边Eij的嵌入特征在嵌入空间中的空间位置,预测该连接边是用户购买商品的概率。
在步骤S210,基于所述第一商品的嵌入向量分别与所述多个第二商品各自的嵌入向量的相似度,向所述第一用户推送商品。
由于如上所述,所述嵌入向量所在的嵌入空间与用户是否购买商品相关,因此,商品的嵌入向量也体现了与用户是否购买该商品的相关性。当第一用户购买了第一商品之后,第一商品的嵌入向量体现了第一用户倾向于购买的商品的特征。因此,可基于多个第二商品各自的嵌入向量与第一商品的嵌入向量的相似度,向第一用户推荐商品。例如,将相似度较高的第二商品推荐给第一用户,或者基于多个第二商品的相似度排序,向第一用户推荐排序靠前的预定数目的第二商品。嵌入向量之间的相似度例如可通过计算两个嵌入向量之间的距离获取,距离越近,相似度越高。所述距离例如可以为欧式距离、明氏距离等各种距离,所述相似度还可以为余弦相似度等。
在上文中,嵌入模型通过迭代的方法计算出二部图网络中的节点和边的嵌入特征,可以理解,根据本说明书实施例的嵌入模型不限于所述迭代方法,其可以是任何基于二部图网络中节点或边的多个连通节点和多个连通边的初始特征计算该节点或边的嵌入特征的模型。例如,所述嵌入模型可基于预定数目的节点或边的多个连通节点和多个连通边的初始特征,并基于预设的权重参数,计算该节点或边的嵌入特征。所述嵌入模型可通过神经网络实现,例如可通过每层神经网络实现多级迭代中的一级迭代计算。所述嵌入模型也可通过其它计算模型实现。
图4示出根据本说明书实施例的一种基于二部图网络向用户推送商品的方法,包括:
在步骤S402,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户,其与所述二部图网络中的第一用户节点对应;
在步骤S404,获取多个第二用户,其分别与所述二部图网络中的多个第二用户节点对应,并基于所述二部图网络,获取与第一用户节点连通的多个节点和多个连接边、与各个第二用户节点分别连通的多个节点和多个连接边;
在步骤S406,获取所述第一用户节点、与第一用户节点连通的多个节点和多个连接边、多个第二用户节点、与各个第二用户节点分别连通的多个节点和多个连接边各自的初始特征;
在步骤S408,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一用户和所述多个第二用户各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取;以及
在步骤S410,基于所述第一用户的嵌入向量分别与所述多个第二用户各自的嵌入向量的相似度、和各个所述第二用户已购买的商品,向所述第一用户推送商品。
在该方法中,与图2所示重复的内容在此不再赘述。所述第一用户节点可以是所述二部图网络中的任意用户节点。所述多个第二用户节点可以是所述二部图网络中除第一用户节点的全部其他用户节点。然而,由于二部图网络对应于整个购物平台,其中的用户节点数目过多,例如可多达几亿个,因此,通常先初筛出多个用户节点作为多个第二用户节点。可通过与第一用户的关联关系进行所述初筛,例如,可通过与第一用户的以下至少一种关联关系进行初筛:具有相同的年龄段、具有相同的教育背景、来自相同的城市、具有同一类型的用户画像、具有相同的职业等等。
在获取所述第一用户的嵌入向量分别与所述多个第二用户各自的嵌入向量的相似度之后,例如,可将相似度较高的第二用户的购买商品推送给第一用户,或者,可将相似度排序靠前的预定数目的第二用户的购买商品推送给第一用户。
图5示出根据本说明书实施例的一种训练嵌入模型的方法,包括以下步骤:
在步骤S502,获取至少一个样本,所述样本包括所述二部图网络中的连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征、以及该连接边的标签值,其中,所述标签值指示该连接边对应的用户动作;以及
在步骤S504,使用所述至少一个样本训练所述嵌入模型,以使得相比于训练前,训练后的嵌入模型基于所述初始特征获取的对所述至少一个样本对应的用户动作的预测损失减少,其中,所述嵌入模型基于所述初始特征获取样本对应的连接边在嵌入空间中的嵌入向量、并基于所述嵌入向量在所述嵌入空间中的空间位置预测该连接边对应的用户动作。
首先,在步骤S502,获取至少一个样本,所述样本包括所述二部图网络中的连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征、以及该连接边的标签值,其中,所述标签值指示该连接边对应的用户动作。
在训练该嵌入模型中,基于模型对连接边的预测损失函数进行训练。因此,一个训练样本是与二部图网络中的一个连接边对应的。如上文公式(10)所示,模型对连接边的预测公式中需要用到该边的嵌入向量而在模型中通过如上文所述的多级迭代方法计算出所述在所述多级迭代中,需要用到该连接边、以及该连接边连通的多个节点和多个其它连接边的初始特征,以通过多次迭代计算出因此,对于一个训练样本,需要包括所述二部图网络中的连接边、与该连接边连通的多个节点、和该连接边连通的多个其它连接边各自的初始特征、以及该连接边的标签值。连接边的标签值例如为0或1,其中0对应于用户点击商品,1对应于用户购买商品。可基于用户点击、购买商品的行为、基于二部图网络、以及二部图网络中各节点和边的初始特征,获取至少一个样本进行模型训练。
在步骤S504,使用所述至少一个样本训练所述嵌入模型,以使得相比于训练前,训练后的嵌入模型基于所述初始特征获取的对所述至少一个样本对应的用户动作的预测损失减少,其中,所述嵌入模型基于所述初始特征获取样本对应的连接边在嵌入空间中的嵌入向量、并基于所述嵌入向量在所述嵌入空间中的空间位置预测该连接边对应的用户动作。
根据监督学习算法的思路,可以预先定义嵌入模型的损失函数,该损失函数基于样本的预测值和标签值而确定。损失函数的具体计算公式可以采用多种方式,例如各个样本的预测值与标签值之差的平方和,方均根,等等。
在一个实施例中,采用如以下公式(11)所示的损失函数F:
其中,yij为边的标签值,其为0或1,其中,也就是说,可将公式(10)中代入该公式(11),从而进行对上述模型参数的调整。
基于上述损失函数,调整嵌入模型参数,即第一参数集、第二参数集、第三参数集和预测参数中的参数值,使得上述损失函数达到最小。可以采用例如梯度下降、反向传播等方式,经过多次模型训练,例如几千次,逐步确定出损失函数达到最小时的参数值,将此时的参数值作为最优参数值,也就是嵌入模型的模型参数。一般地,这个过程可以表示为:
argminw,bF
一旦确定出损失函数最小时的最优参数值,可以认为,确定出了嵌入模型的模型参数,也就完成了嵌入模型的模型训练。
图6示出根据本说明书实施例的一种基于二部图网络向用户推送商品的装置600,包括:
网络获取单元61,配置为,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户;
商品获取单元62,配置为,获取所述第一用户已购买的第一商品、和未购买的多个第二商品,其分别与所述二部图网络中的第一商品节点、多个第二商品节点对应,并基于所述二部图网络获取与所述第一商品节点连通的多个节点和多个连接边、与各个第二商品节点分别连通的多个节点和多个连接边;
特征获取单元63,配置为,获取所述第一商品节点、与第一商品节点连通的多个节点和多个连接边、所述多个第二商品、与各个第二商品节点分别连通的多个节点和多个连接边各自的初始特征;
输入单元64,配置为,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一商品和所述多个第二商品各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点和多个连接边各自的初始特征获取;以及
推送单元65,配置为,基于所述第一商品的嵌入向量分别与所述多个第二商品各自的嵌入向量的相似度,向所述第一用户推送商品。
在一个实施例中,在所述向用户推送商品的装置中,所述输入单元64包括以下子单元:
初级迭代子单元641,配置为,基于所述第一商品节点、其邻居节点、以及其与各个邻居节点之间的各个第一连接边的各自的初始特征,确定第一商品节点、其邻居节点、以及所述各个第一连接边的各自的初级迭代的节点嵌入向量;
多级迭代子单元642,配置为,执行多级向量迭代,以确定第一商品节点的多级迭代的嵌入向量,所述多级向量迭代包括对节点的多级向量迭代和对连接边的多级向量迭代,其中,对所述第一商品节点的每级向量迭代包括,至少基于所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量、所述各个第一连接边的上一级迭代的嵌入向量,确定所述第一商品节点的本级迭代的嵌入向量,其中,对所述第一连接边的每级向量迭代包括,至少基于所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量,获取所述第一连接边的本级迭代的嵌入向量。
在一个实施例中,在所述向用户推送商品的装置中,所述多级迭代子单元641还配置为,基于以下三项确定所述第一商品节点的本级迭代的嵌入向量:所述第一商品节点的初级迭代的嵌入向量、所述第一商品节点的各个邻居节点的上一级迭代的嵌入向量的加权和、所述各个第一连接边的上一级迭代的嵌入向量的加权和。
在一个实施例中,在所述向用户推送商品的装置中,所述多级迭代子单元642还配置为,基于以下两项获取所述第一连接边的本级迭代的嵌入向量:所述第一连接边的初级迭代的嵌入向量、所述第一连接边连接的两个节点各自的上一级迭代的嵌入向量的内积。
图7示出根据本说明书实施例的一种基于二部图网络向用户推送商品的装置700,包括:
网络获取单元71,配置为,获取多个用户与多个商品之间的二部图网络,其中,在所述二部图网络中,包括与所述多个用户和多个商品分别对应的多个用户节点和多个商品节点,具有预定关联关系的用户节点和商品节点之间通过连接边互相连接、并互为邻居节点,其中,所述预定关联关系包括对应的用户在预定时段内对对应的商品的点击或购买动作,其中,所述多个用户中包括第一用户,其与所述二部图网络中的第一用户节点对应;
用户获取单元72,配置为,获取多个第二用户,其分别与所述二部图网络中的多个第二用户节点对应,并基于所述二部图网络,获取与第一用户节点连通的多个节点和多个连接边、与各个第二用户节点分别连通的多个节点和多个连接边;
特征获取单元73,配置为,获取所述第一用户节点、与第一用户节点连通的多个节点和多个连接边、多个第二用户节点、与各个第二用户节点分别连通的多个节点和多个连接边各自的初始特征;
输入单元74,配置为,将所述初始特征输入嵌入模型,以从所述嵌入模型的输出分别获取所述第一用户和所述多个第二用户各自的在嵌入空间中的嵌入向量,其中,在所述嵌入空间中,所述连接边的嵌入向量的空间位置预测该连接边对应的用户动作,其中,所述连接边的嵌入向量通过所述嵌入模型基于该连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征获取;以及
推送单元75,配置为,基于所述第一用户的嵌入向量分别与所述多个第二用户各自的嵌入向量的相似度、和各个所述第二用户已购买的商品,向所述第一用户推送商品。
图8示出根据本说明书实施例的一种用于训练嵌入模型的训练装置800,所述训练装置800,包括:
获取单元81,配置为,获取至少一个样本,所述样本包括所述二部图网络中的连接边、与该连接边连通的多个节点、和与该连接边连通的多个连接边各自的初始特征、以及该连接边的标签值,其中,所述标签值指示该连接边对应的用户动作;以及
训练单元82,配置为,使用所述至少一个样本训练所述嵌入模型,以使得相比于训练前,训练后的嵌入模型基于所述初始特征获取的对所述至少一个样本对应的用户动作的预测损失减少,其中,所述嵌入模型基于所述初始特征获取样本对应的连接边在嵌入空间中的嵌入向量、并基于所述嵌入向量在所述嵌入空间中的空间位置预测该连接边对应的用户动作。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的商品推送方案,基于用户商品的二部图网络,对网络中节点或边连通的节点和边的特征进行整合,从而获取网络中节点或边的嵌入特征,基于该嵌入特征,进行对用户的商品推荐,在该推荐中,结合了网络中的丰富特征,从而可进行全面的分析和评估,从而使得推荐效果更好。另外,嵌入模型的训练直接对业务目标(即促进用户对商品的购买)进行优化,从而更适于该具体业务。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。