信息推送方法和装置
技术领域
本公开的实施例涉及计算机技术领域,具体涉及信息推送方法和装置。
背景技术
随着终端设备的普及和移动端的开发技术的快速发展,涌现出了各种各样的客户端应用。这些客户端应用中通常可以包括社交类应用。通过社交类应用,用户可以与其他用户进行交互。
相关技术中,通常会基于用户自身的属性特征(例如年龄、性别、兴趣爱好、常住地址)等信息,通过上述社交类应用将与用户未建立关联关系的其他用户推送给该用户。
发明内容
本公开的实施例提出了信息推送方法和装置。
第一方面,本公开的实施例提供了一种信息推送方法,该方法包括:获取包括目标用户的社交网络,社交网络包括位于社交网络中的用户的行为信息和用于指示各用户之间是否建立关联关系的指示信息;基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率;将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
在一些实施例中,基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的其他用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率,包括:将目标用户的行为信息、与目标用户未建立关联关系的用户的行为信息分别输入至预先训练的特征值确定模型,得到与目标用户的行为信息对应的目标用户行为信息特征值、与目标用户未建立关联关系的用户的行为信息对应的其他用户行为信息特征值;基于目标用户行为信息特征值、其他用户行为信息特征值,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。
在一些实施例中,特征值确定模型是通过如下步骤训练得到:获取训练样本集,其中,训练样本集中的每一个训练样本包括指定用户的行为信息、其他用户的行为信息、用于指示其他用户与指定用户是否建立关联关系的指示信息;执行如下训练步骤:对于训练样本集中的训练样本,将该训练样本中指定用户的行为信息、其他用户的行为信息分别输入至待训练的神经网络,得到与指定用户对应的行为信息特征值、与其他用户对应的行为信息特征值;基于指定用户对应的行为信息特征值与其他用户对应的行为信息特征值,确定指定用户与其他用户建立关联关系的概率值;基于所确定的训练样本集中的训练样本对应的概率值,确定预设损失函数是否收敛;响应于确定预设损失函数收敛,确定特征值确定模型训练完成。
在一些实施例中,方法还包括:响应于确定预设损失函数未收敛,利用反向传播算法更新待训练的神经网络的参数,继续执行训练步骤。
在一些实施例中,训练样本集中的其他用户的行为信息包括以下之一:与指定用户建立关联关系的正样本用户的行为信息、与指定用户未建立关联关系的负样本用户的行为信息,其中,负样本用户是从预设用户集合中随机选取出的、与指定用户未建立关联关系且与其他用户建立关联关系的用户。
在一些实施例中,训练样本集中的训练样本还包括与其他用户的行为信息对应的时间戳;其中,与正样本用户的行为信息对应的时间戳是基于指定用户与正样本用户建立关联关系的时间确定的;与负样本用户的行为信息对应的时间戳是从与正样本用户对应的时间戳中随机选取出的。
在一些实施例中,神经网络包括n层级联的单层前馈神经网络和全连接层,对于第i层前馈神经网络,前一层的前馈神经网络的输出参数作为后一层前馈神经网络的输入参数,n为大于1的正整数,i为大于2且小于n的正整数;以及每一层前馈神经网络通过如下步骤进行特征提取:基于第一预设激活函数、指定用户的行为信息特征、其他用户的行为信息特征、与其他用户的行为信息对应的时间戳,确定指定用户的行为信息和其他用户的行为信息之间的关联指数;基于所确定的关联指数和第二预设激活函数,确定用于指示指定用户的行为信息特征的参数;将所得到的用于指示指定用户的行为信息特征的参数作为当前层前馈神经网络的输出。
在一些实施例中,行为信息包括以下至少一项:浏览信息、发布信息,浏览信息是基于浏览与用户建立关联关系的其他用户所发布的信息而生成的。
第二方面,本公开的实施例提供了一种信息推送装置,该装置包括:获取单元,被配置成获取包括目标用户的社交网络,社交网络包括位于社交网络中的用户的行为信息和用于指示各用户之间是否建立关联关系的指示信息;确定单元,被配置成基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率;推送单元,被配置成将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
在一些实施例中,确定单元包括:输入子单元,被配置成将目标用户的行为信息、与目标用户未建立关联关系的用户的行为信息分别输入至预先训练的特征值确定模型,得到与目标用户的行为信息对应的目标用户行为信息特征值、与目标用户未建立关联关系的用户的行为信息对应的其他用户行为信息特征值;确定子单元,被配置成基于目标用户行为信息特征值、其他用户行为信息特征值,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。
在一些实施例中,特征值确定模型是通过如下步骤训练得到:获取训练样本集,其中,训练样本集中的每一个训练样本包括指定用户的行为信息、其他用户的行为信息、用于指示其他用户与指定用户是否建立关联关系的指示信息;执行如下训练步骤:对于训练样本集中的训练样本,将该训练样本中指定用户的行为信息、其他用户的行为信息分别输入至待训练的神经网络,得到与指定用户对应的行为信息特征值、与其他用户对应的行为信息特征值;基于指定用户对应的行为信息特征值与其他用户对应的行为信息特征值,确定指定用户与其他用户建立关联关系的概率值;基于所确定的训练样本集中的训练样本对应的概率值,确定预设损失函数是否收敛;响应于确定预设损失函数收敛,确定特征值确定模型训练完成。
在一些实施例中,训练得到特征值确定模型的步骤还包括:响应于确定预设损失函数未收敛,利用反向传播算法更新待训练的神经网络的参数,继续执行训练步骤。
在一些实施例中,训练样本集中的其他用户的行为信息包括以下之一:与指定用户建立关联关系的正样本用户的行为信息、与指定用户未建立关联关系的负样本用户的行为信息,其中,负样本用户是从预设用户集合中随机选取出的、与指定用户未建立关联关系且与其他用户建立关联关系的用户。
在一些实施例中,训练样本集中的训练样本还包括与其他用户的行为信息对应的时间戳;其中,与正样本用户的行为信息对应的时间戳是基于指定用户与正样本用户建立关联关系的时间确定的;与负样本用户的行为信息对应的时间戳是从与正样本用户对应的时间戳中随机选取出的。
在一些实施例中,神经网络包括n层级联的单层前馈神经网络和全连接层,对于第i层前馈神经网络,前一层的前馈神经网络的输出参数作为后一层前馈神经网络的输入参数,n为大于1的正整数,i为大于2且小于n的正整数;以及每一层前馈神经网络通过如下步骤进行特征提取:基于第一预设激活函数、指定用户的行为信息特征、其他用户的行为信息特征、与其他用户的行为信息对应的时间戳,确定指定用户的行为信息和其他用户的行为信息之间的关联指数;基于所确定的关联指数和第二预设激活函数,确定用于指示指定用户的行为信息特征的参数;将所得到的用于指示指定用户的行为信息特征的参数作为当前层前馈神经网络的输出。
在一些实施例中,行为信息包括以下至少一项:浏览信息、发布信息,浏览信息是基于浏览与用户建立关联关系的其他用户所发布的信息而生成的。
第三方面,本公开的实施例提供了一种终端设备,该终端设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的实施例提供的信息推送方法和装置,通过基于目标用户的行为信息、与目标用户之间未建立关联关系的其他用户的行为信息之间的关联度,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率,然后将超过预设阈值的概率对应的用户的用户标识推送给上述目标用户,从而可以更加准确的预测目标用户对其他用户的感兴趣程度,从而提高信息推送效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的信息推送方法的一个实施例的流程图;
图3是根据本公开的信息推送方法的又一个实施例的流程图;
图4是根据本公开的特征值确定模型的训练方法的一种可选的实现方式的流程;
图5是根据本公开的每一层前馈神经网络进行特征提取的方法的一种可选的实现方式的流程;
图6是根据本公开的实施例的信息推送方法的一个应用场景的示意图;
图7是根据本公开的信息推送装置的一个实施例的结构示意图;
图8是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的信息推送方法或信息推送装置的实施例的示例性架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103上可以安装有各种客户端应用。例如网页浏览器类应用、视频类应用、内容分享类应用、社交类应用等。终端设备101、102、103可以通过网络104与服务器105交互,以接收或发送消息等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是可以接收用户操作的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是支持终端设备101、102、103上安装的客户端应用的后台服务器。服务器105可以对获取到的目标用户的浏览信息、发布信息进行分析后,确定用户的浏览信息特征值、发布信息特征值,然后基于用户之间的浏览信息特征值、发布信息特征值之间的相似度,将其中一个用户的用户标识推送给另外一个用户。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的信息推送方法一般由终端设备101、102、103执行,相应地,信息推送装置一般设置于终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的信息推送方法的一个实施例的流程200。该信息推送方法包括以下步骤:
步骤201,获取目标用户的社交网络。
在本实施例中,社交网络通常是由用户和用户之间的关联关系构成的网络结构。该用户之间的关联关系例如可以为血缘关系、好友关系、同事关系、具有共同兴趣爱好的关系等。位于社交网络中的用户可以作为社交网络的一个节点,换而言之,社交网络可以由许多用户节点形成。在该社交网络中,既可以包括与用户建立关联关系的用户,还可以包括与用户未建立关联关系的其他用户。举例来说,用户A、用户B、用户C均属于同一个社交网络中的网络节点。用户A与用户B之间建立关联关系,用户B与用户C之间建立关联关系,用户A与用户C之间未建立关联关系。作为一种示例,某一通讯应用可以作为一个社交网络,用户使用该终端应用时,通常需要在该终端应用中进行账户注册,也即是说,用户加入了该社交网络,该已进行账号注册的用户可以看作是社交网络的节点。作为另一种示例,某一通讯应用中还可以按照不同的类别形成多个社交网络。例如,基于地域信息形成的社交网络,基于兴趣信息形成的社交网络等。
在本实施例中,上述通讯应用可以包括但不限于社交类应用、博客类应用等。通过该通讯应用,用户可以与其他用户之间进行通信,该通信诸如可以为语音通信、视频通信、简讯通信等。通过该通讯应用,用户还可以发布诸如文章、微消息、评论等信息,浏览其他用户发布的诸如文章、微消息、评论等信息。上述诸如通信信息、发布信息、浏览信息等即为用户的行为信息。
在本实施例中,信息推送方法的执行主体(如图1所示的服务器105)可以获取目标用户所属的社交网络。在这里,用户所属的社交网络可以包括一个社交网络,也可以包括多个社交网络。具体的,上述执行主体可以首先基于预先设置的目标用户的用户标签确定与用户标签关联的社交网络,将该社交网络确定为包括目标用户的社交网络。该预先设置的用户标签例如可以为基于用户的用户属性信息确定的,也可以为用户基于上述执行主体提供的多个用户标签所选择出的。在这里,所获取到的社交网络包括用于指示各个用户之间是否建立关联关系的指示信息和每一个用户的行为信息。在这里,该行为信息包括所浏览的其他用户发布的信息,也即浏览信息,所发布的信息,也即发布信息。
步骤202,基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。
在本实施例中,上述关联关系可以为互为好友关系,可以为关注与被关注关系等。通过利用目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,可以确定目标用户与未建立关联关系的用户之间建立关联关系的概率。
具体的,可以基于目标用户的浏览信息、社交网络中与目标用户未建立关联关系的用户的发布信息,来确定二者之间建立关联关系的概率。在这里,可以确定与目标用户的浏览信息对应的浏览信息特征值、与目标用户未建立关联关系的用户的发布信息对应的发布信息特征值。
通常,用户可以浏览多条信息,也可以发布多条信息。其所浏览的或发布的每一条信息可以包括预设标签词,该预设标签词可以是从信息内容中提取的关键词,或者是信息发布者在发布信息时设置的标签词。该预设标签词可以表征该条信息所属的类别。上述执行主体可以基于与目标用户的浏览信息对应的预设标签词,确定目标用户的浏览信息所属的多个类别。然后将每一个类别作为一维特征,从而最终形成包括多维特征的浏览信息特征值。同理,上述执行主体可以基于与目标用户未机建立关联关系的用户的发布信息对应的预设标签词,确定发布信息所属的类别。然后将每一个类别作为一维特征,从而最终形成包括多维特征向量的发布信息特征值。
然后,上述执行主体可以基于目标用户对应的浏览信息特征值和未建立关联关系的用户对应的发布信息特征值之间的关联度,来确定两用户之间建立关联关系的概率。具体的,可以采用sigmoid函数来计算二者之间的关联度。以目标用户关注其他未关注用户的概率为例,进行具体阐述。具体参看公式1、公式2。
其中,p
ij为目标用户i关注用户j的概率。σ(x)为sigmoid函数,x为随机变量。在这里,随机变量即为
组成的特征值矩阵,
为目标用户的浏览信息特征值矩阵,
为其他用户的发布信息特征值矩阵,b为随机常数。随机变量x为
为浏览信息特征值矩阵
的列向量与发布信息特征值矩阵
的列向量合并成的新的列向量。
在本实施例中,概率pij的值越大,说明目标用户关注其他用户的概率越大,也即两用户之间建立关联关系的概率越大。
步骤203,将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
在本实施例中,每一个用户加入上述社交网络后,上述执行主体通常会记录有用于唯一识别用户身份的用户标识。该用户标识可以为终端设备号,可以为进行账号注册时的注册号,可以为用户进行账号注册时所用的网名、头像等。在这里值得注意的是,上述用户标识还可以为诸如公众号之类的公众阅读平台。通常,每一个公众号所发布的文章等信息均可以看作是某个用户基于社交应用等平台来发布的,因此,诸如公众号之类的公众阅读平台所对应的用于唯一指示该公众阅读平台的标识也可以看作是用户标识。
在本实施例中,上述执行主体可以根据步骤202所确定出的标用户与未建立关联关系的用户之间,建立关联关系的概率,然后将概率值超过预设阈值的概率所对应的用户的用户标识推送给目标用户。从而,目标用户可以基于所接收到的服务端推送的用户标识,以选择添加该用户标识对应的用户为好友的操作、关注该用户标识对应的用户操作等。
本实施例通过利用目标用户的浏览信息特征值和其他用户的发布信息特征值来确定目标用户是否对其他用户发布的内容感兴趣以建立二者之间的关联关系,可以使得推送更加具有针对性,避免将许多关联性不强或者用户不感性兴趣的其他用户推送给目标用户,提高了目标用户与所推送的用户之间建立关联关系的概率,从而提高了推送效率。
进一步参考图3,其示出了信息推送方法的又一个实施例的流程300。该信息推送方法的流程300,包括以下步骤:
步骤301,获取包括目标用户的社交网络。
在本实施例中,信息推送方法的执行主体(如图1所示的服务器105)可以获取目标用户所属的社交网络。在这里,用户所属的社交网络可以包括一个社交网络,也可以包括多个社交网络。具体的,上述执行主体可以首先基于预先设置的目标用户的用户标签确定与用户标签关联的社交网络,将该社交网络确定为包括目标用户的社交网络。
在这里,所获取到的社交网络包括用于指示各个用户之间是否建立关联关系的指示信息,每一个用户的行为信息。在这里,该行为信息包括所浏览的其他用户发布的信息,也即浏览信息,所发布的信息,也即发布信息。
步骤302,将目标用户的行为信息、与目标用户未建立关联关系的用户的行为信息分别输入至预先训练的特征值确定模型,得到与目标用户的行为信息对应的目标用户行为信息特征值、与目标用户未建立关联关系的用户的行为信息对应的其他用户行为信息特征值。
在本实施例中,上述行为信息可以为浏览信息、发布信息。其中,目标用户的行为信息为浏览信息,与目标用户未建立关联关系的用户的行为信息为发布信息。浏览信息可以为所浏览的内容的标题,可以为从所浏览的内容中提取出的关键词,可以为用户进行内容发布时预先设置的标签词。发布信息可以为所发布的内容的标题,可以为从所发布的内容中提取出的关键词,可以为用户进行内容发布时预先设置的标签词。
在本实施例中,特征值确定模型用于基于用户的行为信息,对用户的兴趣点进行预测,从而得到基于行为信息的行为信息特征值。上述特征值确定模型是基于神经网络训练得到的。该神经网络可以为深度神经网络,该深度神经网络可以包括多个特征提取层和一个全连接层。特征提取层可以用于提取行为信息的特征。最后,将每一层提取到的特征在全连接层进行全连接,得到最终的行为信息特征值。
在本实施例中,目标用户行为信息特征值可以是基于对目标用户的浏览信息进行特征提取得到的浏览信息特征值。具体的,可以将目标用户的浏览信息输入至上述预先训练的特征值确定模型,从而得到用于指示目标用户的浏览兴趣的浏览信息特征值。
在本实施例中,与目标用户未建立关联关系的用户对应的其他用户信息特征值可以是基于对其他用户的发布信息进行特征提取得到的发布信息特征值。具体的,可以将其他用户的发布信息输入至上述预先训练的特征值确定模型,从而得到用于指示其他各个用户的发布兴趣的其他用户发布信息特征值。
步骤303,基于目标用户行为信息特征值、其他用户行为信息特征值,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。
在本实施例中,根据步骤302所确定的目标用户的浏览信息特征值、与目标用户未建立关联关系的用户的发布信息特征值,可以确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。该步骤的具体实现可参考图2所示的实施例的步骤202中的相关描述,在此不再赘述。
步骤304,将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
本实施所示的步骤301和步骤304的具体实现以及所带来的有益效果可以参考图2所示的步骤201和步骤203的有关阐述,在此不再赘述。
从图3所示的实施例中可以看出,与图2所示的实施例不同的是,本实施例公开了利用预先训练的神经网络来确定行为信息特征值的步骤。由于神经网络可以对大量数据进行处理,学习用户的各种行为信息的特征,从而可以使得所确定出的行为信息特征值更加准确。
在上述实施例的一些可选的实现方式中,上述特征值确定模型可以是基于样本集合训练得出的。继续参考图4,其示出了本公开提供的特征值确定模型的训练方法的一种可选的实现方式的流程400。该流程400包括以下步骤:
步骤401,获取训练样本集。
在这里,该训练样本集中的每一个训练样本包括指定用户的用户信息、其他用户的行为信息、用于指示其他用户与指定用户是否建立关联关系的指示信息。
在这里,行为信息可以包括浏览信息、发布信息。其中,浏览信息是基于浏览与用户建立关联关系的其他用户发布的信息而生成的。
在一些可选的实现方式中,训练样本集中的其他用户的行为信息包括以下之一:与指定用户建立关联关系的正样本用户的行为信息、与指定用户未建立关联关系的负样本用户的行为信息。其中,负样本用户是从预设用户集合中随机选取出的、与指定用户未建立关联关系且与其他用户建立关联关系的用户。
具体的,当上述执行主体检测到某用户与其他用户建立关联关系后,可以将该用户对应的用户标识添加至上述预设用户集合中。每检测到一次添加一次。也即是说,当用户A与用户B之间建立关联关系后,可以将用户A对应的用户标识、用户B对应的用户标识添加至上述预设用户集合中。当检测到用户A与用户C之间建立关联关系后,将用户A对应的用户标识、用户C对应的用户标识添加至上述预设用户集合中。也即是说,预设用户集合中包含有两个与用户A对应的用户标识。当上述执行主体在选择负样本用户时,从上述预设用户信息集合中选取出来。从而,上述预设用户集合中所包括的某一用户的用户标识越多,被选取出作为负样本用户的概率越大。通过上述方式确定训练样本集中的负样本,可以使得负样本更加具有普遍性,从而使得训练出的模型具有更好的泛化能力。
在一些可选的实现方式中,行为信息包括以下至少一项:浏览信息、发布信息,浏览信息是基于浏览与用户建立关联关系的其他用户发布的信息而生成的。
在一些可选的实现方式中,训练样本集中的训练样本还包括与行为信息对应的时间戳;与正样本用户的行为信息对应的时间戳是基于指定用户与正样本用户建立关联关系的时间确定的;与负样本用户的行为信息对应的时间戳是从与正样本用户对应的时间戳中随机选取出的。
具体的,上述执行主体可以选取出指定时间t之前与指定用户建立关联关系的正样本用户,然后对每一个正样本用户设置时间戳。具体的,该时间戳可以是多维时间特征向量,其中一维时间特征向量用于指示指定用户与正样本用户建立关联关系的时间特征,其中一维时间特征向量用于指示指定用户浏览正样本用户所发布的信息的时间特征。建立关联关系的时间距离指定时间t越近,说明正样本用户所发布的信息对指定用户当前时间段的兴趣影响越大。然后,可以将上述已经设置的时间戳随机分配给负样本用户。也即是说,样本训练集中每一个正样本用户对应的行为信息或负样本用户对应的行为信息均设置有一个时间戳。
在这里,上述指定用户的浏览信息、发布信息,是基于指定用户对应的正样本用户的时间戳得到的,也即是说在时间戳之前浏览的与该时间戳对应的正样本用户所发布的信息。上述其他用户的浏览信息、发布信息,是基于该负样本用户对应的时间戳,所选取的时间戳之前该其他用户所浏览的信息、发布的信息。通过添加时间戳信息,可以使得训练样本具有时效性。这样一来,可以根据浏览信息对应的浏览时间距离当前时间的长短,来确定浏览信息的权重,根据发布信息对应的发布时间距离当前时间的长短,来确定发布信息的权重,从而使得所训练出的特征值确定模型具有更好的时效性,也即是说更能体现用户当前的兴趣特征,从而使得所确定出的浏览信息特征值、发布信息特征值更加准确。
在一些可选的实现方式中,上述执行主体可以对所获取到的指定用户的行为信息、其他用户的行为信息进行预处理。在这里,该预处理可以为对行为信息进行标准化处理。该标准化处理例如可以为范数标准化处理、最大值最小值标准化处理等。通过对行为信息进行标准化处理,可以快速推进机器学习的学习速度,提高机器学习的学习效率。
步骤402,基于步骤401获取到的训练样本集,可以执行如下训练步骤:
步骤4021,对于训练样本集中的训练样本,将该训练样本中指定用户的行为信息、其他用户的行为信息输入至待训练的神经网络,得到与指定用户对应的行为信息特征值、与其他用户对应的行为信息特征值。
在这里,该行为信息特征值可以包括浏览信息特征值和发布信息特征值。
步骤4022,基于指定用户对应的行为信息特征值与其他用户对应的行为信息特征值,确定指定用户与其他用户建立关联关系的概率值。
具体的,该关联关系可以为关注关系和被关注关系。在这里,可以基于指定用户的浏览信息特征值和其他用户对应的发布信息特征值,确定指定用户关注其他用户的概率值。或者,基于指定用户的发布信息特征值和其他用户的浏览信息特征值,确定指定用户被其他用户关注的概率值。
在这里,上述概率值的具体实现可以参考图2实施例的步骤203所示的确定目标用户与未建立关联关系的用户之间,建立关联关系的概率的具体实现,在此不再赘述。
步骤4023,基于所确定的训练样本集中的训练样本对应的概率值,确定预设损失函数是否收敛。
在本实施例中,上述预设损失函数例如可以为对数损失函数。在这里,确定该预设损失函数是否收敛也即是确定损失函数的损失值是否达到预设阈值,或者损失值变化的绝对是是否小于预设阈值。在响应于损失值达到预设阈值,或者损失值变化的绝对值小于预设阈值时,可以确定预设损失函数收敛。在这里值得注意的是,上述损失值变化的绝对值是基于当前次训练利用损失函数计算得到的损失值与上一次训练得到的损失值之间的差值的绝对值。
步骤403,响应于确定预设损失函数收敛,确定特征值确定模型训练完成。
在本实施例中,根据步骤4023中所确定的预设损失函数是否收敛,在预设损失函数收敛时,可以确定上述特征值确定模型训练完成。
步骤404,响应于确定预设损失函数未收敛,利用反向传播算法更新待训练的神经网络的参数,继续执行步骤402所示的训练步骤。
在本实施例中,上述更新待训练的神经网络的参数例如可以为更新待训练的神经网络中每一层神经网络的滤波器的数值、滤波器的大小、步长等,还可以更新神经网络的层数。上述执行主体响应于确定预设损失函数未收敛,可以利用方向传播算法来更新待训练的神经网络的参数,然后继续执行步骤4021-步骤4023所示的训练步骤。
利用上述训练方法所训练出的特征值确定模型,可以使得所确定的行为信息特征值更加准确,还可以提高所训练出的特征值确定模型的鲁棒性。
在一些实施例中,上述用于训练特征值确定模型的神经网络可以包括n层级连的单层前馈神经网络和全连接层。n为大于1的正整数。其中,对于第i层前馈神经网络,前一层的前馈神经网络的输出参数作为后一层前馈神经网络的输入参数,i为大于2且小于n的正整数。在这里每一层前馈神经网络均用于进行特征提取。也即是说,最后一层前馈神经网络的输出是包括前面各层前馈神经网络的特征提取结果。具体的,如图5所示,其示出了本公开提供的每一层前馈神经网络进行特征提取的方法的一种可选的实现方式的流程500。该流程500包括以下步骤:
步骤501,基于第一预设激活函数、指定用户的行为信息特征、其他用户的行为信息特征、与其他用户的行为信息对应的时间戳、与其他用户的行为信息对应的时间戳,确定指定用户的行为信息和其他用户的行为信息之间的关联指数。
具体的,上述关联关系为关注与被关注的关系。指定用户的行为信息特征可以为指定用户的浏览信息特征,其他用户的行为信息特征可以为其他用户的发布信息特征。
可以基于第一预设激活函数、与其他用户的行为信息对应的时间戳、指定用户的浏览信息特征、指定用户所关注的其他用户的发布信息特征,确定指定用户对应的浏览信息和指定用户所关注的其他用户对应的发布信息之间的关联指数作为第一关联指数。
该第一关联指数用于指示指定用户所关注的其他用户的发布信息对指定用户的兴趣特征的影响程度。该第一预设激活函数例如可以为ReLU激活函数。由于用户在预设时间段内所浏览的信息可以包括多条。因此,浏览信息可以转换成具有多维特征的特征向量,每一维特征分量均用于表征一条浏览信息。该层前馈神经网络可以对用于表征浏览信息的特征向量的每一维特征分量进行特征提取,得到与浏览信息对应的特征矩阵。同理,发布信息同样可以转换成具有多维特征的特征向量,每一维特征分量均用于表征一条发布信息。该层前馈神经网络可以对用于表征发布信息的特征向量的每一维特征分量进行特征提取,得到与发布信息对应的特征矩阵。在这里,每一条浏览信息均设置有一个时间戳。因此,基于与各浏览信息对应的时间戳,可以形成时间戳矩阵。该时间戳的设置具体可以参考步骤4201所示的设置时间戳的相关描述。然后,按照距离当前时间的远近顺序将时间影响特征划分为预设数目个等级。也即是所,距离当前时间越近的时间戳对应的等级越高,也即时间影响越大。从而形成用于指示每一条浏览信息的时间影响程度的时间特征矩阵。最后,该层前馈神经网络可以将与指定用户的浏览信息对应的特征矩阵、与指定用户所关注的其他用户的发布信息对应的特征矩阵和时间特征矩阵,代入ReLU激活函数,最终得到指定用户对应的浏览信息和指定用户所关注的其他用户对应的发布信息之间的关联指数,将该关联指数作为第一关联指数。
在这里,指定用户的行为信息特征还可以为指定用户的发布信息特征,其他用户的行为信息特征还可以为其他用户浏览指定用户所发布的信息的浏览信息特征。
还可以基于第一预设激活函数、与其他用户的行为信息对应的时间戳、指定用户的发布信息特征、关注指定用户的其他用户的浏览信息特征,确定指定用户对应的发布信息和指定用户所关注的其他用户对应的浏览信息之间的关联指数作为第二关联指数。
在这里,该第二关联指数用于指示指定用户的发布信息对关注指定用户的其他用户的兴趣特征的影响程度。该层前馈神经网络可以生成与指定用户的发布信息对应的特征矩阵、与关注指定用户的其他用户的浏览信息对应的特征矩阵和时间特征矩阵。然后,该层前馈神经网络可以将所生成的与指定用户的发布信息对应的特征矩阵、与关注指定用户的其他用户的浏览信息对应的特征矩阵和时间特征矩阵,代入ReLU激活函数,最终得到指定用户对应的发布信息和指定用户所关注的其他用户对应的浏览信息之间的关联指数作为第二关联指数,将该关联指数作为第二关联指数。
在这里值得注意的是,第一层前馈神经网络的行为信息特征即为所获取到的指定用户的行为信息、其他用户的行为信息。第2层至第n层前馈神经网络的行为信息特征即为前一层前馈神经网络输出的用于指示指定用户的行为信息特征的参数。当行为信息为浏览信息和发布信息时,行为信息特征包括浏览信息特征和发布信息特征。
步骤502,基于所确定的关联指数和第二预设激活函数,确定用于指示指定用户的行为信息特征的参数。
具体的,可以基于所得到的第一关联指数和第二预设激活函数,确定用于指示指定用户的浏览信息特征的参数。可以基于所得到的第二关联指数和第二预设激活函数,确定用于指示指定用户的发布信息特征的参数。
具体的,该第二预设激活函数可以为Sigmoid函数。
在这里,可以对所得到的第一关联指数归一化。然后,将归一化后的第一关联指数分别作为指定用户的浏览信息对应的特征矩阵的系数和其他用户的发布信息对应的特征矩阵的系数,得到变换后的指定用户的浏览信息对应的特征矩阵、变换后的其他用户的发布信息对应的特征矩阵。将所得到的变换后的指定用户的浏览信息对应的特征矩阵与变换后的其他用户的发布信息对应的特征矩阵之和作为第二预设激活函数的变量,从而得到用于指示指定用户的浏览信息特征的参数。
在这里,可以对所得到的第二关联指数归一化。然后,将归一化后的第二关联指数分别作为指定用户的发布信息对应的特征矩阵的系数和其他用户的浏览信息对应的特征矩阵的系数,得到变换后的指定用户的发布信息对应的特征矩阵、变换后的其他用户的浏览信息对应的特征矩阵。将所得到的变换后的指定用户的发布信息对应的特征矩阵与变换后的其他用户的浏览信息对应的特征矩阵之和作为第二预设激活函数的变量,从而得到用于指示指定用户的发布信息特征的参数。
步骤503,将所得到的用于指示指定用户的行为信息特征的参数作为当前层前馈神经网络的输出。
具体的,可以将所得到的用于指示指定用户的发布信息特征的参数、用于指示指定用户的浏览信息特征的参数作为当前层前馈神经网络的输出。
在这里,可以将所得到的用于指示指定用户的发布信息特征的参数、所得到的用于指示指定用户的浏览信息特征的参数作为当前层前馈神经网络的输出。也即是说,将当前层所得到的参数作为与该层连接的下一层前馈神经网络的输入。
每一层的前馈神经网络通过上述特征提取方法所提取的参数,基于其他用户的发布信息或浏览信息对指定用户的影响程度来确定用户最终的浏览信息特征参数和发布信息特征参数,使得每一层前馈神经网络所提取的特征更加准确,从而提高所训练出的特征值确定模型所提取的特征值的准确性。
进一步参考图6,图6是根据本实施例的信息推送方法的应用场景的一个示意图。
在图6的应用场景中,社交网络601为包括用户A的社交网络,其中用户A为目标用户。在该社交网络601中,还包括用户B、用户C、用户D。其中,用户A与用户B互相关注,用户B关注用户C和用户D。用户A与用户C、用户D之间未建立关联关系。用户A浏览过用户B发布的“虫洞如何形成的”、“世界杯足球赛”等信息。用户C发布的信息包括“欧洲杯看点”、“爱因斯坦相对论”等,用户D发布的信息包括“旅行日记”等。然后,信息推送方法运行于其上的电子设备602可以基于用户A所浏览的用户B的发布信息、基于用户C所发布的信息、基于用D所发布的信息,确定目标用户A与用户C、用户D分别建立关联关系的概率。其中,用户A与用户C建立关联关系的概率为0.8,用户A与用户D建立关联关系的概率为0.2。当预设概率阈值为0.5时,电子设备602可以将用户C的用户标识推送给用户A。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了信息推送装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例提供的信息推送装置700包括获取单元701、确定单元702和推送单元703。其中,获取单元701被配置成获取包括目标用户的社交网络,社交网络包括位于社交网络中的用户的行为信息和用于指示各用户之间是否建立关联关系的指示信息;确定单元702被配置成基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率703推送单元,被配置成将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
在本实施例中,信息推送装置700中:获取单元701、确定单元702和推送单元703的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202和步骤203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,确定单元702包括:输入子单元(图中未示出),被配置成将目标用户的行为信息、与目标用户未建立关联关系的用户的行为信息分别输入至预先训练的特征值确定模型,得到与目标用户的行为信息对应的目标用户行为信息特征值、与目标用户未建立关联关系的用户的行为信息对应的其他用户行为信息特征值;确定子单元(图中未示出),被配置成基于目标用户行为信息特征值、其他用户行为信息特征值,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率。
在本实施例的一些可选的实现方式中,特征值确定模型是通过如下步骤训练得到:获取训练样本集,其中,训练样本集中的每一个训练样本包括指定用户的行为信息、其他用户的行为信息、用于指示其他用户与指定用户是否建立关联关系的指示信息;执行如下训练步骤:对于训练样本集中的训练样本,将该训练样本中指定用户的行为信息、其他用户的行为信息分别输入至待训练的神经网络,得到与指定用户对应的行为信息特征值、与其他用户对应的行为信息特征值;基于指定用户对应的行为信息特征值与其他用户对应的行为信息特征值,确定指定用户与其他用户建立关联关系的概率值;基于所确定的训练样本集中的训练样本对应的概率值,确定预设损失函数是否收敛;响应于确定预设损失函数收敛,确定特征值确定模型训练完成。
在本实施例的一些可选的实现方式中,训练得到特征值确定模型的步骤还包括:响应于确定预设损失函数未收敛,利用反向传播算法更新待训练的神经网络的参数,继续执行训练步骤。
在本实施例的一些可选的实现方式中,训练样本集中的其他用户的行为信息包括以下之一:与指定用户建立关联关系的正样本用户的行为信息、与指定用户未建立关联关系的负样本用户的行为信息,其中,负样本用户是从预设用户集合中随机选取出的、与指定用户未建立关联关系且与其他用户建立关联关系的用户。
在本实施例的一些可选的实现方式中,训练样本集中的训练样本还包括与其他用户的行为信息对应的时间戳;其中,与正样本用户的行为信息对应的时间戳是基于指定用户与正样本用户建立关联关系的时间确定的;与负样本用户的行为信息对应的时间戳是从与正样本用户对应的时间戳中随机选取出的。
在本实施例的一些可选的实现方式中,神经网络包括n层级联的单层前馈神经网络和全连接层,对于第i层前馈神经网络,前一层的前馈神经网络的输出参数作为后一层前馈神经网络的输入参数,n为大于1的正整数,i为大于2且小于n的正整数;以及每一层前馈神经网络通过如下步骤进行特征提取:基于第一预设激活函数、指定用户的行为信息特征、其他用户的行为信息特征、与其他用户的行为信息对应的时间戳,确定指定用户的行为信息和其他用户的行为信息之间的关联指数;基于所确定的关联指数和第二预设激活函数,确定用于指示指定用户的行为信息特征的参数;将所得到的用于指示指定用户的行为信息特征的参数作为当前层前馈神经网络的输出。
在本实施例的一些可选的实现方式中,行为信息包括以下至少一项:浏览信息、发布信息,浏览信息是基于浏览与用户建立关联关系的其他用户所发布的信息而生成的。
本公开的实施例提供的信息推送装置,通过基于目标用户的行为信息、与目标用户之间未建立关联关系的其他用户的行为信息之间的关联度,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率,然后将超过预设阈值的概率对应的用户的用户标识推送给上述目标用户,从而可以更加准确的预测目标用户对其他用户的感兴趣程度,从而提高信息推送效率。
下面参考图8,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的终端设备)800的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的终端设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图8中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802被安装。在该计算机程序被处理装置801执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取包括目标用户的社交网络,社交网络包括位于社交网络中的用户的行为信息和用于指示各用户之间是否建立关联关系的指示信息;基于目标用户的行为信息、社交网络中与目标用户未建立关联关系的用户的行为信息,确定目标用户与未建立关联关系的用户之间,建立关联关系的概率;将超过预设阈值的概率对应的用户的用户标识推送给目标用户。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括一种处理器,包括获取单元、确定单元和推送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取包括目标用户的社交网络的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。