行为预测模型的训练方法及装置与流程

文档序号:24487898发布日期:2021-03-30 21:12阅读:158来源:国知局
行为预测模型的训练方法及装置与流程

本申请是分案申请,其基于在2020年8月14日提出的发明名称为“行为预测模型的训练方法及装置”,申请号为:202010819192.4的专利申请而提出。

本说明书实施例涉及计算机技术领域,尤其涉及一种行为预测模型的训练方法及装置。



背景技术:

当前,服务平台通常会向用户进行产品或内容等业务对象的推荐或推送,例如,推荐一些网络课程、服装商品、广告图片等。随着业务对象数量的累积增长,以及不断涌现新的业务对象,为了提高用户体验,需要及时、准确地向用户推荐符合其需求和偏好的业务对象,相应地,服务平台可以利用机器学习模型预测用户行为,具体预测某用户是否会对某业务对象做出特定行为,从而根据预测结果确定是否向该某用户推荐该某业务对象,例如,通过预测某用户是否会对某篇文章进行浏览,确定是否向该用户推送该篇文章,又例如,通过预测某用户是否会购买某商品,确定是否向该用户推荐该商品。

显然,希望上述针对用户行为的预测能够尽可能的及时、准确。然而,目前预测用户行为的方式较为单一,预测的速度和准确度也十分有限。因此,需要一种方案,可以有效提高用户行为预测的及时性和准确性。



技术实现要素:

采用本说明书描述的行为预测模型的训练方法及装置,可以同时有效提高行为预测模型的训练速度和模型性能,从而提高用户行为预测的及时性和准确性。

根据第一方面,提供一种行为预测模型的训练方法,包括:确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,该第一样本硬标签指示该第一样本用户是否对所述目标对象做出特定行为;基于预先确定的嵌入向量集,确定对应于所述第一样本用户的样本用户特征向量,并且,确定对应于所述目标对象的目标对象特征向量;其中,所述嵌入向量集是利用训练后的图神经网络对构建的二部图进行图嵌入处理而确定;所述二部图包括对应于多个用户的多个用户节点,对应于多个对象的多个对象节点,以及用户节点向对象节点做出所述特定行为而形成的连接边,所述嵌入向量集中包括所述多个用户的多个用户特征向量和所述多个对象的多个对象特征向量;将所述样本用户特征向量输入第一行为预测模型中,得到行为预测结果;基于所述行为预测结果和所述第一样本硬标签,确定第一损失项;基于所述样本用户特征向量和所述目标对象特征向量,确定所述第一样本用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签;基于所述行为预测结果和所述第一样本软标签,确定第二损失项;利用所述第一损失项和第二损失项,训练所述第一行为预测模型。

根据第二方面,提供一种行为预测模型的训练方法,包括:针对目标对象,获取基于多个种子用户形成的多个正样本,其中任意的第一正样本包括,与第一种子用户对应的第一用户特征和正例标签,该正例标签指示出,对应用户是被确定为对所述目标对象做出特定行为的用户;基于所述多个种子用户各自的用户特征,采用无监督的离群点检测算法,确定所述第一种子用户的离群分数,作为针对行为预测任务的第一训练权重;利用针对所述行为预测任务的训练样本集,对第一行为预测模型进行第一训练,所述训练样本集包括所述多个正样本以及预先获取的多个负样本;所述第一训练具体包括:将所述第一用户特征输入第一行为预测模型中,得到对应的行为预测结果;基于所述行为预测结果和所述正例标签,确定行为预测损失,并利用所述第一训练权重对该行为预测损失进行加权处理,得到加权损失;利用所述加权损失,训练所述第一行为预测模型。

根据第三方面,提供一种行为预测模型的训练装置,包括:样本用户确定单元,配置为确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,该第一样本硬标签指示该第一样本用户是否对所述目标对象做出特定行为;特征向量确定单元,配置为基于预先确定的嵌入向量集,确定对应于所述第一样本用户的样本用户特征向量,并且,确定对应于所述目标对象的目标对象特征向量;其中,所述嵌入向量集是利用训练后的图神经网络对构建的二部图进行图嵌入处理而确定;所述二部图包括对应于多个用户的多个用户节点,对应于多个对象的多个对象节点,以及用户节点向对象节点做出所述特定行为而形成的连接边,所述嵌入向量集中包括所述多个用户的多个用户特征向量和所述多个对象的多个对象特征向量;行为预测单元,配置为将所述样本用户特征向量输入第一行为预测模型中,得到行为预测结果;第一损失确定单元,配置为基于所述行为预测结果和所述第一样本硬标签,确定第一损失项;软标签确定单元,配置为基于所述样本用户特征向量和所述目标对象特征向量,确定所述第一样本用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签;第二损失确定单元,配置为基于所述行为预测结果和所述第一样本软标签,确定第二损失项;第一行为训练单元,配置为利用所述第一损失项和第二损失项,训练所述第一行为预测模型。

根据第四方面,提供一种行为预测模型的训练装置,包括:样本获取单元,配置为针对目标对象,获取基于多个种子用户形成的多个正样本,其中任意的第一正样本包括,与第一种子用户对应的第一用户特征和正例标签,该正例标签指示出,对应用户是被确定为对所述目标对象做出特定行为的用户;样本权重确定单元,配置为基于所述多个种子用户各自的用户特征,采用无监督的离群点检测算法,确定所述第一种子用户的离群分数,作为针对行为预测任务的第一训练权重;第一模型训练单元,配置为利用针对所述行为预测任务的训练样本集,对第一行为预测模型进行第一训练,所述训练样本集包括所述多个正样本以及预先获取的多个负样本;所述第一模型训练单元具体包括以下模块:第一预测模块,配置为将所述第一用户特征输入第一行为预测模型中,得到对应的行为预测结果;第一损失确定模块,配置为基于所述行为预测结果和所述正例标签,确定行为预测损失;第一损失加权模块,配置为利用所述第一训练权重对该行为预测损失进行加权处理,得到加权损失;第一训练模块,配置为利用所述加权损失,训练所述第一行为预测模型。

根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面所描述的方法。

根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面所描述的方法。

综上,采用本说明书实施例披露的行为预测模型的训练方法,在训练针对目标对象的第一行为预测模型的过程中,通过将gnn模型输出的特征向量作为先验知识,可以减少多个样本用户中种子用户存在的覆盖偏差,有效提高模型性能,加快训练速度,并且,因为第一行为预测模型可以实现为轻量级模型,因此,可以大大减少后续行为预测过程中的计算量。

此外,在人群定向的冷启动阶段,利用无监督的离群点检测算法,对上述多个正样本中的各个正样本进行权重分配,从而降低噪标签对第一行为预测模型的性能影响。进一步地,在获得用户反馈数据后,利用用户反馈数据训练第二行为预测模型,实现更加精准的人群重定向,使用户被推荐到符合自身需求的目标对象,从而有效提高用户体验。

附图说明

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

图1示出根据一个实施例的gnn模型的训练架构示意图;

图2示意根据一个实施例的用户-对象二部图;

图3示出根据一个实施例的行为预测模型的训练架构示意图;

图4示出根据一个实施例的行为预测模型的训练方法流程图;

图5示出根据一个实施例的gnn模型的训练方法流程图;

图6示出根据另一个实施例的行为预测模型的训练方法流程图;

图7示出根据一个实施例的行为预测模型的训练装置结构图;

图8示出根据另一个实施例的行为预测模型的训练装置结构图。

具体实施方式

下面结合附图,对本说明书披露的多个实施例进行描述。

本说明书实施例披露一种行为预测模型的训练方法,下面,先对该训练方法的发明构思进行介绍,具体如下:

如前所述,希望能提高用户行为预测的准确性、及时性。然而,预测的准确性与及时性之间往往是存在冲突的,因为机器学习的参数越多,预测的准确性会越高,但是较多的参数会带来较多的计算量,从而导致预测速度的下降,尤其是在用户数量庞大的情况下,产生的时延愈发明显。

为了解决准确性和及时性之间存在的矛盾冲突,实现二者的同时提升,发明人提出借鉴kd(knowledgedistillation,知识蒸馏)的框架,首先,利用多个业务对象(以下或将业务对象简称为对象)和多个用户的特征数据,训练一个重量级(主要指模型参数较多)的用于对上述多个对象进行用户行为预测的老师模型(teachermodel);然后,利用训练后的老师模型指导轻量级(主要指模型参数较少)的学生模型(studentmodel)的训练,具体在训练学生模型的过程中,老师模型中的先验知识被传递到学生模型中,从而使得即使学生模型的参数较少,学出来的模型效果也会较优,同时,因学生模型的模型参数较少,故而可以实现快速学习,另外,可以为若干目标对象中的每个目标对象分别训练一个学生模型,作为针对该每个目标对象的行为预测模型,如此可以实现对老师模型中先验知识的高效复用。此外,因为学生模型的训练和使用所占用的计算资源均较少,计算效率高,因此学生模型的训练和使用均可以在线上实现,这也使得预测结果具有高时效性。

此外,发明人还发现,在用户行为预测领域,通常只是简单地引入用户和对象的基础属性特征,并没有有效地引入用户和对象之间的历史交互数据,使得在对用户和对象进行表征时,无法捕捉更多更丰富的高阶用户特征和高阶对象特征。因此,发明人进一步提出,采用gnn(graphneuralnetworks,图神经网络)作为上述老师模型,具体地,先利用多个用户和多个业务对象之间的历史交互数据,构建用户-业务对象二部图,然后,在训练过程中,利用gnn模型(文中或称图神经网络,或称gnn)对该二部图进行图嵌入处理,得到用户表征向量和对象的表征向量,进而基于图神经网络中的链路预测任务,实现对该gnn模型的训练,进一步地,训练好的gnn模型输出的用户表征向量和对象表征向量,可以作为先验知识指导学生模型的学习。

由上可知,发明人提出借鉴kd的训练算法框架,先训练gnn模型作为老师模型,再利用训练好的gnn模型指导学生模型,即针对目标对象的行为预测模型的训练,训练好的行为预测模型用于确定目标对象的推荐人群。

以上对本说明书实施例披露的训练方法的发明构思进行介绍,为便于理解,下面再结合实施例,对上述训练方法的实施进行简要介绍。

在一个实施例中,在老师模型训练阶段,基于用户-对象二部图和训练样本,训练gnn模型。具体地,图1示出根据一个实施例的gnn模型的训练架构示意图,如图1所示,首先,一方面,获取预先构建的用户-对象二部图,例如,可参见图2中示出的用户-对象二部图,其中包括对应于多个用户的多个用户节点,以及对应于多个对象的多个对象节点,以及用户节点向对象节点做出特定行为而形成的连接边;回到图1,另一方面,获取针对该多个对象的训练样本集,其中任一的第一训练样本中包括第一用户的用户标识、第一对象的对象标识和第一样本标签,该第一样本标签指示该第一用户是否向该第一对象做出该特定行为;接着,通过gnn模型对该二部图进行图嵌入处理,确定该第一用户的第一用户特征向量和该第一对象的第一对象特征向量;进一步地,基于该第一用户特征向量和第一对象特征向量,确定该第一用户对该第一对象做出该特定行为的第一行为概率,进而结合该第一样本标签,确定行为预测损失,以训练该图神经网络。进一步地,可以利用训练后的gnn模型对上述二部图进行嵌入处理,得到上述多个用户对应的多个用户特征向量,以及上述多个对象对应的多个对象特征向量,归到嵌入向量集。如此,可以得到老师模型输出的含义丰富的特征向量。

在学生模型训练阶段,可以确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,指示该第一样本用户是否对所述目标对象做出特定行为。因该第一样本硬标签通常为是和否,从概率值来说就是1和0,这样的标签是较硬,或者说是绝对化的,其包含的信息量是有限的,简单来说,对一张图片,标签是1是指图片中的物体是苹果,标签是0是指图片中的物体是梨子,这就将两个物体绝对化了,实际苹果和梨子是有一些相似之处的,假定标签是0.85,则可以告诉我们图片中的物体85%是苹果,还有15%的可能是梨,这样标签0.85就提供了更多的信息量,有助于提高模型的泛化性能,尤其是在用户行为预测场景下,可以拓展到更多差异化的用户,实现对海量用户的准确预测。那么,如何拿到标签0.85(文中将这类标签称为软标签),在本说明书实施例中,可以利用训练后的gnn模型获得,从而将确定出的软标签用于学生模型的训练,也就实现了老师模型中先验知识的传递,具体地,对于上述第一样本用户,可以根据上述嵌入向量集确定对应的样本用户特征向量,并结合根据该嵌入向量集确定出的目标对象的目标对象特征向量,确定对应第一样本软标签,用于行为预测模型的训练。

图3示出根据一个实施例的行为预测模型的训练架构示意图,如图3所示,首先,基于预先确定的嵌入向量集,确定对应于上述第一样本用户的样本用户特征向量,并且,确定对应于上述目标对象的目标对象特征向量;接着,将该样本用户特征向量输入第一行为预测模型中,得到第一行为概率,一方面,结合该第一行为概率和上述第一样本硬标签,确定第一损失项;另一方面,基于该样本用户特征向量和目标对象特征向量,确定第一用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签,进而结合该第一样本软标签和上述第一行为概率,确定第二损失项;然后,利用该第一损失项和第二损失项,训练该第一行为预测模型。如此,可以实现对第一行为预测模型的训练,从而通过对目标对象的候选用户进行行为预测,确定出目标对象的目标用户群体,并向该目标用户群体推荐该目标对象。

接下来,对本说明书实施例披露的行为预测模型的训练方法进行更具体的介绍。

图4示出根据一个实施例的行为预测模型的训练方法流程图,所述方法的执行主体可以为任何具有计算、处理能力的平台、服务器、设备集群等。如图4所示,所述方法包括以下步骤:

步骤s410,确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,该第一样本硬标签指示该第一样本用户是否对该目标对象做出特定行为;步骤s420,基于预先确定的嵌入向量集,确定对应于该第一样本用户的样本用户特征向量,并且,确定对应于该目标对象的目标对象特征向量;其中,该嵌入向量集是利用训练后的图神经网络对构建的二部图进行图嵌入处理而确定;该二部图包括对应于多个用户的多个用户节点,对应于多个对象的多个对象节点,以及用户节点向对象节点做出该特定行为而形成的连接边,该嵌入向量集中包括该多个用户的多个用户特征向量和该多个对象的多个对象特征向量;步骤s430,将该样本用户特征向量输入第一行为预测模型中,得到行为预测结果;步骤s440,基于该行为预测结果和该第一样本硬标签,确定第一损失项;步骤s450,基于该样本用户特征向量和该目标对象特征向量,确定该第一样本用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签;步骤s460,基于该行为预测结果和该第一样本软标签,确定第二损失项;步骤s470,利用该第一损失项和第二损失项,训练该第一行为预测模型。

针对以上步骤,首先需要说明的是,上述“第一样本用户”、“第一样本硬标签”等中的“第一”,以及文中别处“第二”、“第三”等类似用语,均是为了描述的清楚而用于区分同类事物,不具有其他限定作用。

另外,为了便于理解,先对上述步骤s420中嵌入向量集的确定进行介绍,具体地,在执行步骤s420之前,利用预先构建的二部图和采集的训练样本集训练gnn模型,再利用训练后的gnn模型对该二部图进行图嵌入处理,得到上述嵌入向量集。

对于上述二部图,在一种构建方式中,可以采集多个用户的用户特征、多个对象的对象特征,以及多个用户和多个对象之间的交互数据,然后,基于这些数据构建二部图。在一个实施例中,上述多个用户中的任一用户可以体现为账户名、用户id(identity,标识)、用户终端设备id。在一个实施例中,上述用户特征数据可以包括用户属性特征,如性别、年龄、职业、地址(公司地址、常住地址、物流收货地址、实时位置等)、兴趣爱好(如运动、画画等)。在另一个实施例中,上述用户特征数据可以包括基于用户的历史行为数据而确定出的用户行为特征,例如,平台活跃度(如日均登录次数、日均登录时长)、交易偏好特征(如商品类别、交易时段)等。

在一个实施例中,上述多个对象中的任一对象可以属于以下中的任一种:内容信息、业务登录界面、业务注册界面、商品、服务、用户。在一个具体的实施例中,其中内容信息的形式包括以下中的至少一种:图片、文本、视频。在一些具体的例子中,业务对象可以是超链接文本(如链接到目标页面的广告文本)、超链接图片(如连接到目标页面的广告图片)、公众号的文章、支付宝登录和注册界面、服装、书籍(电子书或纸质书)、线上生活缴费服务、平台推荐关注的个人用户、公众号或内容领域。需要说明,某个业务对象可以是某一篇文章、某一张广告图片、某一个商品等等,训练样本中的业务对象是指单个业务对象。

在一个实施例中,上述对象特征可以包括业务对象的介绍文本(可以是从网络中爬取或由工作人员输入的)、业务对象id(identity,标识)(例如,可以是系统分配得到的)、其所属的业务类别(如视频播放类、交友类、游戏类等)、其所针对的目标人群(如青年、学生、在职人员等)。在一个具体的实施例中,若业务对象属于内容信息,则其对象特征还可以包括基于所对应的内容信息确定的特征。在一个例子中,业务对象为一篇内容资讯,则其对象特征还可以包括该篇内容资讯的关键词或摘要文本。在另一个例子中,业务对象为某张图片(或称第一图片),该第一图片中包括多个像素,共同对应多个不同的像素值,相应地,该第一图片的对象特征还可以包括多个不同的像素值,以及其中各个像素值所对应的像素块个数。

在一个实施例中,多个用户和多个对象之间的交互数据可以包括,某个对象被曝光给哪些用户,某个用户对哪些对象做出上述特定行为。在一个实施例中,上述特定行为可以包括:点击行为、浏览达到预设时长的行为、注册行为、登录行为、购买行为和关注行为。其中特定行为可以由工作人员根据业务对象和实际经验进行设定。例如,若业务对象为广告图片,则特定行为可以被设定为点击行为。又例如,若业务对象为商品,则特定行为可以被设定为购买行为。再例如,若业务对象为新闻资讯,则特定行为可以被设定为浏览时长达到预设时长(如5min)。还例如,若业务对象为公众号,则特定行为可以被设定为关注行为。再又例如,若业务对象为应用app,则特定行为可以被设定为登录行为或下载行为或注册行为。

以上对采集的多个用户的用户特征、多个对象的对象特征,以及用户和对象之间的交互数据进行介绍。进一步地,可以基于这些数据构建二部图。在一个实施例中,创建对应于多个用户的多个用户节点,并将各个用户的用户特征作为对应用户节点的节点特征,同理,创建对应于多个对象的多个对象节点,并将各个对象的对象特征作为对应对象节点的节点特征;然后,基于交互数据,在用户节点和对象节点之间建立连接边,具体包括:假定根据该交互数据判断出某个用户曾对某个对象做出上述特定行为,则在该某个用户对应的用户节点和该某个对象对应的对象节点之间建立连接边。需要理解,用户节点之间不会存在连接边,对象节点之间也不会存在连接边。如此,可以实现用户-对象二部图的构建。

对于上述训练样本集,需要理解,训练样本集涉及的用户属于上述多个用户,并且,训练样本集涉及的对象属于上述多个对象。此外,该训练样本集可以基于上述交互数据而构建,比如,若根据该交互数据判断出某对象被曝光给某用户,则可以基于该某对象和某用户构建训练样本,进一步地,若该某用户向该某用户做出特定行为,则将对应的样本标签设定为正例标签,若该某用户没有向该某用户做出特定行为,则将对应的样本标签设定为负例标签。另外,上述用户标识和对象标识可以分别映射到二部图中对应的用户节点和对象节点。

以上,对用户-对象二部图和训练样本集的构建进行介绍。另一方面,对于gnn模型的训练,可以采用图5中示出的以下步骤实现:

步骤s51,获取训练样本集,其中任意的第一训练样本中包括第一用户的用户标识、第一对象的对象标识和第一样本标签。其中第一样本标签指示该第一用户是否向该第一对象做出特定行为,即,该第一样本标签为上述正例标签或负例标签。

步骤s52,通过图神经网络对该二部图进行图嵌入处理,确定上述第一用户的第一用户特征向量和第一对象的第一对象特征向量。

需要说明,利用图神经网络对二部图中的任一节点进行图嵌入的过程是相同的。基于此,下面以对二部图中任意的第一节点进行图嵌入,从而得到与第一节点对应的特征向量为例,对上述图嵌入处理的过程进行说明。

在一个实施例中,可以采用多级聚合的方式对第一节点进行图嵌入,比如,一级聚合可以包括,对该第一节点的一阶邻居节点的节点特征进行聚合,二级聚合可以包括,对该第二节点的二阶邻居节点的节点特征进行聚合。

然而,一方面,发明人发现,若采用常规的图嵌入方式,则对应得到的用户特征向量是耦合的,无法表征用户对多个对象分属的不同领域的意图(intentions),例如,用户对于电影领域和理财领域,可能具有不同的偏好和行为倾向。因此,为了得到含义更加丰富的用户表征向量,发明人提出采用以下图嵌入方式,实现对用户特征向量的解耦(disantangle),也就是使得确定出的用户特征向量能够反映用户对上述不同领域的意图。

具体地,上述图神经网络包括l个隐层,相应地,上述图嵌入处理可以包括:针对第一节点,在每个隐层,获取上一隐层输出的隐向量hu(其中下角标u表示第一节点),该隐向量hu包括对应于k个特征子空间的k个子隐向量,可表示为对该k个子隐向量分别进行t次迭代更新得到本层输出的隐向量,将第l个隐层输出的隐向量作为第一节点对应的特征向量。需要理解,l为正整数,k为大于1的整数,k为不大于k的正整数,t为正整数;并且,其中k个特征子空间具有相同的维数。在一个具体的实施例中,其中l、k、t的数值可以是人工设定的,其中k的数值对应于上述多个对象所涉及的推荐领域的数量,例如,假定多个推荐领域包括电影、理财和购物领域,则可以将k设定为3。

在一个实施例中,上述对该k个子隐向量分别进行t次迭代更新包括,对k个子隐向量中任意的第j子隐向量进行任一次迭代更新,显然,其中j为不大于k的正整数。更具体地,对其中第j子隐向量进行任一次迭代更新包括:

首先,一方面,获取上述第一节点的第j子映射向量其是将上述第一节点的节点特征xu映射至第j个子特征空间而得到。另一方面,获取上述第一节点的n个邻居节点各自对应的k个子映射向量,该k个子映射向量是将对应的邻居节点的节点特征映射至上述k个特征子空间而得到。需要说明,其中n个邻居节点可以是预定阶数(如2阶或3阶等)以内的邻居节点,并且,n为正整数。

对此,根据一个实施例,当前隐层中,在对上一隐层输出的隐向量hu进行t次迭代更新前,可以先确定第一节点和其n个邻居节点(共n+1个)中各个邻居节点各自对应的k个子映射向量,相应,可以在对上述k个子隐向量分别进行t次迭代更新的过程中,对各个节点的子映射向量进行按需取用。

在一个示例中,对于n+1个节点中的第i个节点,将其映射至第k个子特征映射空间而得到对应的子映射向量可以通过下式实现:

其中,σ(·)表示激活函数,分别表示对应于第k个子特征空间的线性变换矩阵和偏置向量,‖·‖2表示二阶范数。

相应地,可以获取上述第j子映射向量以及n个邻居节点中各自对应的k个子映射向量。

接着,针对上述n个邻居节点中任一的第二节点,分别计算该第二节点对应的k个子映射向量与上述第j子隐向量之间的k个相似度,并利用其和值对其中第j个相似度进行归一化处理,得到第一权重。在一个示例中,可以通过计算两个向量之间的点积、欧式距离、余弦距离等,得到相似度。在一个示例中,可以利用softmax函数、求数值占比等方式,实现上述归一化处理,进而得到第一权重。

根据一个具体的示例,可以通过以下公式计算第一权重:

其中,表示第二节点对应的第k个子映射向量与第j隐向量之间的相似度,角标t表示转置;τ为超参数,如可设定为1.5或2;其中包含的下角标v用于标识邻居节点。

如此,可以得到对应于n个邻居节点的n个第一权重。然后,利用对应于n个邻居节点的n个第一权重,对该n个邻居节点所对应的n个第j子映射向量进行加权处理,得到加权向量,并将上述第j子隐向量更新为,上述第j子映射向量和上述加权向量的和向量所对应的单位向量。在一个示例中,可以表示为以下计算式:

其中,表示第一节点的第j子隐向量;表示第一节点的第j子映射向量;表示n个邻居节点组成的节点集合;表示第二节点的第j子映射向量;表示第二节点对应的第一权重;表示上述加权向量;‖·‖2表示二阶范数。需要理解,公式(3)相当于原始向量除以原始向量的模,得到的数值即为原始向量所对应的单位向量。

如此,可以得到任一次迭代更新后的进而可以将t次迭代跟新后的进行拼接,并将拼接得到的隐向量作为当前隐层的输出,这就实现了对节点表征向量的解耦。

进一步地,考虑到上述二部图中或多或少引入了一些噪声,会影响节点嵌入的准确性,例如,用于构建二部图的交互数据中,存在某个用户手滑点击了某张广告图片的点击数据,而导致在二部图中建立了一条噪声连接边。对此,发明人提出,在对第一节点的隐向量进行更新时,引入注意力机制,对其n个邻居节点进行注意力打分,从而减缓或消除二部图中噪声的影响。

根据一种实施方式,在当前隐层中,可以在对上述第一节点的第j子隐向量进行t次迭代更新前,计算引入注意力机制得到的n个邻居节点对应的n个第二权重,再在当前隐层的每次迭代更新中,对该n个第二权重进行取用。

对于上述n个第二权重的确定和使用分别进行如下介绍。在一个实施例中,先根据第一节点的节点特征和n个邻居节点中任意的第二节点的节点特征,对第二节点进行注意力打分,然后,对得到的对应于n个邻居节点的n个注意分数进行归一化处理,得到上述n个第二权重。

在一个示例中,可以通过以下公式计算第二节点的第二权重:

其中,vb表示参数向量,σ(·)表示激活函数,wb表示参数矩阵,[xu,xv]表示将向量xu和xv进行拼接得到的拼接向量,bb表示偏置向量,表示n个邻居节点组成的节点集合。

在另一个示例中,也可以通过以下公式计算第二节点的第二权重:

其中,vb表示参数向量,σ(·)表示激活函数,wb1和wb2均为参数矩阵,[xu,xv]表示将向量xu和xv进行拼接得到的拼接向量,bb表示偏置向量,表示n个邻居节点组成的节点集合。

如此,可以在对第一节点的隐向量进行更新前,得到n个邻居节点对应的n个第二权重,用于结合上述n个第一权重,实现t次迭代更新中的各次迭代更新。在一个实施例中,对于上述任一次迭代更新包括的利用n个第一权重计算加权向量的步骤,可以被进一步实施为:获取上述n个第二权重,对上述n个第一权重和上述n个第二权重进行对应位置的权重相乘处理,得到n个第三权重;再利用该n个第三权重,对上述n个第j子映射向量进行加权处理,得到上述加权向量。需要理解,其中对应位置的权重相乘处理的本质在于,对应位置的第一权重和第二权重对应相同的邻居节点。在一个示例中,其中进一步实施可以用以下计算式实现:

其中,表示第一节点的第j子隐向量;表示第一节点的第j子映射向量;表示n个邻居节点组成的节点集合;表示第二节点的第j子映射向量;表示第二节点对应的第一权重;αu,v表示第二节点对应的第二权重;表示上述加权向量;‖·‖2表示二阶范数。

如此,在隐向量的更新过程中,可以同时实现用户领域意图的解耦和二部图中噪声信息的消除。以上主要对在l个隐层的任一隐层中对第一节点的第j子隐向量的t次迭代更新中的任一次迭代更新进行说明,由此,可以得到第l个层输出的隐向量,作为第一节点的特征向量。此外需要说明,上述图嵌入处理还可以实现为:针对k个推荐领域设计对应的k个gnn模型,相应地,k个gnn模型的隐层可以实现对各自对应的子隐向量的更新,再将k个gnn模型输出的k个子隐向量进行拼接,作为第一节点对应的特征向量。

根据另一方面的实施例,也可以不考虑用户领域意图的解耦,而是只考虑二部图中噪声信息的消除,同样可以提高节点嵌入向量的表征准确度。相应地,上述图嵌入处理过程可以实现为:针对上述二部图中任意的第一节点,在每个隐层,获取上一隐层输出的隐向量hu,对该隐向量进行t次迭代更新作为本层输出,将第l个隐层输出的隐向量作为该第一节点对应的特征向量。其中,该t次迭代更新中的任一次迭代更新包括:

首先,获取第一节点及其n个邻居节点各自对应的映射向量,该映射向量是将其对应节点的节点特征映射至预设特征空间而得到。在一个示例中,对于第一节点及其n个邻居节点中的第i个节点,将其映射至预设特征空间(需理解,其中预设是指空间维数是预先设定的)而得到对应的映射向量zi,可以通过下式实现:

其中,σ(·)表示激活函数,wp和bp分别表示对应于预设特征空间的线性变换矩阵和偏置向量,‖·‖2表示二阶范数。

接着,计算上述n个邻居节点各自对应的映射向量与所述隐向量之间的相似度,得到n个相似度,并对该n个相似度进行归一化处理,得到n个第一权重。在一个示例中,其中任一个第一权重可以通过下式计算得到:

其中,hu表示第一节点的隐向量;zv表示邻居节点v的映射向量;zvthu表示hu和zv之间的相似度,角标t表示转置;表示n个邻居节点组成的节点集合;τ为超参数。

然后,获取对n个注意力分数进行归一化处理而得到的n个第二权重,该n个注意力分数对应所述n个邻居节点,其中各个注意力分数是基于其对应的邻居节点的节点特征和所述第一节点的节点特征而确定。

需要说明,对n个注意力分数和n个第二权重的确定,可以参见上述相关描述,如公式(4)和(5)等,在此不作赘述。

再接着,对上述n个第一权重和n个第二权重进行对应位置的权重相乘处理,得到n个第三权重,并利用上述n个第三权重,对上述n个邻居节点对应的n个映射向量进行加权处理,得到加权向量;最后,将上述隐向量更新为,第一节点的映射向量与该加权向量的和向量所对应的单位向量。在一个示例中,具体可以实现为以下公式的计算:

在上式中,hu表示第一节点u的隐向量;表示第一节点u的n个邻居节点组成的邻居节点集合;zu表示第一节点u的映射向量;αu,v和pu,v分别表示邻居节点v的第二权重和第一权重;zv表示邻居节点v的映射向量。

采用以上方式更新隐向量,可以实现对二部图中所引入噪声信息的消除。

以上,对步骤s52中通过图神经网络对用户-对象二部图进行图嵌入处理,确定任一的第一节点的特征向量进行介绍。由此可自然推出,对与第一用户对应的第一用户节点进行图嵌入得到第一用户特征向量,以及,对与第一对象对应的第一对象节点进行图嵌入得到第一对象特征向量的过程。

然后,在步骤s53,基于该第一用户特征向量和第一对象特征向量,确定该第一用户对该第一对象做出该特定行为的第一行为概率,进而结合该第一样本标签,确定行为预测损失。

对于其中第一行为概率的确定,在一个实施例中,可以计算第一用户特征向量和第一对象特征向量的第一相似度,并对该第一相似度进行归一化处理,得到该第一行为概率。需要理解,其中归一化处理是指把一个数值映射为区间[0,1]中的一个数值。在一个具体的实施例中,可以采用取值区间在[0,1]内的分段函数,对第一相似度进行映射处理,得到第一行为概率。在另一个具体的实施例中,可以采用取值区间在[0,1]内的单调函数,如sigmoid函数,将第一相似度归一化为第一行为概率,具体可以表示为以下公式:

其中,表示第一行为概率,表示第一用户特征向量,表示第一对象特征向量。

在另一个实施例中,可以对第一用户特征向量和第一对象特征向量进行融合,得到第一融合向量;再将第一融合向量输入分类网络中,得到第一行为概率。在一个具体的实施例中,其中向量的融合可以通过拼接、加和或求平均实现。在一个具体的实施例中,其中分类网络可以用若干全连接层实现。

在以上确定出第一行为概率后,结合上述第一样本标签,确定行为预测损失。在一个具体的实施例中,可以利用交叉熵损失函数、铰链损失函数、或欧式距离等,计算该行为预测损失。在一个示例中,可以采用交叉熵损失函数计算行为预测损失,具体的计算式如下

其中,表示行为预测损失,y表示第一样本标签(如=0或=1),表示第一行为概率。

由上,可以确定出行为预测损失,进而在步骤s54,利用该行为预测损失,训练该图神经网络。在一个实施例中,利用行为预测损失,训练上述分类网络和图神经网络。需要说明,训练过程中的调参可以采用反向传播法实现,在此不作赘述。

通过执行以上步骤s51至步骤s52,可以实现对gnn模型的训练,并在训练至收敛或者达到预定迭代次数后,利用训练好的gnn模型对二部图中的各个节点进行图嵌入处理,得到包括对应于多个用户的多个用户特征向量,以及对应于多个对象的多个对象特征向量的嵌入向量集,用于指导学生模型,即,行为预测模型的训练。

现在回到图4,图4中包括的步骤具体如下:

首先,在步骤s410,确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,该第一样本硬标签指示该第一样本用户是否对该目标对象做出特定行为。

在一种实施情况下,目标对象历史推荐对象,也就是目标对象曾经被推荐给一些用户,此时,其属于上述多个对象,相应地,可以根据相关的历史反馈数据或者历史行为数据,确定上述多个样本用户。在另一种实施情况下,目标对象是新对象,也就意味着不存在与之相关的历史数据,相应地,可以获取人工构建的多个样本用户。对于人工构建的过程,在一种可能的方式中,工作人员可以根据与目标对象相关的历史推荐对象的历史数据,确定上述多个样本用户。例如,假定目标对象是即将上映的一部电影,名为xx系列的第二部,此时,可以筛选出看过xx系列的第一部的用户,将其归入上述多个样本用户,并将这部分用户对应的样本硬标签设定为正例标签,即指示用户对目标对象做出特定行为,同时,在没有看过xx系列的第一部的用户中,随机抽取一部分用户归入上述多个样本用户中,并将这部分用户的样本硬标签设定为负例标签,即指示用户没有对目标对象做出特定行为。

由上,可以确定针对目标对象的多个样本用户,以及获知其中任一的第一样本用户对应的第一样本硬标签。

接着,在步骤s420,基于预先确定的嵌入向量集,确定对应于该第一样本用户的样本用户特征向量,并且,确定对应于该目标对象的目标对象特征向量。需要理解,第一样本用户属于二部图中的多个用户,因此,可以从嵌入向量集中直接查询得到该第一样本用户的样本用户特征向量。

对于目标对象,在一种实施情况下,其属于二部图中的多个对象,此时,可以从嵌入向量集中直接查询得到该第一目标对象的目标对象特征向量。在另一种情况下,目标对象是新的对象,其不属于上述多个对象。此时,可以根据上述多个样本用户中样本硬标签指示对目标对象做出特定行为的用户(为便于描述,称为种子用户),确定目标对象的目标对象特征向量。

具体地,先确定多个(m个)种子用户对应的多个种子特征向量;再根据该多个种子特征向量,以及上述多个(n个)对象对应的多个对象特征向量,确定目标对象特征向量,其中m和n均为大于1的整数。

在一个实施例中,计算m个种子特征向量中各个种子向量与n个对象特征向量中各个对象向量之间的相似度,得到m*n个相似度;再确定该m*n个相似度中在预定范围内的若干相似度,并将该若干相似度所对应的若干对象特征向量的平均向量,作为上述目标对象特征向量。在一个具体的实施例中,其中预定范围可是排名在前多少名(如前10名)以内,或者,排名在前多少百分比(如前1%)以内。

在另一个实施例中,考虑到计算m*n个相似度的计算量比较大,可以利用聚类优化目标向量的计算过程,有效减少计算量。具体地,先对上述多个种子特征向量进行聚类处理,得到q(q为正整数)个类簇;接着,针对该q个类簇中任一的第一类簇,对其中所包含的种子特征向量进行平均处理,得到第一平均向量,并计算该第一平均向量与上述n个对象特征向量中各个向量之间的相似度,得到n个第三相似度,并确定其中的最大相似度所对应的对象特征向量,作为第一相似对象特征向量;再基于对应于所述q个类簇的q个相似对象特征向量,确定上述目标对象特征向量。

在一个具体的实施中,其中聚类处理可以采用k-means聚类算法,dbscan聚类算法等聚类算法,具体不作限定。在一个具体的实施例中,其中基于对应于所述q个类簇的q个相似对象特征向量,确定上述目标对象特征向量,可以包括:将该q个相似对象特征向量的平均向量,确定为目标对象特征向量,或者,将该q个相似对象特征向量,共同作为目标对象特征向量。

由上,可以确定对应于第一样本用户的样本用户特征向量,以及对应于目标对象的目标对象特征向量。

进一步地,在步骤s430,将该样本用户特征向量输入第一行为预测模型中,得到行为预测结果。在一个实施例中,其中第一行为预测模型可以为轻量级模型,例如,隐层数量小于阈值的多层感知机,如包含2个全连接层的多层感知机,又例如,逻辑回归模型或支持向量机等。

在得到第一行为预测结果后,一方面,可以在步骤s440,基于该行为预测结果和该第一样本硬标签,确定第一损失项。在一个实施例中,可以根据交叉熵损失函数,或铰链损失函数,或欧式距离等,计算第一损失项。

另一方面,可以在步骤s450,基于该样本用户特征向量和该目标对象特征向量,确定该第一样本用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签。并且,在步骤s460,基于该行为预测结果和该第一样本软标签,确定第二损失项。

对于上述特定行为概率的确定,在一个实施例中,可以计算样本用户特征向量和目标对象特征向量的第二相似度,并对该第二相似度进行归一化处理,得到特定行为概率。在另一个实施例中,目标对象特征向量包括上述q个对象特征向量,相应地,可以计算样本用户特征向量和上述q个对象特征向量中各个向量之间的第四相似度,并对该第四相似度进行归一化处理,得到q个归一化概率,进而计算该q个归一化概率的均值,作为特定行为概率。在还一个实施例中,可以对样本用户特征向量和目标对象特征向量进行融合,得到第二融合向量,再将该第二融合向量输入训练后的上述分类网络中,得到特定行为概率。

对于第二损失项的确定,可以参见对第一损失项的相关描述,不作赘述。

以上可以确定出第一损失项和第二损失项,进而在步骤s470,利用该第一损失项和第二损失项,训练该第一行为预测模型。在一个实施例中,可以直接将第一损失项和第二损失项的加和结果,作为综合损失,训练第一行为预测模型。在另一个实施例中,可以为第一损失项和第二损失项人工分配不同的权重,再将加权求和的结果作为综合损失,训练第一行为预测模型。

如此,可以实现第一行为预测模型的训练,并且,在训练至迭代收敛或者迭代次数达到预定数值后,可以得到训练好的第一行为预测模型,用于确定目标对象的推荐人群,实现人群定向。

综上,采用本说明书实施例披露的行为预测模型的训练方法,在训练针对目标对象的第一行为预测模型的过程中,通过将gnn模型输出的特征向量作为先验知识,可以减少多个样本用户中种子用户存在的覆盖偏差,有效提高模型性能,加快训练速度,并且,因为第一行为预测模型可以实现为轻量级模型,因此,可以大大减少后续行为预测过程中的计算量。

根据另一方面的实施例,一者,考虑到上述针对目标对象的多个种子用户(对应样本标签为正例标签)存在一些噪声,例如,种子用户是根据目标对象的历史推荐情况确定的,而用户自身是一个不断变化的个体,其偏好可能发生改变导致标签不准确,或者,种子用户是根据人工设定的规则筛选得到的,这也会引入噪声标签;二者,考虑到不同的种子用户具有的可拓展性不同,例如,基于种子用户a拓展得到的50个推广用户中,有30个对目标对象做出特定行为,而基于种子用户b拓展得到的50个推广用户中,只有5个对目标对象做出特定行为,则种子用户a相较于种子用户b明显具有更高的拓展性。因此,发明人提出,在训练针对目标对象的行为预测模型时,可以为不同种子用户对应的正样本赋予不同的样本权重,从而降低噪声影响,提高模型拓展能力。

具体地,图6示出根据另一个实施例的行为预测模型的训练方法流程图,所述方法的执行主体可以为任何具有计算、处理能力的平台、服务器、设备集群等。如图6所示,所述方法包括以下步骤:

步骤s610,针对目标对象,获取基于多个种子用户形成的多个正样本,其中任意的第一正样本包括,与第一种子用户对应的第一用户特征和正例标签,该正例标签指示出,对应用户是被确定为对该目标对象做出特定行为的用户;步骤s620,基于该多个种子用户各自的用户特征,采用无监督的离群点检测算法,确定该第一种子用户的离群分数,作为针对行为预测任务的第一训练权重;步骤s630,利用针对该行为预测任务的训练样本集,对第一行为预测模型进行第一训练,该训练样本集包括所述多个正样本以及预先获取的多个负样本;其中第一训练具体包括:步骤s631,将该第一用户特征输入第一行为预测模型中,得到对应的行为预测结果;步骤s632,基于该行为预测结果和该正例标签,确定行为预测损失,并利用该第一训练权重对该行为预测损失进行加权处理,得到加权损失;步骤s633,利用该加权损失,训练该第一行为预测模型。

针对以上步骤,首先需要说明的是,在一种实施情况下,图6中的第一行为预测模型可以是图4中提及的第一行为预测模型,此时,图6示出的方法是基于图4示出的方法做出的进一步改进。在另一种实施情况下,图6中的第一行为预测模型不同于图4中提及的第一行为预测模型,此时,图6示出的方法可以看作一个单独的方法流程,其并不依托于图4示出的方法流程;进一步地,在一种实施例中,第一行为预测模型可以实现为dnn(deepneuralnetworks,深度神经网络),或者cnn(convolutionalneuralnetworks,卷积神经网络)。

以上步骤具体如下:

首先,在步骤s610,针对目标对象,获取基于多个种子用户形成的多个正样本,其中任意的第一正样本包括,与第一种子用户对应的第一用户特征和正例标签,该正例标签指示出,对应用户是被确定为对该目标对象做出特定行为的用户。

在一个实施例中,上述目标对象是历史推荐对象,此时,可以直接根据相关的历史数据,确定出曾经对该目标对象做出特定行为的历史用户,归为上述多个种子用户。在另一个实施例中,上述目标对象是新的待推荐对象,此时,尚不存在相关历史数据,此时,可以由工作人员根据目标对象的特点(例如,目标对象是江浙美食),设定筛选规则(消费记录中包括对江浙美食的交易),从海量用户中筛选出具有较高的可能性对该目标对象做出特定行为的用户,归为上述多个种子用户。

相应地,可以获取多个种子用户形成的多个正样本。接着,在步骤s620,基于该多个种子用户各自的用户特征,采用无监督的离群点检测算法,确定该第一种子用户的离群分数,作为针对该行为预测任务的第一训练权重。需要理解,其中离群分数所对应的值域为[0,1],其中行为预测任务是指,预测用户是否会对目标对象做出特定行为的任务。

需要说明,发明人通过对多个对象的历史反馈数据进行统计分析发现,将多个历史种子用户映射至用户空间后,分布在稀疏区域的历史种子用户,相较于分布在密集区域的历史种子用户而言,可拓展性更强,并且,越稀疏越强。基于此,发明人提出,可以采用无监督的离群点检测算法(也称异常检测算法),给上述多个种子用户打分,进而确定针对行为预测任务的训练权重。需强调,种子用户的离群分数越高,说明其所在区域种子用户分布越稀疏,相应地,为其分配的权重越高。

具体地,在一个实施例中,采用的离群点检测算法可以是孤立森林(isolationforest)算法,相应地,本步骤中可以包括:首先,利用多个种子用户各自的用户特征,构建孤立森林模型,该孤立森林模型中包括多棵孤立树,其中每棵孤立树包括用于对种子用户进行划分的多个节点和节点之间的多条边;接着,将该第一用户特征输入该孤立森林模型,得到多条路径,其中各条路径为该第一种子用户在对应的孤立树中从根节点到叶节点经过的边;然后,将该各条路径中所包含边的数量输入与该孤立森林模型对应的离群评估函数,得到该第一种子用户的离群分数,作为上述第一训练权重。

在另一个实施例中,采用的离群点检测算法可以是密度估计(densityestimation)算法,相应地,本步骤可以包括:基于多个种子用户各自的用户特征,利用密度估计算法,确定该多个种子用户对应的概率密度函数;然后,利用该概率密度函数,确定所述第一种子用户对应的概率密度;再利用预设的减函数对该概率密度进行运算,得到上述离群分数,作为上述第一训练权重。进一步地,在一个具体的实施例中,其中密度估计算法可以采用最大似然估计算法或核密度估计(kerneldensityestimation)算法等。在一个具体的实施例中,其中预设的减函数可以是:y=1-x等,其中y表示离群分数,x表示概率密度。

由上,可以得到第一种子用户对应的第一训练权重,相应可得到多个种子用户对应的多个训练权重。

然后在步骤s630,利用针对上述行为预测任务的训练样本集,对第一行为预测模型进行第一训练,该训练样本集包括所述多个正样本以及预先获取的多个负样本。需要理解,其中任意的第一负样本中包括对应用户的用户特征和负例标签,该负例标签指示出,对应用户是被确定为不对目标对象做出特定行为的用户。

上述第一训练具体包括:在步骤s631,将第一用户特征输入第一行为预测模型中,得到对应的行为预测结果;接着在步骤s632,基于该行为预测结果和上述正例标签,确定行为预测损失,并利用上述第一训练权重对该行为预测损失进行加权处理,得到加权损失;然后在步骤s633,利用该加权损失,训练该第一行为预测模型。在一个实施例中,其中行为预测损失可以基于交叉熵损失函数、铰链损失函数、欧式距离等确定。

根据一个具体的实施例,在利用某批次样本对第一行为预测模型进行训练时,计算出的损失如下:

其中,n表示某批次样本的总数;s+表示上述多个正样本构成的正样本集;vi表示该某批次样本中第i个正样本对应的训练权重;xi表示第i个正样本对应的用户特征;f(·)表示第一行为预测模型对应的函数;f(xi)表示第i个正样本对应的行为预测结果;s-表示上述多个负样本构成的负样本集;f(xj)表示第j个负样本对应的行为预测结果。

如此,可以实现对第一行为预测模型的训练,从而利用训练好的第一行为预测模型,确定出目标对象适用的推荐人群。具体地,在一个实施例中,在步骤s630之后,上述方法还可以包括:先获取多个候选用户的多个用户特征,并将该多个用户特征分别输入训练后的第一行为预测模型中,得到对应的多个行为预测结果;接着基于该多个行为预测结果,从多个候选用户中选出多个目标用户;再向该多个目标用户推送目标对象。

对于上述多个候选用户的确定,在一个具体的实施例中,可以是根据预置规则确定的,例如,可以是从未被推送过目标对象的用户中,随机选取预定数量的用户作为该多个候选用户,又例如,假定该目标对象适合被推送给开通了某项服务的用户,则可以将开通了该某项服务的用户归为该多个候选用户。

对于上述多个目标用户的选取,在一个具体的实施例中,对于某个候选用户,如果其对应的行为预测结果指示其会对目标对象做出特定行为,则将该某个候选对象归入多个目标用户。在另一个具体的实施例中,上述多个行为预测结果对应多个行为预测概率,可以基于该多个行为预测概率对多个候选用户进行排序,再将排在预设范围(如前10万名)内的候选用户确定为多个目标用户。

在选取出多个目标用户后,向该多个目标用户推送目标对象。进一步地,在一个实施例中,在向该多个目标用户推送目标对象之后,可以对该多个目标用户针对该目标对象的反馈数据进行采集,然后利用反馈数据训练行为预测模型,进行人群重定向。需要理解,基于反馈数据构建的训练数据具有更高的时效性和准确性,因此利用反馈数据训练行为预测模型,能够得到较好的预测效果。

具体地,先获取针对多个目标用户采集的行为反馈数据,接着基于该行为反馈数据构建多个训练样本,其中各个训练样本中包括对应目标用户的用户特征和样本标签,该样本标签指示该对应目标用户是否对所述目标对象做出所述特定行为;再利用该多个训练样本,训练第二行为预测模型。需要说明,其中第二行为预测模型可以独立于上述第一行为预测模型,或者,第二行为预测模型也可以是上述训练后的第一行为预测模型,相应地,训练第二行为预测模型实际就是对第一行为预测模型进行再训练。如此,可以利用训练后的第二行为预测模型确定针对目标对象的目标推荐用户,进行目标对象的后续推送。

需要说明,发明人在对历史反馈数据进行研究的过程中发现,在连续多个采集周期(如每个采集周期可以为1天)内采集到的多批反馈数据,其中不同批次的反馈数据中做出特定行为的用户存在分布差异,这就会导致基于某批次或某几批次反馈数据构建的多个训练样本中的正样本存在覆盖偏差(例如,某些用户难以被拓展到)。因此,发明人想到,上述冷启动阶段确定的多个种子用户,其中用户量比较丰富,覆盖偏差相对较小,因此可以结合反馈数据和多个种子用户共同训练第二行为预测模型。然而,发明人还考虑到,上述多个种子用户存在一些噪声用户,如果只是简单的将两部分数据混在一起进行模型训练,可能会导致相较于单独使用反馈数据,训练出的模型预测性能会有所降低。因此,发明人进一步提出,对上述多个种子用户进行筛选,筛选出其中较优质的种子用户,再结合基于反馈数据构建的上述多个训练样本,对上述第二行为预测模型进行训练。

在一个具体的实施例中,从对应于多个种子用户的多个正样本中,确定多个选中正样本,再利用该多个选中正样本和上述多个训练样本,训练第二行为预测模型。在一个更具体的实施例中,其中确定多个选中正样本可以包括:利用上述多个训练样本,训练第三行为预测模型;再将多个正样本中包含的多个用户特征,分别输入训练后的第三行为预测模型中,得到多个预测概率,进而确定该多个预测概率中排在预定靠前范围内的预测概率,并将对应的正样本归为所述多个选中正样本。需要说明,第三行为预测模型用于筛选优质种子用户,其是利用多个训练样本训练得到,不同于第二行为预测模型,用于进行人群重定向,需要利用多个训练样本和筛选出的优质正样本进行训练。在一个例子中,其中预定靠前范围可以是一个比例范围(如前10%),也可以是一个具体的名次范围(如前10万名)。在另一个更具体的实施例中,其中确定多个选中正样本可以包括:获取工作人员从多个正样本中确定出的多个选中正样本。

如此,可以利用多个选中正样本和上述基于反馈数据构建的多个训练样本,训练第二行为预测模型。进一步地,发明人还考虑到,多个选中正样本中仍然存在一定的噪声,为了更进一步优化第二行为预测模型的训练性能,可以为多个选中正样本分配权重,从而削弱噪声的影响。

根据一个具体的实施例,上述利用多个训练样本以及多个选中正样本,训练第二行为预测模型,可以包括:将所述多个选中正样本中第一选中正样本所包含的用户特征,输入第二行为预测模型中,得到第一预测结果,进而结合所述正例标签,确定第一预测损失;然后,利用第一选中正样本对应的第一权重对该第一预测损失进行加权,得到第一加权损失;再利用该第一加权损失,训练第二行为预测模型。在一个更具体的实施例中,其中多个选中正样本对应的权重可以是由工作人员预先设定,具体可以设定成统一的权重,如0.8或0.6。

在另一个更具体的实施例中,可以利用反馈数据指导多个选中样本中各样本的权重的设定,从而使得权重设定的可信度更高,并且,训练出的第二行为预测模型的预测性能更好,具体地,可以采用元学习(meta-learning)的方式,相关描述如下:

发明人通过对行为反馈数据进行分析得到:产生时间越靠后的反馈数据,其反映的用户覆盖偏差越小,据此,针对上述基于行为反馈数据构建的多个训练样本,按照时间方向(timedirection),从中划分出基于该行为反馈数据中在预定时刻之后产生的部分构建的部分训练样本,作为无偏差(nobias)的元数据(meta-data)。例如,对于最近24小时内产生的行为反馈数据,将基于其中最近1小时内的数据构建的训练样本,作为元数据。

为便于描述,将元数据表示为将多个训练样本中除元数据以外的部分表示为以及将上述多个选中正样本构成的集合表示为s’+。然后,利用和s’+,以最大化第二行为预测模型f在元数据上的预测准确率为目标,对参数为θ的权重函数和参数为θ的第二行为预测模型f进行联合训练。在一个示例中,训练的目标函数如下:

其中,

在公式(13)和(14)中,θ*和θ*分别表示最优的θ和θ,表示指示函数,比如在公式(13中),若yi=+1,则在(yi=+1)前的取1,而在(yi=-1)前的取0。

由公式(13)和公式(14)可以看出,其中存在嵌套循环(nestedloop),为了避免出现这一问题,可以采用以下策略实现对θ和θ的迭代更新。具体地,上述第一选中正样本对应的第一权重的确定包括:

首先,将上述多个选中正样本中第二选中正样本所包含的用户特征,输入第二行为预测模型中,得到第二预测结果,进而结合正例标签,确定第二预测损失;然后,利用权重函数,确定第二选中样本所对应的权重表达式(其中包含变量而非数值形式的θ),利用权重表达式对第二预测结果进行加权,得到加权损失表达式,再基于该加权损失表达式,对第二行为预测模型中的模型参数进行更新计算,得到该模型参数的更新后参数表达式,具体可参见下式:

其中,表示更新后参数表达式;t表示迭代次数;lr表示学习步长,为超参;bt表示批次样本量(batchsize)。对于在一个示例中,权重函数可以通过一个全连接层实现,相应地,θ可以表示该全连接层中的参数,在另一个示例中,权重函数中可以只有一个参数(文中称为权重变量),此时,在公式(15)中,可直接取

在以上得到更新后参数表达式后,利用该更新后参数表达式,确定元数据中的第一训练样本对应的训练损失表达式,并利用训练损失表达式更新权重函数中参数θ对应的数值(可参见以下公式(16))

其中bm表示批次样本量(batchsize)。

由此可以得到第一权重进而利用第一权重对上述第一预测损失进行加权,得到第一加权损失,并利用所述第一加权损失,训练第二行为预测模型,具体可参见以下公式:

需要说明,若中只有一个权重变量,可设定以防止出现种子用户对应的样本权重为负的情况出现。

由上,可以实现利用元学习,对多个选中样本的权重进行可靠设定,从而进一步提高第二行为预测模型的预测性能。

综上,采用本说明书实施例披露的行为预测模型的训练方法,在人群定向的冷启动阶段,利用无监督的离群点检测算法,对上述多个正样本中的各个正样本进行权重分配,从而降低噪标签对第一行为预测模型的性能影响。进一步地,在获得用户反馈数据后,利用用户反馈数据训练第二行为预测模型,实现更加精准的人群重定向,使用户被推荐到符合自身需求的目标对象,从而有效提高用户体验。

与上述行为预测模型的训练方法相对应地,本说明书实施例还披露训练装置,具体如下:

图7示出根据一个实施例的行为预测模型的训练装置结构图。如图7所示,所述装置700包括:

样本用户确定单元710,配置为确定针对目标对象的多个样本用户,其中任一的第一样本用户对应第一样本硬标签,该第一样本硬标签指示该第一样本用户是否对所述目标对象做出特定行为。特征向量确定单元720,配置为基于预先确定的嵌入向量集,确定对应于所述第一样本用户的样本用户特征向量,并且,确定对应于所述目标对象的目标对象特征向量;其中,所述嵌入向量集是利用训练后的图神经网络对构建的二部图进行图嵌入处理而确定;所述二部图包括对应于多个用户的多个用户节点,对应于多个对象的多个对象节点,以及用户节点向对象节点做出所述特定行为而形成的连接边,所述嵌入向量集中包括所述多个用户的多个用户特征向量和所述多个对象的多个对象特征向量。行为预测单元730,配置为将所述样本用户特征向量输入第一行为预测模型中,得到行为预测结果。第一损失确定单元740,配置为基于所述行为预测结果和所述第一样本硬标签,确定第一损失项。软标签确定单元750,配置为基于所述样本用户特征向量和所述目标对象特征向量,确定所述第一样本用户对该目标对象做出该特定行为的特定行为概率,作为第一样本软标签。第二损失确定单元760,配置为基于所述行为预测结果和所述第一样本软标签,确定第二损失项。第一行为训练单元770,配置为利用所述第一损失项和第二损失项,训练所述第一行为预测模型。

在一个实施例中,所述目标对象属于以下中的任一种:内容信息、业务登录界面、商品、服务、用户;其中内容信息的形式包括以下中的至少一种:图片、文本、视频。

在一个实施例中,所述特定行为包括以下中的任一种:点击行为、浏览达到预设时长的行为、注册行为、登录行为、购买行为和关注行为。

在一个实施例中,所述图神经网络包括l个隐层,所述图嵌入处理基于图嵌入单元780而实现,其中图嵌入单元780配置为:针对所述二部图中任意的第一节点,在每个隐层,获取上一隐层输出的隐向量,所述隐向量包括对应于k个特征子空间的k个子隐向量,对所述k个子隐向量分别进行t次迭代更新得到本层输出的隐向量,将第l个隐层输出的隐向量作为所述第一节点对应的特征向量。

在一个具体的实施例中,所述图嵌入单元780具体配置为:对所述k个子隐向量中任意的第j子隐向量进行t次迭代更新,其中任一次迭代更新通过所述图嵌入单元中包含的以下模块实现:

映射向量获取模块781,配置为获取所述第一节点的第j子映射向量,其是将所述第一节点的节点特征映射至第j个子特征空间而得到;并且,获取所述第一节点的n个邻居节点各自对应的k个子映射向量,该k个子映射向量是将对应的邻居节点的节点特征映射至所述k个特征子空间而得到。权重计算模块782,配置为针对所述n个邻居节点中任一的第二节点,分别计算该第二节点对应的k个子映射向量与所述第j子隐向量之间的k个相似度,并利用其和值对其中第j个相似度进行归一化处理,得到第一权重。映射向量加权模块783,配置为利用对应于n个邻居节点的n个第一权重,对该n个邻居节点所对应的n个第j子映射向量进行加权处理,得到加权向量。隐向量更新模块784,配置为将所述第j子隐向量更新为,所述第一节点的第j子映射向量和所述加权向量的和向量所对应的单位向量。

在一个更具体的实施例中,所述映射向量加权模块783具体配置为:获取对n个注意力分数进行归一化处理而得到的n个第二权重,所述n个注意力分数对应所述n个邻居节点,其中各个注意力分数是基于其对应的邻居节点的节点特征和所述第一节点的节点特征而确定;对所述n个第一权重和所述n个第二权重进行对应位置的权重相乘处理,得到n个第三权重;利用n个第三权重,对所述n个第j子映射向量进行加权处理,得到所述加权向量。

在一个实施例中,所述图神经网络包括l个隐层,所述图嵌入处理基于图嵌入单元780而实现,其中图嵌入单元780配置为:针对所述二部图中任意的第一节点,在每个隐层,获取上一隐层输出的隐向量,对该隐向量进行t次迭代更新作为本层输出,将第l个隐层输出的隐向量作为所述第一节点对应的特征向量;其中,所述t次迭代更新中的任一次迭代更新包括:

获取所述第一节点及其n个邻居节点各自对应的映射向量,该映射向量是将其对应节点的节点特征映射至预设特征空间而得到;计算所述n个邻居节点各自对应的映射向量与所述隐向量之间的相似度,得到n个相似度,并对该n个相似度进行归一化处理,得到n个第一权重;获取对n个注意力分数进行归一化处理而得到的n个第二权重,所述n个注意力分数对应所述n个邻居节点,其中各个注意力分数是基于其对应的邻居节点的节点特征和所述第一节点的节点特征而确定;对所述n个第一权重和所述n个第二权重进行对应位置的权重相乘处理,得到n个第三权重;利用所述n个第三权重,对所述n个邻居节点对应的n个映射向量进行加权处理,得到所述加权向量;将所述隐向量更新为,所述第一节点的映射向量与所述加权向量的和向量所对应的单位向量。

在一个实施例中,所述图神经网络通过图神经网络训练单元包含的以下模块进行训练得到:

样本集获取模块,配置为获取训练样本集,其中任一的第一训练样本中包括第一用户的用户标识、第一对象的对象标识和第一样本标签,该第一样本标签指示所述第一用户是否向所述第一对象做出所述特定行为;图嵌入模块,配置为通过所述图神经网络对所述二部图进行图嵌入处理,确定所述第一用户的第一用户特征向量和所述第一对象的第一对象特征向量;概率确定模块,配置为基于所述第一用户特征向量和第一对象特征向量,确定所述第一用户对所述第一对象做出所述特定行为的第一行为概率;损失确定模块,配置为基于所述第一行为概率和所述第一样本标签,确定行为预测损失;图神经网络训练模块,配置为利用所述行为预测损失,训练所述图神经网络。

在一个具体的实施例中,所述概率确定模块具体配置为:计算所述第一用户特征向量和第一对象特征向量的第一相似度,并对该第一相似度进行归一化处理,得到所述第一行为概率;其中,所述软标签确定单元750具体配置为:计算所述样本用户特征向量和目标对象特征向量的第二相似度,并对该第二相似度进行归一化处理,得到所述特定行为概率。

在另一个具体的实施例中,所述概率确定模块配置为:对所述第一用户特征向量和第一对象特征向量进行融合,得到第一融合向量;将所述第一融合向量输入所述分类网络中,得到所述第一行为概率;其中,所述图神经网络训练模块具体配置为:利用所述行为预测损失,训练分类网络和所述图神经网络;其中,所述软标签确定单元750具体配置为:对所述样本用户特征向量和所述目标对象特征向量进行融合,得到第二融合向量;将所述第二融合向量输入训练后的分类网络中,得到所述特定行为概率。

在一个实施例中,所述多个样本用户中包括多个种子用户,其中各个种子用户对应的样本硬标签均指示对所述目标对象做出所述特定行为。

进一步地,在一个具体的实施例中,其中,所述目标对象不属于所述二部图中包含的所述多个对象;其中,所述特征向量确定单元720通过其包含的以下模块确定所述目标对象特征向量:

种子向量确定模块721,配置为确定所述多个种子用户对应的多个种子特征向量;对象向量确定模块722,配置为根据所述多个种子特征向量和所述多个对象特征向量,确定所述目标对象特征向量。

在一个更具体的实施例中,所述多个种子用户为m个,所述多个对象特征向量为n个;所述对象向量确定模块722具体配置为:

计算m个种子特征向量中各个向量与n个对象特征向量中各个向量之间的相似度,得到m*n个相似度;确定所述m*n个相似度中在预定范围内的若干相似度,并将该若干相似度所对应的若干对象特征向量的平均向量,作为所述目标对象特征向量。

在另一个更具体的实施例中,所述多个对象特征向量为n个;所述对象向量确定模块722具体包括:向量聚类子模块,配置为对所述多个种子特征向量进行聚类处理,得到q个类簇;相似对象确定子模块,配置为针对所述q个类簇中任一的第一类簇,对其中所包含的种子特征向量进行平均处理,得到第一平均向量,并计算该第一平均向量与n个对象特征向量中各个向量之间的相似度,得到n个第三相似度,并确定其中的最大相似度所对应的对象特征向量,作为第一相似对象特征向量;对象向量确定子模块,配置为基于对应于所述q个类簇的q个相似对象特征向量,确定所述目标对象特征向量。

更进一步地,在一个例子中,所述对象向量确定子模块具体配置为:将该q个相似对象特征向量的平均向量,确定为所述目标对象特征向量。在另一个例子中,其中,所述对象向量确定子模块具体配置为:将所述q个对象特征向量共同作为所述目标对象特征向量;其中,所述软标签确定单元750具体配置为:计算所述样本用户特征向量和所述q个对象特征向量中各个向量之间的第四相似度,并对该第四相似度进行归一化处理,得到q个归一化概率;计算所述q个归一化概率的均值,作为所述特定行为概率。

在一个实施例中,所述装置还包括权重确定单元790,配置为:基于对应于所述多个种子用户的多个种子用户特征向量,采用无监督的离群点检测算法,确定其中任一的第一种子用户的离群分数,作为第一训练权重;其中,所述第一行为训练单元770具体配置为:在所述第一样本用户为所述第一种子用户的情况下,利用所述第一训练权重对所述第一损失项和第二损失项的相加结果进行加权,得到加权损失;利用所述加权损失,训练所述第一行为预测模型。

在一个实施例中,所述装置700还包括目标用户确定单元791,配置为:获取多个候选用户的多个用户特征,并将该多个用户特征分别输入训练后的第一行为预测模型中,得到对应的多个行为预测结果;基于所述多个行为预测结果,从所述多个候选用户中选出多个目标用户;向所述多个目标用户推送所述目标对象。

在一个具体的实施例中,所述装置700还包括第二行为训练单元792,配置为:获取针对所述多个目标用户采集的行为反馈数据;基于所述行为反馈数据构建多个训练样本,其中各个训练样本中包括对应目标用户的用户特征和样本标签,该样本标签指示该对应目标用户是否对所述目标对象做出所述特定行为;利用所述多个训练样本,训练第二行为预测模型。

综上,采用本说明书实施例披露的行为预测模型的训练装置,在训练针对目标对象的第一行为预测模型的过程中,通过将gnn模型输出的特征向量作为先验知识,可以减少多个样本用户中种子用户存在的覆盖偏差,有效提高模型性能,加快训练速度,并且,因为第一行为预测模型可以实现为轻量级模型,因此,可以大大减少后续行为预测过程中的计算量。

图8示出根据另一个实施例的行为预测模型的训练装置结构图,如图8所示,所述装置800包括:

样本获取单元810,配置为针对目标对象,获取基于多个种子用户形成的多个正样本,其中任意的第一正样本包括,与第一种子用户对应的第一用户特征和正例标签,该正例标签指示出,对应用户是被确定为对所述目标对象做出特定行为的用户;样本权重确定单元820,配置为基于所述多个种子用户各自的用户特征,采用无监督的离群点检测算法,确定所述第一种子用户的离群分数,作为针对行为预测任务的第一训练权重;第一模型训练单元830,配置为利用针对所述行为预测任务的训练样本集,对第一行为预测模型进行第一训练,所述训练样本集包括所述多个正样本以及预先获取的多个负样本;所述第一模型训练单元具体包括以下模块:第一预测模块831,配置为将所述第一用户特征输入第一行为预测模型中,得到对应的行为预测结果;第一损失确定模块832,配置为基于所述行为预测结果和所述正例标签,确定行为预测损失;第一损失加权模块833,配置为利用所述第一训练权重对该行为预测损失进行加权处理,得到加权损失;第一训练模块834,配置为利用所述加权损失,训练所述第一行为预测模型。

在一个实施例中,所述样本权重确定单元820具体配置为:利用所述多个种子用户各自的用户特征,构建孤立森林模型,所述孤立森林模型中包括多棵孤立树,其中每棵孤立树包括用于对种子用户进行划分的多个节点和节点之间的多条边;将所述第一用户特征输入所述孤立森林模型,得到多条路径,其中各条路径为所述第一种子用户在对应的孤立树中从根节点到叶节点经过的边;将所述各条路径中所包含边的数量输入与所述孤立森林模型对应的离群评估函数,得到所述第一种子用户的离群分数。

在一个实施例中,所述样本权重确定单元820具体配置为:基于所述多个种子用户各自的用户特征,利用密度估计算法,确定所述多个种子用户对应的概率密度函数;利用所述概率密度函数,确定所述第一种子用户对应的概率密度;利用预设的减函数对所述概率密度进行运算,得到所述离群分数。

在一个实施例中,所述装置800还包括目标用户确定单元,配置为:获取多个候选用户的多个用户特征,并将该多个用户特征分别输入训练后的第一行为预测模型中,得到对应的多个行为预测结果;基于所述多个行为预测结果,从所述多个候选用户中选出多个目标用户;向所述多个目标用户推送所述目标对象。

在一个具体的实施例中,所述装置800还包括第二模型训练单元840,该第二模型训练单元包括以下模块:反馈数据获取模块841,配置为获取针对所述多个目标用户采集的行为反馈数据;样本构建模块842,配置为基于所述行为反馈数据构建多个训练样本,其中各个训练样本中包括对应目标用户的用户特征和样本标签,该样本标签指示该对应目标用户是否对所述目标对象做出所述特定行为;第二训练模块843,配置为利用所述多个训练样本,训练第二行为预测模型。

在一个更具体的实施例中,所述第二训练模块843具体包括:样本选取子模块8431,配置为从所述多个正样本中确定多个选中正样本;第二训练子模块8432,配置为利用所述多个训练样本以及所述多个选中正样本,训练第二行为预测模型。

进一步地,在一个例子中,所述样本选取子模块8431具体配置为:利用所述多个训练样本,训练第三行为预测模型;将所述多个正样本中包含的多个用户特征,分别输入训练后的第三行为预测模型中,得到多个预测概率;确定所述多个预测概率中排在预定靠前范围内的预测概率,并将对应的正样本归为所述多个选中正样本。

在另一个例子中,所述第二训练子模块8432具体配置为:将所述多个选中正样本中第一选中正样本所包含的用户特征,输入所述第二行为预测模型中,得到第一预测结果,进而结合所述正例标签,确定第一预测损失;采用元学习的方式,确定所述第一选中正样本对应的第一权重,并利用该第一权重对所述第一预测损失进行加权,得到第一加权损失;利用所述第一加权损失,训练所述第二行为预测模型。

在一个更具体的例子中,所述多个训练样本包括第一训练样本,其基于所述行为反馈数据中在预定时刻之后产生的部分而构建;其中,所述第二训练子模块8432进一步配置为通过执行以下内容实现所述采用元学习的方式,确定所述第一选中正样本对应的第一权重:将所述多个选中正样本中第二选中正样本所包含的用户特征,输入所述第二行为预测模型中,得到第二预测结果,进而结合所述正例标签,确定第二预测损失;利用权重变量对所述第二预测结果进行加权,得到加权损失表达式;基于所述加权损失表达式,对所述第二行为预测模型中的模型参数进行更新计算,得到所述模型参数的更新后参数表达式;利用所述更新后参数表达式,确定所述第一训练样本对应的训练损失表达式;利用所述训练损失表达式更新所述权重变量对应的数值,得到所述第一权重。

更进一步地,在一个示例中,所述第二训练子模块进一步配置为通过执行以下内容实现所述利用该第一权重对所述第一预测损失进行加权,得到第一加权损失:利用所述第一权重和0中的较大值对所述第一预测损失进行加权,得到所述第一加权损失。

另一方面,在另一个例子中,所述多个训练样本包括第二训练样本,其基于所述行为反馈数据中在预定时刻之前产生的部分而构建;其中,所述第二训练子模块8432还配置为:利用所述第二训练样本,训练所述第二行为预测模型。

综上,采用本说明书实施例披露的行为预测模型的训练装置,在人群定向的冷启动阶段,利用无监督的离群点检测算法,对上述多个正样本中的各个正样本进行权重分配,从而降低噪标签对第一行为预测模型的性能影响。进一步地,在获得用户反馈数据后,利用用户反馈数据训练第二行为预测模型,实现更加精准的人群重定向,使用户被推荐到符合自身需求的目标对象,从而有效提高用户体验。

如上,根据又一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4或图5或图6所描述的方法。

根据又一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4或图5或图6所描述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。

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