内容召回方法、计算设备和计算机可读存储介质

文档序号:1937703 发布日期:2021-12-07 浏览:21次 >En<

阅读说明:本技术 内容召回方法、计算设备和计算机可读存储介质 (Content recall method, computing device, and computer-readable storage medium ) 是由 黄清纬 彭飞 唐文斌 于 2021-09-14 设计创作,主要内容包括:本公开提供了一种内容召回方法、计算设备和计算机可读存储介质。该方法包括:基于社交平台的流式日志确定一个用户的训练样本;基于所述第一训练样本对第一神经网络模型进行训练以产生第一训练目标向量;基于所述第二训练样本对第二神经网络模型进行训练以产生第二训练目标向量;基于所述第一训练目标向量和所述第二训练目标向量确定所述训练样本的训练输出,以对所述第一神经网络模型和所述第二神经网络模型的权重函数分别进行更新;以及基于训练后的第一神经网络模型和第二神经网络模型分别计算多个候选内容的得分以从所述多个候选内容中确定召回结果。(The present disclosure provides a content recall method, a computing device, and a computer-readable storage medium. The method comprises the following steps: determining a training sample of a user based on a streaming log of a social platform; training a first neural network model based on the first training samples to generate a first training target vector; training a second neural network model based on the second training samples to produce a second training target vector; determining training outputs of the training samples based on the first and second training target vectors to update weight functions of the first and second neural network models, respectively; and calculating scores of a plurality of candidate contents based on the trained first neural network model and the trained second neural network model respectively to determine a recall result from the plurality of candidate contents.)

内容召回方法、计算设备和计算机可读存储介质

技术领域

本发明概括而言涉及机器学习领域,更具体地,涉及一种内容召回方法、计算设备和计算机可读存储介质。

背景技术

随着各种社交平台的不断发展,越来越多的用户通过这些社交平台来获取各种资讯。通常情况下,当用户登录社交平台时,社交平台的服务器向用户推荐一些内容,并展示在用户终端上。然而,社交平台上时时刻刻都在产生海量的内容,而用户终端可展示的内容数量有限,并且如果头部的若干项内容不能引起用户的兴趣,用户很可能转向其他版块或者其他平台。因此,如何将与用户兴趣最匹配的内容显示在有限的头部位置是提高内容推荐效果的一个重要手段。

目前常见到的信息流推荐场景,如抖音、快手等信息流,淘宝、京东等电商产品,都具有中心化的特点,即,将少数候选内容曝光给大部分用户,从而用户行为很容易在单个候选物品上累积。在这种情况下,使用传统的个性化方法——协同过滤更容易实现聚类。

为了解决这一问题,在协同过滤的基础上,进一步引入了用户行为序列来修正用户兴趣分布,将通过协同过滤获得的用户特征向量与用户行为序列的特征向量之和(或者平均,或者通过神经网络映射)交叉,从而获得更强的个性化学习能力。

然而,在一些高流量的社交平台中,很短的时间间隔内就会产生海量新内容,而每条新内容的生命周期却非常短暂,例如每天可能会产生并发布至少数百万条新内容,每条内容的生命周期却通常不超过两天。在这种情况下,用户行为被均摊在了大量候选内容上,使得单个候选内容很难累积到足够的数据,传统方法协同过滤也更难发生,无法通过协同过滤获取有效的特征向量,从而学习用户兴趣的困难大大增加。例如,本发明的发明人通过进行模拟实验,将传统协同过滤结合用户行为序列校正进行内容排序和推荐,发现这种方式仅能学习到微弱的个性化,完全无法实际提高推荐效果。

发明内容

针对上述问题,本发明提供了一种内容召回方案,通过将内容稠密向量和内容稀疏向量进行拼接并通过神经网络模型进行训练来产生用户的兴趣特征向量,并且利用训练后的神经网络模型对候选内容进行打分以从候选内容中确定召回结果。此外,还设计了独特的存储结构来对兴趣特征向量进行存储和查找,并自动删除过期的兴趣特征向量。通过这些方式,本发明的方案解决了去中心化场景下大流量社交平台上在召回阶段学习用户兴趣困难的问题,能够为用户提供更为准确的内容推荐。

根据本发明的一个方面,提供了一种内容召回方法。该方法包括:基于社交平台的流式日志确定一个用户的训练样本,所述流式日志记录有所述用户对所述社交平台的多个内容的用户行为,所述训练样本包括第一训练样本和第二训练样本,所述第一训练样本包括第一用户稠密向量和第一用户行为序列向量,所述第二训练样本包括第一内容稠密向量和第一内容稀疏向量;基于所述第一训练样本对第一神经网络模型进行训练以产生第一训练目标向量,所述第一训练目标向量包括第二用户稠密向量和第二用户行为序列向量的索引;基于所述第二训练样本对第二神经网络模型进行训练以产生第二训练目标向量,所述第二训练目标向量包括作为兴趣特征向量的第二内容稠密向量和第二内容稀疏向量并且所述第二神经网络模型与所述第一神经网络模型相同;基于所述第一训练目标向量和所述第二训练目标向量确定所述训练样本的训练输出,以对所述第一神经网络模型和所述第二神经网络模型的权重函数分别进行更新;以及基于训练后的第一神经网络模型和第二神经网络模型分别计算多个候选内容的得分以从所述多个候选内容中确定召回结果。

根据本发明的另一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。

根据本发明的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。

在一些实施例中,其中基于社交平台的流式日志确定一个用户的训练样本包括:获取所述社交平台的流式日志;从所述流式日志中提取所述用户的日志特征集合,所述日志特征集合包括所述用户的用户特征集合和所述用户行为所针对的多个内容的内容特征集合;基于所述用户特征集合确定所述第一用户稠密向量;基于所述内容特征集合确定所述第一内容稠密向量;随机确定所述第一内容稀疏向量;获取用户行为序列,并且基于每个用户行为所针对的内容的第一内容稠密向量确定所述第一用户行为序列向量;将所述第一用户稠密向量和所述第一用户行为序列向量拼接为所述第一训练样本;以及将所述第一内容稠密向量和所述第一内容稀疏向量拼接为所述第二训练样本。

在一些实施例中,其中基于所述第一训练样本对第一神经网络模型进行训练以产生第一训练目标向量包括:将所述第一训练样本输入所述第一神经网络模型的第一稠密化层,以得到所述第一训练目标向量。

在一些实施例中,其中基于所述第二训练样本对第二神经网络模型进行训练以产生第二训练目标向量包括:将所述第二训练样本输入所述第二神经网络模型的第二稠密化层,以得到所述第二训练目标向量。

在一些实施例中,其中基于所述第一训练目标向量和所述第二训练目标向量确定所述训练样本的训练输出包括:将所述第一训练目标向量和所述第二训练目标向量进行点积运算以确定所述训练样本的训练输出。

在一些实施例中,其中基于所述训练输出对所述第一神经网络模型和所述第二神经网络模型的权重函数分别进行更新包括:利用激活函数确定所述训练输出的得分;基于所述训练输出的得分、所述训练样本的样本标签和所述第一神经网络模型和所述第二神经网络模型的损失函数确定所述训练输出在所述第一神经网络模型和所述第二神经网络模型的最后一层的梯度;以及基于所述训练输出在所述第一神经网络模型和所述第二神经网络模型的最后一层的梯度对所述第一神经网络模型和所述第二神经网络模型的每一层的权重函数进行更新。

在一些实施例中,其中基于训练后的第一神经网络模型和第二神经网络模型分别计算多个候选内容的得分以从所述多个候选内容中确定召回结果包括:对于所述多个候选内容中的每个候选内容,利用训练后的第一神经网络模型和第二神经网络模型的激活函数确定所述候选内容的得分;以及基于所述多个候选内容中的每个候选内容的得分从所述多个候选内容中确定召回结果。

在一些实施例中,该方法还包括:将所述第二内容稠密向量和第二内容稀疏向量作为所述用户的兴趣特征向量放入兴趣特征向量池,其中所述兴趣特征向量池包括一个先进先出队列和一个闭散列哈希表,所述先进先出队列包括多个内容ID的列表,所述闭散列哈希表包括多个条目,每个条目包括作为键字段的内容ID和作为值字段的内容。

在一些实施例中,其中将所述第二内容稠密向量和第二内容稀疏向量作为所述用户的兴趣特征向量放入兴趣特征向量池包括:确定所述先进先出队列是否已满;如果所述先进先出队列已满,删除所述先进先出队列中的第一个内容ID,并且从所述闭散列哈希表中删除与所述第一个内容ID对应的条目;将所述第二内容稠密向量和第二内容稀疏向量对应的内容ID添加在所述先进先出队列的末尾并且将所述第二内容稠密向量和第二内容稀疏向量对应的内容ID和内容添加到所述闭散列哈希表;以及如果所述先进先出队列未满,直接将所述第二内容稠密向量和第二内容稀疏向量对应的内容ID添加在所述先进先出队列的末尾并且将所述第二内容稠密向量和第二内容稀疏向量对应的内容ID和内容添加到所述闭散列哈希表。

附图说明

通过参考下列附图所给出的本发明的

具体实施方式

的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。

图1示出了用于实现根据本发明的实施例的内容召回方法的系统的示意图。

图2示出了根据本发明的一些实施例的内容召回方法的流程图。

图3示出了根据本发明实施例的用于确定用户的训练样本的步骤的流程图。

图4示出了根据本发明实施例的第一神经网络模型的结构示意图。

图5示出了根据本发明实施例的第二神经网络模型的结构示意图。

图6示出了根据本发明实施例的对第一神经网络模型和第二神经网络模型的权重函数进行更新的步骤的流程图。

图7示出了根据本发明一些实施例的用于从候选内容中确定召回结果的步骤的流程图。

图8示出了根据本发明的实施例的将兴趣特征向量放入兴趣特征向量池中的步骤的流程图。

图9示出了适合实现本发明的实施例的计算设备的结构方框图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。

在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。

除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。

在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。

此外,说明书和权利要求中所用的第一、第二等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等。

图1示出了用于实现根据本发明的实施例的内容召回方法的系统1的示意图。如图1中所示,系统1包括用户终端10、计算设备20、服务器30和网络40。用户终端10、计算设备20和服务器30可以通过网络40进行数据交互。这里,每个用户终端10可以是终端用户的移动或固定终端,如手机、平板电脑、台式机等。用户终端10例如可以通过其上安装的社交平台应用程序与社交平台的服务器30通信,以向服务器30发送信息和/或从服务器30接收信息。计算设备20基于来自用户终端10和/或服务器30的数据执行相应的操作。计算设备20可以包括至少一个处理器210和与该至少一个处理器210耦合的至少一个存储器220,该存储器220中存储有可由该至少一个处理器210执行的指令230,该指令230在被该至少一个处理器210执行时执行如下所述的方法100的至少一部分。注意,在本文中,计算设备20可以是服务器30的一部分或者可以独立于服务器30。计算设备20或服务器30的具体结构例如可以如下结合图9所述。

图2示出了根据本发明的一些实施例的内容召回方法100的流程图。方法100例如可以由图1中所示的系统1中的计算设备20或服务器30执行。以下以在计算设备20中执行为例,结合图1至图9对方法100进行描述。

如图2中所示,方法100包括步骤110,其中计算设备20可以基于社交平台的流式日志确定一个用户的训练样本。如前所述,该社交平台可以是具有高流量和短生命周期内容的社交平台,因此,该流式日志可以是该社交平台的分钟级流式日志,该分钟级流式日志中记录有多个用户对大量分散的内容的用户行为。对于特定用户来说,该流式日志中记录有该用户对社交平台上的多个内容的用户行为。这里,内容可以是指社交平台的用户所上传的图片、视频、文本或其组合,也可以称为“帖子”。用户行为例如可以包括点击、点赞、评论、收藏、转发等用户操作中的至少一种。此外,用户行为也可以包括不对内容执行任何用户操作。

在本发明的方案中,每个训练样本可以包括第一训练样本和第二训练样本,其中第一训练样本包括第一用户稠密向量和第一用户行为序列向量,第二训练样本包括第一内容稠密向量和第一内容稀疏向量,并且使用第一训练样本和第二训练样本对不同的模型进行训练,如下所详述。

图3示出了根据本发明实施例的用于确定用户的训练样本的步骤110的流程图。

如图3中所示,步骤110可以包括子步骤111,其中计算设备20可以获取该社交平台的流式日志。该流式日志例如可以存储在图1所示的系统1的服务器30或与服务器30相关联的数据库(图中未示出)中。

接下来,在子步骤112,计算设备20可以从子步骤111中获取的流式日志中提取该用户的日志特征集合。这里,用户的日志特征集合包括该用户的用户特征集合和该用户的用户行为所针对的多个内容的内容特征集合。用户特征集合可以包括该用户的属性信息,例如年龄、性别、所属城市等。内容特征集合可以包括每个内容的属性信息,例如该内容所包含的图片、视频、文字、字数、语言、作者等。

在子步骤113,计算设备20可以基于用户特征集合确定用户稠密向量(为了与训练后的用户稠密向量区分,这里也称为第一用户稠密向量)。用户稠密向量例如可以通过对用户特征集合中的用户特征进行拼接和稠密向量化(dense)操作来得到,用于指示出现概率较高的用户特征(如用户姓名、性别、所属城市等)。其中,dense操作是指利用Tensorflow中的dense函数获得输入向量的全连接向量的操作。

在一种实施例中,用户稠密向量可以通过如下的公式(1)确定:

eu=dense(concat({ef|f∈Fu})) (1)

其中,eu表示用户稠密向量,ef表示用户特征向量,Fu表示用户特征集合,concat()函数用于将多个输入数据(即用户特征集合中的用户特征)进行拼接,dense()函数是用于调整输入数据x(即concat({ef|f∈Fu}))维度的全连接向量。

其中,在本文中,dense()函数可以一般性地表示为:

dense(x)=W·x+b (2)

其中,W表示dense()函数的权重,b表示dense()函数的偏置,W和b是可训练参数。

在子步骤114,计算设备20可以基于内容特征集合确定内容稠密向量(为了与训练后的内容稠密向量区分,这里也称为第一内容稠密向量)。

与用户稠密向量类似,内容稠密向量也可以通过对内容特征集合中的内容特征进行拼接和稠密向量化(dense)操作来得到,用于指示出现概率较高的内容特征(如内容长度、内容点赞数、作者性别等)。通常,将在一个训练批次(Batch)内具有相同特征值的概率较高的内容特征称为内容稠密特征。例如,在一个训练批次内,作者性别为女性的内容特征在整个训练批次内出现概率非常高,因此可以将该内容特征作为一个内容稠密特征。

在一种实施例中,内容稠密向量可以通过如下的公式(3)确定:

ep=dense(concat({eg|g∈Fp})) (3)

其中,ep表示内容稠密向量,eg表示内容特征,Fp表示内容特征集合,concat()函数用于将多个输入数据(即内容特征集合中的内容特征)进行拼接,dense()函数是用于调整输入数据x(即concat({eg|g∈Fp}))维度的全连接向量。

在子步骤115,计算设备20可以随机确定内容稀疏向量(为了与训练后的内容稀疏向量区分,这里也称为第一内容稀疏向量)。

与内容稠密向量相反,内容稀疏向量es用于指示出现概率较低的内容特征(如内容ID、内容发布城市、内容分类标签(tag)等)。通常,将在一个训练批次(Batch)内具有相同特征值的概率较低的内容特征称为内容稀疏特征。例如,在一个训练批次内,同一内容ID在整个训练批次内出现概率比较低,因此可以将该内容特征作为一个内容稀疏特征。

在子步骤116,计算设备20可以获取用户行为序列,并且基于每个用户行为所针对的内容的第一内容稠密向量确定用户行为序列向量(为了与训练后的用户行为序列向量区分,这里也称为第一用户行为序列向量)。

在一种实施例中,用户行为序列向量可以通过如下的公式(4)确定:

其中,er表示用户行为序列向量,Su表示用户对其执行了用户行为的内容集合,ei表示用户对其执行了用户行为的内容的内容稠密向量(即上述第一内容稠密向量ep)。

在子步骤117,计算设备20可以将第一用户稠密向量eu和第一用户行为序列向量er拼接为第一训练样本xin1

这里,可以利用如上所述的concat()函数来对第一用户稠密向量eu和第一用户行为序列向量er进行拼接,即

xin1=concat(eu,er) (5)

类似地,在子步骤118,计算设备20可以将第一内容稠密向量ep和第一内容稀疏向量es拼接为第二训练样本xin2

这里,可以利用如上所述的concat()函数来对第一内容稠密向量ep和第一内容稀疏向量es进行拼接,即

xin2=concat(ep,es) (6)

接下来,继续图2,在步骤120,计算设备20可以基于第一训练样本xin1对第一神经网络模型进行训练以产生第一训练目标向量。

图4示出了根据本发明实施例的第一神经网络模型400的结构示意图。如图4中所示,第一神经网络模型400可以包括输入层410、隐藏层420和输出层430。

在模型训练阶段,第一神经网络模型400可以输入上述构建的多个第一训练样本xin1(包括第一用户稠密向量eu和第一用户行为序列向量er)。

在模型使用阶段,第一神经网络模型400可以输入针对多个候选内容构建的与第一训练样本xin1类似的第一输入向量,并且输出每个第一输入向量的第一输出目标向量。以下主要以模型训练阶段为例对第一神经网络模型400进行描述。

在一种实施例中,在步骤120中,计算设备20可以通过输入层410将第一训练样本xin1输入第一神经网络模型400的隐藏层420,以得到第一训练目标向量。

在一种实施例中,隐藏层420可以包含稠密化层,第一训练目标向量可以通过如下的公式(7)确定:

xout1=dense(xin1) (7)

在其他实施例中,第一训练样本xin1以批量形式(即前面所述的训练批次Batch)输入,因此第一神经网络模型400的输入Xin1可以表示为一个B*N的矩阵:

Xin1={xin1} (8)

其中,B是批量输入的第一训练样本xin1的数量,N是第一训练样本xin1的长度(即第一用户稠密向量eu和第一用户行为序列向量er的长度之和)。

在这种情况下,第一训练目标向量可以表示为:

Xout1=dense(Xin1) (9)

在一种实例中,隐藏层420可以是一个(N+1)*32的矩阵(除了第一训练样本xin1的长度N之外还包括一个用于偏置的维度),输入Xin1与隐藏层420做矩阵乘法后,得到一个B*32的矩阵Xout1

至此,对第一神经网络模型400进行了一次训练,从模型角度来看,相当于

Xout1=W1*Xin1+b1 (10)

其中,W1是第一神经网络模型400的权重函数,b1是第一神经网络模型400的偏置函数,对第一神经网络模型400进行训练的目的是使得其权重函数W1和偏置函数b1不断更新至收敛值。这里,权重函数W1的初始值可以任意设置,或者,可以根据经验设置。

在步骤130,计算设备20可以基于第二训练样本xin2对第二神经网络模型进行训练以产生第二训练目标向量。

图5示出了根据本发明实施例的第二神经网络模型500的结构示意图。第二神经网络模型500与图4所示的第一神经网络模型400基本上相同,也可以包括输入层510、隐藏层520和输出层530。

与第一神经网络模型400类似,在模型训练阶段,第二神经网络模型500可以输入上述构建的多个第二训练样本xin2(包括第一内容稠密向量ep和第一内容稀疏向量es),并且输出每个第二训练样本xin2对应的第二训练目标向量。

在模型使用阶段,第二神经网络模型500可以输入针对多个候选内容构建的与第二训练样本xin2类似的第二输入向量,并且输出每个第二输入向量的第二输出目标向量。以下主要以模型训练阶段为例对第二神经网络模型500进行描述。

在一种实施例中,在步骤130中,计算设备20可以通过输入层510将第二训练样本xin2输入第二神经网络模型500的隐藏层520,以得到第二训练目标向量。

在一种实施例中,隐藏层520可以包含稠密化层,第二训练目标向量可以通过如下的公式(11)确定:

Xout2=dense(Xin2) (11)

在其他实施例中,第二训练样本xin2以批量形式(即前面所述的训练批次Batch)输入,因此第二神经网络模型500的输入Xin2可以表示为一个B*N的矩阵:

Xin2={xin2} (12)

其中,B是批量输入的第二训练样本xin2的数量,N是第二训练样本xin2的长度(即第一内容稠密向量ep和第一内容稀疏向量es的长度之和),即第二训练样本xin2和第一训练样本xin1的长度相同。

在这种情况下,第二训练目标向量可以表示为:

Xout2=dense(Xin2) (13)

隐藏层520与隐藏层420的大小相同。因此,在隐藏层420是一个(N+1)*32的矩阵的情况下,隐藏层520也应当是一个(N+1)*32的矩阵,输入Xin2与隐藏层520做矩阵乘法后,得到一个B*32的矩阵Xout2

至此,对第二神经网络模型500进行了一次训练,从模型角度来看,相当于

Xout2=W2*Xin2+b2 (14)

其中,W2是第二神经网络模型500的权重函数,b2是第二神经网络模型500的偏置函数,对第二神经网络模型500进行训练的目的是使得其权重函数W2和偏置函数b2不断更新至收敛值。这里,权重函数W2的初始值可以任意设置,或者,可以根据经验设置。

在步骤140,计算设备20可以基于第一训练目标向量xout1/Xout1和第二训练目标向量xout2/Xout2来确定训练样本的训练输出,以对第一神经网络模型400和第二神经网络模型500的权重函数W1和W2进行更新。

在一种实施例中,可以对第一训练目标向量xout1/Xout1和第二训练目标向量xout2/Xout2进行点积运算来确定训练样本的训练输出。例如,训练输出xout可以表示为:

xout=xout1·xout2 (15)

两个向量进行点积运算的结果是一个数值,因此可以用训练输出xout来表示该训练样本的得分。

类似地,在批量训练的情况下,对第一训练目标向量Xout1和第二训练目标向量Xout2的每个行向量进行点积运算,其结果是一个B*1的向量,该向量中的每个值代表B个训练样本中的对应的训练样本的得分。

图6示出了根据本发明实施例的对第一神经网络模型400和第二神经网络模型500的权重函数W1和W2进行更新的步骤140的流程图。注意,对第一神经网络模型400和第二神经网络模型500的权重函数W1和W2进行更新的过程基本相同,因此以下的描述中以对第一神经网络模型400的权重函数W1进行更新为例来进行描述。

如图6中所示,步骤140可以包括子步骤142,其中计算设备20利用激活函数确定训练输出xout的得分。

在一种实施例中,激活函数可以是S型函数Sigmoid函数。Sigmoid函数可以表示为:

如前所述,训练输出xout是一个数值,可以表示对应的训练样本的得分,通过使用激活函数对训练输出xout进行处理使得得到的结果更加适合做二分类。

例如,训练输出xout的得分可以通过如下公式(17)确定:

S=Sigmoid(xout) (17)

在子步骤144,计算设备20可以基于训练输出xout的得分S、训练样本xin的样本标签和第一神经网络模型400和第二神经网络模型500的损失函数确定训练输出xout在第一神经网络模型400和第二神经网络模型500的最后一层的梯度。

这里,可以为第一神经网络模型400和第二神经网络模型500设置相同的损失函数,该损失函数可以是均方差损失函数或者交叉熵损失函数。以下,以交叉熵损失函数为例来对子步骤154进行描述,交叉熵损失函数与Sigmoid激活函数相结合的效果更好,能够避免Sigmoid激活函数本身弥散带来的缺点。但是本领域技术人员可以理解,相同的发明构思可以等同地应用于均方差损失函数。

在一种实施例中,交叉熵损失函数Loss可以表示为:

其中表示训练输出xout的样本标签为1的概率。这里,样本标签是根据该用户是否执行了用户行为来确定的。例如,如果该用户对一个内容执行了点击操作,则可以将该内容对应的训练样本的样本标签设置为1,反之,如果该内容虽然被呈现却未被用户点击,则可以将该内容对应的训练样本的样本标签设置为0,即这样的样本标签代表了内容的点击率。

在本发明的一些实施例中,使用反向传播算法来对第一神经网络模型400和第二神经网络模型500的各个层的权重函数Wm和偏置函数bm(m=1、2、……M)进行更新,其中M是第一神经网络模型400和第二神经网络模型500的层数。虽然在图4和图5中仅示出了一个隐藏层420和520(即M=1),但是本领域技术人员可以理解,第一神经网络模型400和第二神经网络模型500可以包含更多的隐藏层,或者,隐藏层本身也可以有更多更复杂的层次结构。

因此,在子步骤144中,可以基于交叉熵损失函数Loss和第M层的权重函数WM和偏置函数bM来确定第一神经网络模型400和第二神经网络模型500的最后一层(第M层)的梯度

接下来,在子步骤146,计算设备20可以基于训练输出xout在第一神经网络模型400和第二神经网络模型500的最后一层的梯度对第一神经网络模型400和第二神经网络模型500的多个层的每一层的权重函数进行更新。

具体地,可以利用批量(Batch)、小批量(mini-Batch)或者随机梯度下降法中的任意一种,基于第一神经网络模型400和第二神经网络模型500的第M层的梯度依次确定第M-1层、第M-2层、……第1层的梯度,并且利用每一层的梯度对该层的权重函数Wm(以及偏置函数bm)进行更新。

基于预设的迭代步长重复上述步骤140的操作,直至达到最大迭代次数或者达到停止迭代阈值。至此,第一神经网络模型400和第二神经网络模型500的权重函数W(以及偏置函数b)被训练至收敛值,可用于对新的内容进行打分。

继续图2,在步骤150,计算设备20可以基于训练后的第一神经网络模型400和第二神经网络模型500分别计算多个候选内容的得分以从这些候选内容中确定召回结果。

图7示出了根据本发明一些实施例的用于从候选内容中确定召回结果的步骤150的流程图。

如图7中所示,步骤150可以包括子步骤152,其中计算设备20可以对于多个候选内容中的每个候选内容,利用训练后的第一神经网络模型400和第二神经网络模型500的激活函数确定该候选内容的得分。这里,候选内容可以是社交平台上随时间不断产生的新内容。候选内容可能是海量的,本文所述的召回的目的是从中初步挑选其中的部分内容作为召回结果。更进一步地,本发明可以与后续的排序或推荐方法相结合以获得更准确的内容推荐结果。

确定候选内容的得分的过程与上述步骤140中所述的确定训练输出xout的得分S的过程基本相同,因此不再赘述。

接下来,在子步骤154,计算设备20可以基于多个候选内容中的每个候选内容的得分从这些候选内容中确定召回结果。

例如,计算设备20可以将多个候选内容的得分按照从高到低的顺序排序,并且将得分最高的若干个内容作为召回结果,这些召回结果可以直接展示在用户终端10的显示屏上,也可以与后续的推荐或排序方法相结合以进一步获取并展示更加准确的推荐结果。

如前所述,在具有高流量和短生命周期内容的社交平台中,内容更新过于迅速,从而难以有效训练出兴趣特征。在这种情况下,本发明的一些实施例还设计了特定的兴趣特征向量池来存储和更新获得的兴趣特征向量。

具体地,在步骤140中获取了训练输出xout或者在步骤130中获取了第二训练目标向量之后,方法100还可以包括步骤160,其中计算设备20将第二内容稠密向量和第二内容稀疏向量作为用户的兴趣特征向量放入兴趣特征向量池中。其中兴趣特征向量池包括一个先进先出队列和一个闭散列哈希表。该先进先出队列包括多个内容ID的列表,该闭散列哈希表包括多个条目,每个条目包括作为键字段的内容ID和作为值字段的内容。

图8示出了根据本发明的实施例的将兴趣特征向量放入兴趣特征向量池中的步骤160的流程图。

如图8中所示,步骤160可以包括子步骤162,其中计算设备20可以确定该先进先出队列是否已满。

如果确定该先进先出队列已满(子步骤162的判断为“是”),则在子步骤164,计算设备20可以删除该先进先出队列中的第一个内容ID,并且从该闭散列哈希表中删除与该第一个内容ID对应的条目。

然后,在子步骤166,计算设备20可以将步骤130产生的第二内容稠密向量和第二内容稀疏向量对应的内容ID添加在该先进先出队列的末尾并且将该第二内容稠密向量和第二内容稀疏向量对应的内容ID和内容添加到该闭散列哈希表。

另一方面,如果确定该先进先出队列未满(子步骤162的判断为“否”),则计算设备20可以直接转到子步骤166,将该第二内容稠密向量和第二内容稀疏向量对应的内容ID添加在该先进先出队列的末尾并且将该第二内容稠密向量和第二内容稀疏向量对应的内容ID和内容添加到该闭散列哈希表。

在这种情况下,在步骤140的更新过程中,在每次迭代时,可以从兴趣特征向量池中取出最新的兴趣特征向量作为第一内容稠密向量来产生新的训练样本。

通过这种方式,能够自动淘汰过期的兴趣特征向量,并且能够在数百万日活用户的高流量下实现兴趣特征向量的快速查找和计算,从而使得模型具有高精度的个性化学习能力。

图9示出了适合实现本发明的实施例的计算设备900的结构方框图。计算设备900例如可以是如上所述的计算设备20或服务器30。

如图9中所示,计算设备900可以包括一个或多个中央处理单元(CPU)910(图中仅示意性地示出了一个),其可以根据存储在只读存储器(ROM)920中的计算机程序指令或者从存储单元980加载到随机访问存储器(RAM)930中的计算机程序指令,来执行各种适当的动作和处理。在RAM 930中,还可存储计算设备900操作所需的各种程序和数据。CPU 910、ROM 920以及RAM 930通过总线940彼此相连。输入/输出(I/O)接口950也连接至总线940。

计算设备900中的多个部件连接至I/O接口950,包括:输入单元960,例如键盘、鼠标等;输出单元970,例如各种类型的显示器、扬声器等;存储单元980,例如磁盘、光盘等;以及通信单元990,例如网卡、调制解调器、无线通信收发机等。通信单元990允许计算设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的方法100例如可由计算设备900(如计算设备20或服务器30)的CPU910执行。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元980。在一些实施例中,计算机程序的部分或者全部可以经由ROM 920和/或通信单元990而被载入和/或安装到计算设备900上。当计算机程序被加载到RAM 930并由CPU 910执行时,可以执行上文描述的方法100的一个或多个操作。此外,通信单元990可以支持有线或无线通信功能。

本领域技术人员可以理解,图9所示的计算设备900仅是示意性的。在一些实施例中,计算设备20或服务器30可以包含比计算设备900更多或更少的部件。

以上结合附图对根据本发明的内容召回方法100以及可用作计算设备20或服务器30的计算设备900进行了描述。然而本领域技术人员可以理解,方法100的步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,计算设备900也不必须包括图9中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。

本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。

在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。

本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。

本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。

本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:商品协同推荐方法及其装置、设备、介质、产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!