确定业务推送对象的方法和装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及通过计算机确定业务推送对象的方法和装置。
背景技术
随着互联网技术的发展,信息推送的应用越来越广泛。信息推送,是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。信息推送可以涉及新闻、商品、业务等各个方面。以业务推送过程为例,可以是向用户直接推送业务,也可以将业务和能够核销的优惠券等一起推送,还可以先推送能够核销的优惠券等,在用户对优惠券核销过程中推送业务。
实际业务推送中,为了吸引用户,先推送具有吸引力的优惠信息的应用比较广泛。为了保证自身利益,推送优惠信息的业务方往往限量推送优惠名额。这样,获得优惠名额的用户是否将优惠(如优惠券、核销红包等)核销,影响着优惠信息推送的有效性。因此,希望能有改进的方案,通过确定更精准的推送对象,提供更有效的业务推送。
发明内容
本说明书一个或多个实施例描述了确定业务推送对象的方法及装置,用于解决以上提到的一个或多个问题。
根据第一方面,提供了一种为业务推送方确定业务推送对象的方法,所述方法包括:从预先训练的图模型中获取所述业务推送方对应的第一向量,以及多个候选对象分别对应的各个第二向量,其中,所述图模型基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于通过向量描述各个候选对象和各个第一业务方之间的连接关系,所述第一业务方与所述候选对象互为相对业务方,所述多个第一业务方包括所述业务推送方;确定各个第二向量分别与所述业务推送方对应的第一向量的各个相似度,其中,各个相似度用于描述各个相应候选对象与所述业务推送方的关联性;基于各个相似度,从所述多个候选对象中确定出所述业务推送方的业务推送对象。
根据一个实施方式,所述图模型通过以下方法训练:获取所述多个候选对象在预定时间段内业务记录,其中,所述业务记录至少记录有和各个候选对象具有业务关系的各个第一业务方;根据所述业务记录建立各个候选对象与各个第一业务方的连接关系;为各个候选对象和各个第一业务方分别随机确定对应的各个预定维数的初始向量,并基于所述连接关系调整各个预定维数的初始向量,从而训练所述图模型。
在一个进一步的实施例中,所述多个候选对象包括第一候选对象,所述基于所述连接关系调整各个预定维数的初始向量包括:获取所述第一候选对象的当前向量,以及各个第一业务方的当前向量;针对与所述第一候选对象具有业务关系的至少一个第一业务方,基于所述第一候选对象的当前向量及各个第一业务方的当前向量确定所述至少一个第一业务方中的任一第一业务方k被所述第一候选对象选中的条件概率;基于所述条件概率更新所述第一候选对象的当前向量,以及各个第一业务方的当前向量,使得所述条件概率趋于最大化。
在一个进一步的实施例中,所述条件概率为所述第一候选对象的当前向量与第一业务方k的当前向量的点积,与所述第一候选对象的当前向量与各个第一业务方的当前向量的点积之和的比值。
在一个进一步的实施例中,所述条件概率对应的损失函数与所述条件概率负相关,并且与所述第一候选对象的采样负例不被所述第一候选对象选中的条件概率之和负相关,所述第一候选对象的采样负例是从与所述第一候选对象不具有业务关系的第一业务方中按照负例采样概率采样到的多个第一业务方,所述负例采样概率与相应第一业务方具有业务关系的候选对象的个数负相关。
在一个实施例中,基于所述条件概率更新所述第一候选对象的当前向量,以及各个第一业务方的当前向量包括:确定所述损失函数针对所述第一候选对象的当前向量的第一梯度;向所述第一梯度相反的方向调整所述第一候选对象的当前向量。
在另一个进一步的实施例中,基于所述条件概率更新所述第一候选对象的当前向量,以及各个第一业务方的当前向量包括:确定所述损失函数针对第一业务方t的当前向量的第二梯度,其中,第一业务方t是第一业务方i及所述采样负例中的任一个;向所述第二梯度相反的方向调整第一业务方t的当前向量。
在一个进一步的实施例中,各个第二向量分别与所述业务推送方对应的第一向量的各个相似度,通过余弦相似度方式确定。
根据一个可能的设计,所述基于各个相似度,从所述多个候选对象中确定出所述业务推送方的业务推送对象包括以下至少一项:
按照相似度由高到低的顺序,选择排列靠前的预定数量的候选对象,作为所述业务推送方的业务推送对象;
将相似度大于预先设定的相似度阈值的候选对象,确定为与所述业务推送方的业务推送对象;
按照与各个相似度成正比的采样概率,从所述多个候选对象中采样预定数量的候选对象,作为所述业务推送方的业务推送对象;
按照与各个相似度成反比的采样概率,从所述多个候选对象中采样预定数量的候选对象,作为所述业务推送方的业务推送对象。
根据第二方面,提供一种为业务推送方确定业务推送对象的装置,所述装置包括:
获取单元,配置为从预先训练的图模型中获取所述业务推送方对应的第一向量,以及多个候选对象分别对应的各个第二向量,其中,所述图模型基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于通过向量描述各个候选对象和各个第一业务方之间的连接关系,所述第一业务方与所述候选对象互为相对业务方,所述多个第一业务方包括所述业务推送方;
确定单元,配置为确定各个第二向量分别与所述业务推送方对应的第一向量的各个相似度,其中,各个相似度分别用于描述相应候选对象与所述业务推送方的关联性;
决策单元,配置为基于各个相似度,从所述多个候选对象中确定出所述业务推送方的业务推送对象。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的为业务推送方确定业务推送对象的方法和装置,从预先训练的图模型中获取业务推送方对应的第一向量,以及多个候选对象分别对应的各个第二向量,通过各个第二向量与第一向量的相似度,以评估各个相应候选对象与业务推送方的关联性,并基于各个相似度,从多个候选对象中确定出业务推送方的业务推送对象。由于图模型基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于通过向量描述各个候选对象和各个第一业务方之间的连接关系,可以充分挖掘候选对象与第一业务方之间的相似性以及第一业务方间的关系,对于没有业务交互的候选对象和第一业务方也能够挖掘其关联,并且针对候选对象刻画的是中长期的业务偏好,避免某段时间的特殊情况(如促销等)影响,因此,本说明书实施例提供的为业务推送方确定业务推送对象的方法和装置,可以提高业务推送的有效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出本说明书实施例的应用场景示意图;
图2示出根据一个实施例的为业务推送方确定业务推送对象的方法流程图;
图3示出根据一个实施例的为业务推送方确定业务推送对象的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。为了便于说明,结合图1示出的本说明书实施例的一个具体适用场景进行说明。图1示出的是作为第一业务方的商户,通过网络平台向用户推送优惠信息的具体场景。其中,网络平台的所有用户,或者某一类别的所有用户(如所有可以进行消费的用户)都可以作为候选对象。计算平台可以是用于根据预先训练的图模型确定向哪些用户(推动对象)推送优惠信息的平台。计算平台可以是诸如计算机、平板电脑、智能手机之类的硬件设备,也可以是运行于硬件设备的应用,本实施场景中对此不作限定。
其中,图1示出的图模型中,用户和商户是相对业务方,用户通常是可以在商户中进行消费的消费者。在一些实施例中,如果商户作为普通消费者在其他商户进行消费,可以将相应商户既作为消费者,又作为商户。当商户作为普通消费者在其他商户消费时,和其他商户可以是相对业务方。
在图1示出的实施场景中,图模型可以基于各个用户与多个商户之间的历史业务记录生成。这里的各个用户就是各个待选用户。例如,对于各个用户,每进行一次消费,就产生一条业务记录。图模型中包含了所有待选用户产生过消费记录的各个商户。若用户u在商户i进行过一笔消费,则u和i之间存在一条边,那么用户和商户之间的关系就构成了一个二步图。如果基于用户和商户之间的连接关系,将用户和商户都映射到预定维数的向量空间,则用户对应的第二向量和商户对应的第一向量,分别可以表示出用户/商户在向量的各个维度上的特点。用户对应的第二向量和商户对应的第一向量可以在图模型的训练过程中确定。
下面以商户作为第一业务方,作为消费者的用户作为候选对象,描述根据一个实施例的图模型的训练过程。
首先,为了便于对训练过程进行描述,可以预先将收集到的用户和商户进行编码。假设历史记录中共有n家商户,m个用户,则商户编码从1到n,用户编码从n+1到n+m,可以将数据整理成如下形式:
u(n+1),i0,i1,i2,i3,i4;
u(n+2),i2,i5,i6;
…
u(n+m),i6,i90,i107,in;
其中,uk表示用户,k表示用户编码;ij表示商户,j表示商户编码。编码后的商户和用户作为训练集。从图1可以看出,一个用户可以和多个商户连接,一个商户可以连接有多个用户。商户包括了和各个用户中的任一个具有连接关系的所有商户。
然后,对每个商户和用户,分别给定一个随机的a维的初始化向量。通过当前向量表示商户和用户之间的关系,并按照用户和商户之间的实际连接关系,在初始化向量基础上迭代修改,直至满足结束条件,确定出最终的用户和商户分别对应的向量。
具体地,假设第j个商户的向量用Vj表示,第k个用户的向量用Vk表示。
针对每个用户,遍历所有商户来修改向量。对于当前商户i,用户u与商户i的条件概率为:
其中,Vi和Vu分别表示商户i和用户u的当前向量,n是所有商户数量(包括用户u消费过的和没有消费过的)。
对于与用户u有连接关系的商户i,训练图模型的目标是向着对应的条件概率p(i|u)最大化的方向调整用户和商户的当前向量。例如,将损失函数定义为:
其中C为用户u有消费行为的商户数。这样,如果要使损失函数的值趋于减小,那么,求和运算中的每一项都尽可能趋于增加。由商户i和用户u连接的条件概率可知,此时,需要调整的向量可能涉及所有商户的向量。
在商户数量较大情况下,每次更新过多的商户向量,导致计算量较大,会影响图模型的训练效率。为了解决这个问题,根据一个可能的设计,针对一个用户u,还可以对商户进行负采样,来构造损失函数。负采样也就是负例采样。对一个用户u而言,负例可以是用户u没有消费过的商户。负例采样时每个商户被采样的概率可以和商户在训练集中出现的频次,或者说是连接的用户数量成反比。为了限定负例采样数量,还可以预先设定有采样参数,每个商户被采样的概率还可以与预先设定的采样参数成正比。其中的采样参数例如是每N(如1000)个商户中被采集的个数(如3个)。采样参数也可以是采样率,如3例每1000个可采样对象(这里是商户)。在一个实施例中,商户i被采样的概率可以为:
其中sampling为采样参数,freq(i)表示商户在训练集中出现的频次,例如,freq(i)是连接到该商户i的用户数量(在训练集中出现的次数)。
假设用户u和商户i有连接关系(历史产生业务关系),如果定义损失函数与和用户u具有连接关系的商户i对应的条件概率负相关、与用户u不具有连接关系的商户对应的不连接的条件概率负相关,则使得损失函数的值趋于减小时,可以仅更新部分商户的向量,即当前商户的向量,以及被采样为负例的商户的向量。
为了更明确地描述相关原理,假设损失函数被定义为:
其中,Wneg表示用户u对应的负例。确定损失函数针对用户u的当前向量的梯度,例如:
其中,iP表示用户u在训练集中连接的商户,可以理解,iP包括当前商户i,Wneg表示作为负例的商户,t表示属于ip和Wneg的并集的任一商户,yt相当于标签,若用户u和商户t有连接关系(具有历史业务关系),则yt=1,否则yt=0。
向损失函数的梯度相反的方向调整用户u的向量,例如:
当商户为某一商户t时,确定损失函数针对商户t的当前向量的梯度,例如:
向损失函数的梯度相反的方向调整当前商户i,以及作为采样负例Wneg的商户的向量:
其中η表示预先定义的学习率;分别为用户u和商户i的当前向量;为更新后的向量。这样,在一次迭代更新过程中,更新的商户向量对应的商户是用户u消费过的其中一个商户i,以及作为负例的商户,而不需要每次更新所有商户的当前向量,或者所有与用户u有连接的商户的当前向量。
将更新后的用户和商户向量作为相应的用户和商户的当前向量,迭代以上步骤,直至损失函数loss2收敛,也就是说梯度不再下降或下降不明显。在一次实验对应的实施例中,迭代次数为1-20次。
如此,通过对各个用户u分别执行以上迭代过程,可以训练出各个用户u及商户i的向量。这些向量可以描绘出图模型中相应的用户或商户的特点。为了区分,可以将用户对应的向量称为第二向量,将商户对应的向量称为第一向量。其中,用户可以作为商户的业务推送对象。
下面具体描述为业务推送方确定业务推送对象的过程。
图2示出根据一个实施例的为业务推送方确定业务推送对象的方法流程图。其中,图2示出的方法的执行主体可以是具有一定数据处理能力的终端设备,例如计算机、智能手机、平板电脑等等。该终端设备例如是电商平台的商户客户端,或者服务端。
如图2所示,为业务推送方确定业务推送对象的方法包括以下步骤:步骤201,从预先训练的图模型中获取业务推送方的第一向量以及各个候选对象分别对应的各个第二向量,其中,图模型基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于描述各个候选对象和各个第一业务方之间的连接关系,多个第一业务方包括上述业务推送方,第一业务方与候选对象互为相对业务方;步骤202,确定各个第二向量分别与第一向量的各个相似度,各个相似度用于描述相应候选对象与业务推送方的关联性;步骤203,将与业务推送方相关联的候选对象确定为上述业务推送方的业务推送对象。
首先,在步骤201中,从预先训练的图模型中获取业务推送方的第一向量以及各个候选对象分别对应的各个第二向量。其中,图模型可以基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于描述各个候选对象和各个第一业务方之间的连接关系,例如前述方法生成的图模型。图模型中的多个第一业务方可以包括上述业务推送方,图模型中的各个第一业务方与各个候选对象互为相对业务方。在本步骤中,可以直接从训练好的图模型中获取业务推送方(如前文中的商户i)对应的第一向量,以及每个候选对象(如前文中的任一用户)分别对应的第二向量,在此不再赘述。
接着,在步骤202,根据各个第二向量分别与第一向量的各个相似度,确定各个候选对象是否与业务推送方的关联性。可以理解,图模型中的向量相当于是将第一业务方或候选对象分别映射到预定特征维度上,向量中每个元素的值是对应特征维度上的值。因此,第二向量与第一向量的相似度可以反映出相应候选对象与业务推送方的关联性。
第二向量与第一向量的向量相似度可以通过诸如Jaccard系数、余弦相似度之类的方法确定,在此对具体相似度方法不做限定。以余弦相似度为例,可以通过向量空间中两个向量夹角的余弦值作为衡量两个向量间差异的大小。例如前述例子中,用户u和商户i分别对应的第二向量Vu和第一向量Vi之间的夹角余弦值(相似度)可以为:
其中,上述余弦值越接近1,就表明向量间的夹角越接近0度,两个向量越相似。反之,上述余弦值越接近0,两个向量越接近90度,两个向量相差越大。
如此,针对每个候选对象,可以通过其对应的第二向量与业务推送方对应的第一向量,确定出它们之间的相似度。该相似度也代表了候选对象与业务推送方的关联程度。在一个具体实施例中,可以将各个相似度按照由高到低的顺序排列,选择排列靠前的预定数量的相似度对应的候选对象,作为与业务推送方相关联的候选对象。在另一个具体实施例中,还可以将各个相似度中,大于预先设定的相似度阈值的相似度对应的候选对象,作为与业务推送方相关联的候选对象。
然后,通过步骤203,基于各个候选对象与业务推送方的关联性,确定为上述业务推送方的业务推送对象。可以理解,候选对象与业务推送方具有关联性,意味着候选对象曾与业务推送方相似的第一业务方产生过关联。在本步骤中,可以根据具体业务场景,从候选对象中确定出业务推送方的业务推送对象。
在一个实施例中,业务推送方所推送的业务属于重复率较高的业务,则候选对象与业务推送方相关联的情况下,候选对象接受业务推送方推送的业务的可能性比较大。例如在前述的业务推送方为的商户,候选对象为作为消费者的用户的场景下,如果商户推送的业务是生活用品(如服装、面巾纸等)之类的优惠业务,那么候选对象与业务推送方相关联,意味着用户在相应商户消费的概率较大。此时,可以将步骤203中确定出的与业务推送方具有关联性的候选对象确定为业务推送方的业务推送对象。
在一个可选的实现方式中,还可以按照一定的概率从所有待选用户中为业务推送方确定业务推送对象,其中,步骤203中确定出的与业务推送方具有关联性的候选对象具有较大的被选中概率,而其余候选对象具有较小的被选中概率。
在另一个可选的实现方式中,还可以按照被选中概率与步骤203中的相似度正相关的方式,直接从所有候选对象中选择出部分候选对象,作为业务推送方的业务推送对象。
在另一个实施例中,业务推送方推送的是重复概率较低的业务,则候选对象与业务推送方相关联的情况下,候选对象接受业务推送方推送的业务的可能性反而比较小。例如在前述的业务推送方为商户,候选对象为作为消费者的用户的场景下,如果商户推送的是诸如保险之类的复购率较小的业务,那么候选对象与业务推送方的关联度越大,意味着用户在相应商户消费的概率越小。此时,可以从与业务推送方的关联性较小的候选对象中,确定业务推送方的业务推送对象。例如,将对应的第二向量与第一向量的相似度最小的预定数量的候选对象确定为业务推送方的业务推送对象。
在一个可选的实现方式中,还可以按照被选中概率与步骤203中的相似度负相关的方式,直接从所有候选对象中选择出部分候选对象,作为业务推送方的业务推送对象。
回顾以上过程,预先基于各个候选对象与多个第一业务方之间的历史业务记录训练有图模型,由于在图模型中通过向量描述各个候选对象和各个第一业务方之间的连接关系,在为图模型中涉及的作为业务推送方的某个第一业务方确定业务推送对象时,可以直接从图模型中获取业务推送方的第一向量和各个候选对象的第二向量,对比各个第二向量与第一向量的相似度,确定各个候选对象分别与业务推送方的关联性,从而根据相应关联性为业务推送方选择业务推送对象。该方法可以充分挖掘候选对象和对个第一业务方之间的相似性,以及第一业务方相互间的关系,同时,通过图模型刻画出候选对象在预定时间段内的消费偏好,避免特殊时间节点的干扰,并且在待选用户与业务推送方没有业务交集的情况下,也可以计算两者的相似度,从而可以实现更有效的业务推送。
根据另一方面的实施例,还提供一种为业务推送方确定业务推送对象的装置。如图3所示,装置300包括:获取单元31,配置为从预先训练的图模型中获取业务推送方对应的第一向量,以及多个候选对象分别对应的各个第二向量,其中,图模型基于各个候选对象与多个第一业务方之间的历史业务记录生成,用于通过向量描述各个候选对象和各个第一业务方之间的连接关系,第一业务方与所述候选对象互为相对业务方,多个第一业务方包括业务推送方;确定单元32,配置为确定各个第二向量分别与业务推送方对应的第一向量的各个相似度,以得到各个相应候选对象与业务推送方的关联性;决策单元33,配置为基于各个相似度,从多个候选对象中确定出业务推送方的业务推送对象。
根据一个可能的设计,上述图模型可以由训练单元(未示出)通过以下方法训练:
获取多个候选对象在预定时间段内业务记录,其中,业务记录至少记录有和各个候选对象具有业务关系的各个第一业务方;
根据业务记录建立各个候选对象与各个第一业务方的连接关系;
为各个候选对象和各个第一业务方分别随机确定对应的各个预定维数的初始向量,并基于连接关系调整各个预定维数的初始向量,从而训练图模型。
其中,上述训练单元可以是装置300的一部分,也可以是其他具有运算能力的装置,在此不作限定。
在一个实施例中,多个候选对象包括第一候选对象,上述训练单元还配置为:
获取第一候选对象的当前向量,以及与第一代选对象具有连接关系的第一业务方i的当前向量;
基于第一候选对象的当前向量及第一业务方i的当前向量确定第一业务方i被所述第一候选对象选中的条件概率;
基于上述条件概率更新第一候选对象的当前向量,以及各个第一业务方的当前向量,使得第一业务方i对应的条件概率趋于最大化。
可选地,上述条件概率为第一候选对象的当前向量与第一业务方i的当前向量的点积,与第一候选对象的当前向量与各个第一业务方的当前向量的点积之和的比值。
根据一个实施方式,上述条件概率对应的损失函数可以与条件概率负相关,并且与各个针对第一候选对象的采样负例不被第一候选对象选中的条件概率之和负相关,第一候选对象的采样负例是从与第一候选对象不具有业务关系的第一业务方中按照负例采样概率采样到的多个第一业务方,负例采样概率与相应第一业务方具有业务关系的候选对象的个数负相关。
在一个实施例中,训练单元还可以配置为通过以下方式基于条件概率更新第一候选对象的当前向量:
确定损失函数针对第一候选对象的当前向量的第一梯度;
向第一梯度相反的方向调整第一候选对象的当前向量。
在另一个实施例中,训练单元可以配置为通过以下方式基于所述条件概率更新各个第一业务方的当前向量:
确定损失函数针对第一业务方t的当前向量的第二梯度,其中,第一业务方t是第一业务方i及采样负例中的任一个;
向第二梯度相反的方向调整第一业务方t的当前向量。
在一个可能的设计中,确定单元32还配置为:通过余弦相似度方式确定各个第二向量分别与业务推送方对应的第一向量的各个相似度。
在一个可能的设计中,决策单元32可以配置为,进行以下至少一项决策:
按照相似度由高到低的顺序,选择排列靠前的预定数量的候选对象,作为业务推送方的业务推送对象;
将相似度大于预先设定的相似度阈值的候选对象,确定为与业务推送方的业务推送对象;
按照与各个相似度成正比的采样概率,从多个候选对象中采样预定数量的候选对象,作为业务推送方的业务推送对象;
按照与各个相似度成反比的采样概率,从多个候选对象中采样预定数量的候选对象,作为业务推送方的业务推送对象。
值得说明的是,图3所示的装置300是与图2示出的方法实施例相对应的装置实施例,图2示出的方法实施例中的相应描述同样适用于装置300,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。