具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)召回:是指向用户粗选一批待推荐的商品,相当于粗排序。也就是从全局的项目库中(例如,可以是信息库、商品库、视频库等项目库)选取和当前被推荐用户相关的一部分项目作为候选集。召回是整个推荐过程中进行搜索中的第一步骤,它的输出可以作为后续步骤(例如,排序、策略调整等)的输入,最终展示给用户的项目是这个候选集中的子集。
2)推荐系统:是一种信息过滤系统,用于预测用户对项目的评分或偏好。推荐系统可以把那些最终会在用户和项目之间产生的连接找出来,并且根据已经存在的连接预测未来的连接。
3)多层感知机(MLP,Multilayer Perceptron):也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层之外,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构。MLP的层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。MLP所有的参数就是各个层之间的连接权重以及偏置。
为了更好地理解本申请实施例中提供的信息推荐方法,首先对相关技术中的信息推荐方法进行说明:
相关技术中,在对用户进行信息推荐时,主要通过以下两种方法来实现:第一种,不考虑用户好友的信息推荐方法,是根据用户的习惯等特征数据刻画用户画像,再根据用户画像向用户推荐用户所感兴趣的内容,而并不考虑用户好友所阅读的内容,推荐的基础信息范围较大;第二种,考虑用户好友的信息推荐方法,在向用户进行信息推荐时,所推荐的信息是用户的好友所阅读的内容,用户的好友可以将自己所阅读的内容推荐给用户。
对于上述第一种信息推荐方法,由于不考虑用户的好友关系,所推荐的内容是从整个信息资源池中筛选出的全部信息,因此筛选的基础信息数据量较大,范围也较大,筛选的效率较低。并且,上述第一种信息推荐方法仅适用于在无好友关系的推荐系统中的信息推荐,例如,通过阅读类软件阅读信息流时,软件会根据用户的阅读习惯,确定用户感兴趣的领域,并向用户推荐这一领域的信息流。
对于上述第二种信息推荐方法,可以应用于考虑用户的好友关系的信息推荐产品,例如,社交软件中的看一看,是一种区别于传统推荐系统的信息流产品,它最大的特点在于曝光的内容来源于社交软件好友的点击“在看”并且在用户浏览时会显示出已点“在看”的好友列表。与上述第一种信息推荐方法中主要以用户兴趣与推荐内容是否匹配来进行内容的召回、排序不同,朋友在看场景下需要着重考虑社交好友的因素来评估召回排序等工作。
但是,相关技术中,在考虑社交好友的因素来评估待推荐信息的召回排序等工作时,是将好友点击“在看”或者好友点击“阅读”等好友与待推荐内容具有互动行为的信息直接推送给用户,而并不会对信息进行进一步的处理,以评估出更加适合推荐给用户的信息,因此,在向用户推荐好友点击“在看”的信息时,是将全部好友点击“在看”所形成的推荐列表中的待推荐信息进行直接推荐,而不会对推荐列表中的待推荐信息进行有效的排序处理,因此不能对用户进行准确的信息推荐。
基于相关技术所存在的至少一个问题,本申请实施例提供一种信息推荐方法,在考虑社交好友因素的同时,融合社交好友(即联系人)、待推荐信息和用户自己三方面的特征数据,对所获取的待推荐信息的第一特征数据、联系人的第二特征数据和用户的第三特征数据进行MLP融合处理,因此能够准确的得到所述用户与所述待推荐信息之间的互动概率,如此,根据所述互动概率对推荐列表中的推荐信息进行排序,使互动概率较高的待推荐信息位于所述推荐列表靠前的位置,从而得到更加符合用户互动习惯的推荐列表,对用户进行准确的信息推荐。另外,本申请实施例提供的方案还涉及人工智能的模型构建技术,比如,构建用于实现对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理的社交影响力网络模型等,将在下文进行说明。
这里,需要说明的是,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面说明本申请实施例提供的信息推荐设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。下面,将说明设备实施为服务器时的示例性应用。
参见图1,图1是本申请实施例提供的信息推荐系统10的一个可选的架构示意图。为实现支撑一个图像识别应用,终端(示例性示出了第一终端100-1和第二终端100-2,其中第一终端100-1为用户所持终端,用于接收待推荐信息,第二终端100-2为联系人所持终端,用于向第一终端发送待推荐信息)通过网络200连接服务器300,在所述第一终端100-1和所述第二终端100-2上分别运行有信息推荐应用,所述第一终端100-1的用户与所述第二终端100-2的用户在所述信息推荐应用中具有好友关系,当第二终端100-2的用户(即联系人)在终端上的信息推荐应用中与任一信息进行互动时,则将该信息确定为所述待推荐信息,推荐给第一终端100-1。其中,第二终端获取联系人互动的待推荐信息,并将待推荐信息通过网络200发送给服务器300,以使得服务器300对所述待推荐信息的第一特征数据、所述联系人的第二特征数据和所述用户自身的第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率,并根据所述互动概率将包括所述待推荐信息的推荐列表通过网络200发送给第一终端100-1。其中,网络200可以是广域网或者局域网,又或者是二者的组合。第一终端100-1可以在当前页面110-1上显示所述待推荐信息,第二终端100-2也可以在当前页面110-2上显示所述待推荐信息。
本申请实施例涉及的信息推荐系统10也可以是区块链系统的分布式系统101,参见图2A,图2A是本申请实施例提供的信息推荐系统10应用于区块链系统的一个可选的结构示意图,其中,所述分布式系统101可以是由多个节点102(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端103形成的分布式节点,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2A示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
4)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Pr oof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
参见图2B,图2B是本申请实施例提供的区块结构(Block Structure)的一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
参见图3,图3是本申请实施例提供的服务器300的结构示意图,图3所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统340。
处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器350中的一种信息推荐装置354,该信息推荐装置354可以是服务器300中的信息推荐装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块3541、第二获取模块3542、第一融合处理模块3543、排序模块3544和显示模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在其他实施例中,所述存储器350中的信息推荐装置还可包括以下软件模块(图中未示出):第三获取模块、第四获取模块、第二融合处理模块和推荐模块。该信息推荐装置也可以是程序和插件等形式的软件,这些模块也是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的信息推荐方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specif ic Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic De vice)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的信息推荐方法。参见图4A,图4A是本申请实施例提供的信息推荐方法的一个可选的流程示意图,将结合图4A示出的步骤进行说明。
步骤S401,获取推荐列表中每一待推荐信息的第一特征数据。
这里,所述推荐列表中包括至少一个待推荐信息,所述待推荐信息是与用户具有好友关系的联系人进行过互动的信息,例如,所述待推荐信息可以是用户的联系人分享的信息,所述待推荐信息可以是文章或新闻等信息流,也可以是商品、歌曲、视频等待推荐产品。
在一些实施例中,所述用户的第一终端上运行有信息推荐应用,所述信息推荐应用可以实现注册用户之间的信息分享,用户可以与自身的联系人分别在各自的终端上运行所述信息推荐应用,当用户或者自身的联系人与所述信息推荐应用中的信息进行互动时,例如,可以进行查阅信息、点击信息、购买商品、评论和点赞等互动,服务器则将对应的信息确定为所述待推荐信息,并将所述待推荐信息推荐给用户的好友。
所述推荐列表中的待推荐信息可以来自于同一个联系人,也可以来自于不同的联系人,由于用户的好友可以不止一个,因此,可以获取全部好友发生互动的待推荐信息,从而得到来自于不同的联系人的待推荐信息。
所述第一特征数据为用于描述所述待推荐信息的数据,所述第一特征数据是基于至少一个信息维度的数据,所述信息维度为用于描述所述待推荐信息属性的维度,所述信息维度包括但不限于以下至少之一:信息来源、信息类别、信息所属领域、信息大小和信息产生的时间等。
步骤S402,获取互动每一所述待推荐信息对应的联系人的第二特征数据、和用户自身的第三特征数据。
这里,所述联系人为与所述用户之间具有好友关系的用户,所述联系人在所述信息推荐应用上具有注册账号,所述用户在所述信息推荐应用上也具有注册账号,所述联系人的注册账号与所述用户的注册账号之间互相关注或者所述用户的注册账号关注所述联系人的注册账号。
每一所述待推荐信息对应一个或多个联系人,也就是说,当所述待推荐信息对应一个联系人时,则该一个联系人与该待推荐信息进行过互动,当所述待推荐信息对应多个联系人时,则该多个联系人均与该待推荐信息进行过互动。
所述第二特征数据为用于描述对应联系人的数据,所述第二特征数据是基于至少一个推荐维度的数据,所述推荐维度为用于描述对应联系人属性的维度,所述推荐维度包括但不限于以下至少之一:联系人分组、用户与联系人联系的亲密度、联系人所学专业、联系人的兴趣爱好、联系人所关注的领域和用户与联系人的互动频率等。需要说明的是,当分享所述待推荐信息对应的联系人为多个时,需要获取每一联系人在至少一个推荐维度上的第二特征数据。
所述第三特征数据为用于描述用户自身的数据,所述第三特征数据是基于至少一个被推荐维度的数据,所述被推荐维度为用于描述用户自身的维度,所述被推荐维度包括但不限于以下至少之一:所关注的公知号、所关注的好友、所关注好友的专业、预设时间段内互动的信息所属的领域等。
步骤S403,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率。
这里,所述MLP融合处理是指将所述第一特征数据、所述第二特征数据和所述第三特征数据输入至预设的MLP网络模型中,通过MLP网络模型中的数据融合函数,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行加权融合处理,从而得到所述用户与所述待推荐信息之间的互动概率。
所述用户与所述待推荐信息之间的互动概率用于描述所述用户与所述待推荐信息之间可能会进行互动的概率,所述互动概率可以以百分数的形式表示。
在一些实施例中,所述互动概率可以取值0或1,当所述互动概率为0时,表明通过MLP网络模型对所述第一特征数据、所述第二特征数据和所述第三特征数据进行加权融合处理后,计算出的结果表明所述用户不会与所述待推荐信息进行互动,即用户不会点击阅读所述待推荐信息或者购买所述待推荐信息对应的商品;当所述互动概率为1时,表明通过MLP网络模型对所述第一特征数据、所述第二特征数据和所述第三特征数据进行加权融合处理后,计算出的结果表明所述用户会与所述待推荐信息进行互动,即用户会点击阅读所述待推荐信息或者购买所述待推荐信息对应的商品。
在另一些实施例中,所述互动概率可以取值0到1,当所述互动概率的值较大时,表明所述用户与所述待推荐信息进行互动的可能性较大,当所述互动概率的值较小时,表明所述用户与所述待推荐信息进行互动的可能性较小。
步骤S404,根据所述互动概率,对所述推荐列表中的待推荐信息进行排序。
这里,可以根据每一待推荐信息对应的互动概率的大小,按照互动概率从大到小的顺序对推荐列表中的待推荐信息进行排序,得到排序后的推荐列表。
步骤S405,显示排序后的推荐列表。
这里,可以在用户的第一终端上显示所述排序后的推荐列表,也可以是按照所述排序后的推荐列表的顺序,在所述第一终端上依次显示所述待推荐信息。
在一些实施例中,当所述推荐列表中的待推荐信息较多,且所述用户在第一终端上设置有推荐数量阈值时,则按照所述推荐列表的顺序,依次将所述推荐列表中所述推荐数量阈值的待推荐信息显示在所述第一终端上;当所述推荐列表中具有互动概率为0或者小于预设阈值的待推荐信息时,不在所述第一终端上显示所述待推荐信息,即仅在第一终端上显示互动概率大于等于所述预设阈值的待推荐信息。
这里以社交软件中的看一看为例,对本申请实施例所提供的信息推荐方法的场景进行说明:如图4B所示,是本申请实施例提供的信息推荐方法的界面图,在用户U1的第一终端上运行有社交软件应用(APP,Application)的看一看服务,用户U1的好友U2和U3阅读了文章A1,好友U4阅读了文章A2,并且在文章A1和A2中均点击了在看,因此,服务器将文章A1和A2确定为所述待推荐信息,并且分别确定文章A1和A2与用户U1之间的互动概率。在确定所述互动概率时,以文章A1为例,分别获取文章A1在至少一个信息维度上的第一特征数据,其中,所述信息维度可以是预设时间段内(例如,最近一周或者最近一个月)点击过文章A1的用户、文章A1的标签、文章A1所属的领域、文章A1中的关键词等;并且,获取文章A1的推荐用户U2和U3在至少一个推荐维度上的第二特征数据,其中,所述推荐维度可以是用户U2和U3所学的专业、所从事的工作与文章A1之间的关系等;以及,获取用户U1自身在至少一个被推荐维度上的第三特征数据,其中,所述被推荐维度可以是用户U1所关注的公众号、兴趣爱好、预设时间段内(例如,最近一周或者最近一个月)所点击的文章所属的领域和用户U1的好友的特征信息等;然后,对所获取到的所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到用户U1与文章A1之间的互动概率P1。对于文章A2,与文章A1相同,也获取在至少一个信息维度上的第一特征数据、获取文章A2的推荐用户U4在至少一个推荐维度上的第二特征数据、以及获取用户U1自身在至少一个被推荐维度上的第三特征数据,然后,对所获取到的所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到用户U1与文章A2之间的互动概率P2。最后,比较互动概率P1和P2的大小,当所述P1大于P2时,将文章A1排序于文章A2之前,在第一终端的当前界面401上,依次显示文章A1和文章A2。
当然,在其他应用场景下,所述待推荐信息还可以是商品的购买链接,所述信息推荐应用可以是购物APP,当用户的好友在购物APP上购买了某一商品之后,则该购物APP的服务器可以将该商品的购买链接作为所述待推荐信息推荐给用户。因此,可以确定用户与至少一个购买链接之间的互动概率,并根据所述互动概率,对所述至少一个购买链接进行排序,并基于排序结果依次在用户的第一终端上显示所述至少一个购买链接。
本申请实施例提供的信息推荐方法,由于对所获取的待推荐信息的第一特征数据、联系人的第二特征数据和用户的第三特征数据进行MLP融合处理,因此能够准确的得到所述用户与所述待推荐信息之间的互动概率,如此,根据所述互动概率对推荐列表中的推荐信息进行排序,使互动概率较高的待推荐信息位于所述推荐列表靠前的位置,从而得到更加符合用户互动习惯的推荐列表,能够对用户进行准确的信息推荐。
在一些实施例中,所述服务器可以是用户的终端(例如,上述图1中的第一终端和第二终端)上所运行的信息推荐应用的服务器,所述第一终端为用户的终端,所述第二终端为所述用户的好友(即联系人)的终端,所述第二终端可以为一个或多个。本申请实施例中,还可以通过所述第一终端和所述第二终端实现本申请实施例的信息推荐方法,如图5所示,是本申请实施例提供的信息推荐方法的一个可选的流程示意图,以所述第二终端有两个为例(图5中示例性的示出了第二终端A1和第二终端A2),所述方法包括以下步骤:
步骤S501,第二终端获取用户的互动操作,根据用户的互动操作确定待推荐信息。
这里,所述互动操作可以是对信息的点击操作、评论操作、点赞操作、对信息中内容的更新操作或修订操作、查阅操作和支付操作等任意一种或多种操作方式。当用户对信息进行互动操作时,将用户进行互动操作的信息确定为所述待推荐信息。
本申请实施例中,可以是第二终端A1获取自身用户在所述第二终端A1上的互动操作,根据用户的互动操作确定第二终端A1的待推荐信息;第二终端A2获取自身用户在所述第二终端A2上的互动操作,根据用户的互动操作确定第二终端A2的待推荐信息。
步骤S502,第二终端将所述待推荐信息发送给第一终端。
这里,每一第二终端将自身所获取的待推荐信息发送给第一终端。第一终端在接收到待推荐信息时,同时获取发送所述待推荐信息的第二终端的标识,当多个第二终端对同一待推荐信息进行互动操作时,第一终端接收到的所述待推荐信息对应有多个第二终端的标识。
步骤S503,第一终端根据第二终端A1和第二终端A2分别发送的待推荐信息,形成推荐列表。
这里,第一终端将接收到的待推荐信息整理形成推荐列表,所述推荐列表中包括至少一个待推荐信息和与每一待推荐信息对应的第二终端的标识,当多个第二终端均向所述第一终端发送同一待推荐信息时,在所述推荐列表中,所述待推荐信息对应有多个第二终端的标识。
步骤S504,第一终端获取所述推荐列表中每一待推荐信息的第一特征数据。
这里,所述第一特征数据为用于描述所述待推荐信息的数据,所述第一特征数据是基于至少一个信息维度的数据。
步骤S505,第一终端获取分享每一所述待推荐信息对应的联系人的第二特征数据、和用户自身的第三特征数据。
这里,所述第二特征数据为用于描述对应联系人的数据,所述第二特征数据是基于至少一个推荐维度的数据;所述第三特征数据为用于描述用户自身的数据,所述第三特征数据是基于至少一个被推荐维度的数据。
步骤S506,第一终端对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率。
这里,第一终端将获取到的第一特征数据、第二特征数据和第三特征数据输入至预设的MLP网络模型中,通过MLP网络模型中的数据融合函数,对第一特征数据、第二特征数据和第三特征数据进行加权融合处理,从而得到用户与待推荐信息之间的互动概率。其中,所述用户与所述待推荐信息之间的互动概率用于描述所述用户与所述待推荐信息之间会进行互动的可能性大小。
步骤S507,第一终端根据所述互动概率,对所述推荐列表中的待推荐信息进行排序。
步骤S508,在用户的第一终端上显示排序后的推荐列表。
这里,在所述第一终端上,可以显示排序后的推荐列表中的全部待推荐信息,也可以显示部分待推荐信息。当显示部分待推荐信息时,可以将所述推荐列表中满足预设条件的待推荐信息显示在所述第一终端的当前界面上。其中,所述预设条件可以是推荐数量条件和互动概率条件,所述推荐数量条件是指预设推荐数量阈值,在显示待推荐信息时,是从所述推荐列表的起始位置开始,确定个数为推荐数量阈值的待推荐信息为目标待推荐信息,并将目标待推荐信息显示于第一终端的当前界面上,作为对所述用户的推荐信息进行推荐;所述互动概率条件是指将互动概率大于等于预设阈值的待推荐信息显示于第一终端的当前界面上,作为对所述用户的推荐信息。
本申请实施例提供的信息推荐方法,第一终端获取至少一个第二终端发送的待推荐信息,形成推荐列表,并对推荐列表中的待推荐信息的第一特征数据、联系人的第二特征数据和用户的第三特征数据进行MLP融合处理,因此能够准确的得到所述用户与所述待推荐信息之间的互动概率,如此,根据所述互动概率对推荐列表中的推荐信息进行排序,使互动概率较高的待推荐信息位于所述推荐列表靠前的位置,从而得到更加符合用户互动习惯的推荐列表,能够对用户进行准确的信息推荐。
基于图4或图5,如图6A所示,是本申请实施例提供的信息推荐方法的一个可选的流程示意图,在一些实施例中,步骤S403或步骤S506中,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,可以通过以下步骤实现:
步骤S601,对所述第一特征数据和所述第二特征数据,分别与所述第三特征数据进行聚合处理,对应得到第一聚合向量和第二聚合向量。
这里,将第一特征数据与第三特征数据进行聚合处理,得到第一聚合向量,所述第一聚合向量用于描述所述待推荐信息与所述用户之间的关系;将第二特征数据与第三特征数据进行聚合处理,得到第二聚合向量,所述第二聚合向量用于描述所述联系人与所述用户之间的关系。
本申请实施例中,通过两次聚合处理,将待推荐信息的特征数据和联系人的特征数据分别与用户的特征数据聚合,形成了能够分别描述待推荐信息与用户之间关系、联系人与用户之间关系的第一聚合向量和第二聚合向量,从而实现了将待推荐信息和联系人与用户的显性连接关系通过向量的形式来隐性表征。
步骤S602,对所述第一聚合向量和所述第二聚合向量进行所述MLP融合处理,得到所述互动概率。
这里,采用MLP网络模型实现所述MLP融合处理,分别将所述第一聚合向量和所述第二聚合向量输入至一个全连接的MLP网络模型中,通过所述MLP网络模型中的全连接层(即MLP中的隐层)实现对所述第一聚合向量和所述第二聚合向量的融合处理,将所述第一聚合向量和所述第二聚合向量加权融合,从而得到所述MLP网络模型的输出值,即为所述互动概率。
基于图4或图5,如图6B所示,是本申请实施例提供的信息推荐方法的一个可选的流程示意图,在一些实施例中,步骤S403或步骤S506中,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,还可以通过以下步骤实现:
步骤S611,将所述第二特征数据依次与所述第一特征数据和所述第三特征数据进行聚合处理,得到第三聚合向量。
这里,将所述第二特征数据与第一特征数据聚合处理之后,将聚合处理所得到的向量再与第三特征数据进行聚合处理,得到所述第三聚合向量,所述第三聚合向量用于描述所述待推荐信息、联系人和所述用户之间的关系。
本申请实施例中,通过两次聚合处理,将联系人的特征数据依次与待推荐信息的特征数据、用户的特征数据进行聚合,形成了能够描述所述待推荐信息、联系人和所述用户之间的关系的第三聚合向量,从而实现了将待推荐信息和联系人与所述用户的显性连接关系通过向量的形式来隐性表征。
步骤S612,对所述第一特征数据、所述第三特征数据和所述第三聚合向量进行所述MLP融合处理,得到所述互动概率。
这里,采用MLP网络模型实现所述MLP融合处理,分别将第一特征数据、所述第三特征数据和所述第三聚合向量输入至一个全连接的MLP网络模型中,通过所述MLP网络模型中的全连接层实现对所述第一特征数据、所述第三特征数据和所述第三聚合向量的融合处理,将所述第一特征数据、所述第三特征数据和所述第三聚合向量依次加权融合,从而得到所述MLP网络模型的输出值,即为所述互动概率。
基于图4,如图7所示,是本申请实施例提供的信息推荐方法的一个可选的流程示意图,在一些实施例中,步骤S401中获取所述推荐列表中每一待推荐信息的第一特征数据,可以通过以下步骤实现:
步骤S701,获取每一所述待推荐信息对应的信息维度集合。
这里,所述信息维度集合中包括至少一个信息维度,所述信息维度可以是在预设时间段内与所述待推荐信息互动过的用户、待推荐信息的标签、待推荐信息所属的领域、待推荐信息中的关键词和待推荐信息的属性信息等。
步骤S702,确定所述待推荐信息在对应信息维度集合中的每一信息维度上的待推荐参数。
这里,在每一信息维度上可以具有至少一个待推荐参数,例如,当所述待推荐信息为文章时,且当所述信息维度是互动用户维度(即,预设时间段内与所述待推荐信息互动过的用户)时,则在预设时间段内与文章互动过的用户可以是一个或多个,因此,可以获取与文章互动过的每一用户的参数,作为所述文章在所述互动用户维度上的待推荐参数。
步骤S703,对每一所述信息维度上的待推荐参数进行聚合处理,得到所述待推荐信息的第一特征数据。
这里,所述聚合处理可以是对所述待推荐参数进行连接处理,将每一信息维度上的待推荐参数连接形成所述第一特征数据。
请继续参照图7,所述方法还可以包括以下步骤:
步骤S711,获取每一所述联系人对应的推荐维度集合。
这里,所述推荐维度集合中包括至少一个推荐维度,所述推荐维度包括但不限于以下至少之一:联系人分组、用户与联系人联系的亲密度、联系人所学专业、联系人的兴趣爱好、联系人所关注的领域和用户与联系人的互动频率等。
步骤S712,确定所述联系人在对应的推荐维度集合中的每一推荐维度上的推荐参数。
这里,所述联系人为一个或多个,当所述联系人为多个时,多个联系人均与所述待推荐信息进行过互动,即多个联系人均分享了所述待推荐信息。
本申请实施例中,确定每一联系人在每一推荐维度上的推荐参数,例如,当分享所述待推荐信息的联系人包括U1、U2和U3,则可以分别获取U1、U2和U3各自对应的联系人分组,用户与U1、U2和U3各自对应的联系亲密度、U1、U2和U3各自对应的所学专业,U1、U2和U3各自对应的兴趣爱好,U1、U2和U3各自对应的所关注的领域,用户与U1、U2和U3各自对应的互动频率等,并将所获取的这些信息作为所述推荐参数。
步骤S713,对每一所述推荐维度上的推荐参数进行聚合处理,得到对应联系人的所述第二特征数据。
这里,所述聚合处理可以是对所述推荐参数进行连接处理,将每一推荐维度上的推荐参数连接形成所述第二特征数据。
请继续参照图7,所述方法还可以包括以下步骤:
步骤S721,获取所述用户对应的被推荐维度集合。
这里,所述被推荐维度集合中包括至少一个被推荐维度,所述被推荐维度为用于描述用户自身的维度,所述被推荐维度包括但不限于以下至少之一:所关注的公知号、所关注的好友、所关注好友的专业、预设时间段内互动的信息所属的领域等。
步骤S722,确定所述用户在所述被推荐维度集合中的每一被推荐维度上的被推荐参数。
这里,确定所述用户在每一被推荐维度上的被推荐参数,例如,确定用户所关注的公知号、用户所关注的好友、用户所关注好友的专业、用户在预设时间段内互动的信息所属的领域等,并将所获取的这些信息作为所述被推荐参数。
步骤S723,对每一所述被推荐维度上的被推荐参数进行聚合处理,得到所述用户自身的第三特征数据。
这里,所述聚合处理可以是对所述被推荐参数进行连接处理,将每一被推荐维度上的被推荐参数连接形成所述第三特征数据。
本申请实施例提供的信息推荐方法,在每一信息维度上获取待推荐参数,在每一推荐维度上获取推荐参数,在每一被推荐维度上获取被推荐参数,从而对获取的待推荐参数、推荐参数和被推荐参数分别进行聚合处理,分别得到所述第一特征数据、第二特征数据和第三特征数据。如此,由于考虑了待推荐信息、联系人和用户在不同维度上的参数,从而形成聚合了多维参数的特征数据,得到更加准确的第一特征数据、第二特征数据和第三特征数据,能够更加准确对待推荐信息、联系人和用户的画像进行描绘。
在一些实施例中,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,可以采用社交影响力网络模型来实现,即通过社交影响力网络模型对输入的待推荐信息的第一特征数据、每一所述待推荐信息对应的联系人的第二特征数据和用户自身的第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率,并输出所述互动概率。
这里,提供一种社交影响力网络模型的训练方法,如图8所示,是本申请实施例提供的社交影响力网络模型的训练方法的流程示意图,所述方法包括:
步骤S801,将样本数据中的待推荐信息、所述待推荐信息对应的联系人的标识和用户的标识分别输入至第一MLP网络模型中,对应得到第四特征数据、第五特征数据和第六特征数据。
这里,所述样本数据为进行模型训练的输入数据,所述样本数据包括待推荐信息、与所述待推荐信息对应的联系人信息和用户信息。
所述第一MLP网络模型为待训练的社交影响力网络模型的第一部分,所述第一MLP网络模型对输入的样本数据进行特征提取,得到待推荐信息、联系人信息和用户信息,并且,通过第一MLP网络模型中的全连接层对所述待推荐信息、联系人信息和用户信息进行全连接处理,得到对应于所述待推荐信息的第四特征数据、对应于所述联系人信息的第五特征数据和对应于所述用户信息的第六特征数据。需要说明的是,所述第四特征数据、第五特征数据和第六特征数据是所述第一MLP网络模型的输出数据。
步骤S802,将所述第四特征数据、第五特征数据和第六特征数据分别输入至第二MLP网络模型中,得到所述用户与所述待推荐信息之间的互动概率。
这里,所述第二MLP网络模型是待训练的社交影响力网络模型的第二部分,所述第二MLP网络模型和所述第二MLP网络模型串行连接,其中,所述第四特征数据、第五特征数据和第六特征数据是所述第二MLP网络模型的输入数据。
本申请实施例中,将所述第四特征数据、第五特征数据和第六特征数据分别输入至第二MLP网络模型中,通过第二MLP网络模型中的全连接层对所述第四特征数据、第五特征数据和第六特征数据进行全连接处理,得到所述第二MLP网络模型的输出值,即为用户与所述待推荐信息之间的互动概率。
步骤S803,将所述互动概率输入至预设损失模型中,得到损失结果。
这里,所述预设损失模型用于将所述互动概率与预设概率进行比较,得到所述损失结果。其中,所述预设损失模型可以通过计算所述互动概率与所述预设概率之间的距离,将所述距离确定为所述损失结果。
步骤S804,根据所述损失结果,对所述第一MLP网络模型和所述第二MLP网络模型进行修正,得到所述社交影响力网络模型。
这里,当所述距离大于预设阈值时,则所述损失结果表明当前的社交影响力网络模型不能对用户与待推荐信息之间的点击概率进行准确预测,因此,需要对当前的社交影响力网络模型进行修正,则可以根据所述距离,对所述第一MLP网络模型和所述第二MLP网络模型进行修正,直至所述社交影响力网络模型输出的互动概率与预设概率之间的距离满足预设条件时,将对应的社交影响力网络模型确定为训练好的社交影响力网络模型。
当所述距离小于等于预设阈值时,则所述损失结果表明当前的社交影响力网络模型能够对用户与待推荐信息之间的点击概率进行准确预测,因此,将当前的社交影响力网络模型确定为训练好的社交影响力网络模型。
本申请实施例提供的模型训练方法,由于依次通过第一MLP网络模型和第二MLP网络模型,对样本数据中的待推荐信息的第四特征数据、联系人的第五特征数据和用户的第六特征数据进行MLP融合处理,得到互动概率,并通过预设损失函数对互动概率进行判断,从而能够根据损失结果对第一MLP网络模型和第二MLP网络模型进行准确的修正,所得到的社交影响力网络模型能够准确的确定用户与待推荐信息之间的互动概率,从而使得采用该社交影响力网络模型实现信息推荐时,能够对用户进行准确的信息推荐,提高用户体验。
基于图8,如图9所示,是本申请实施例提供的社交影响力网络模型的训练方法的流程示意图,在一些实施例中,步骤S801可以通过以下步骤实现:
步骤S901,通过所述第一MLP网络模型的特征提取层提取所述待推荐信息在每一信息维度上的待推荐参数、所述联系人在每一推荐维度上的推荐参数和所述用户在每一被推荐维度上的被推荐参数。
步骤S902,通过所述第一MLP网络模型的参数聚合层分别对所述信息维度上的待推荐参数进行聚合处理,得到所述第四特征数据;对所述推荐维度上的推荐参数进行聚合处理,得到所述第五特征数据;对所述被推荐维度上的被推荐参数进行聚合处理,得到所述第六特征数据。
请继续参照图9,步骤S802可以通过以下步骤实现:
步骤S903,通过所述第二MLP网络模型的参数聚合层,将所述第五特征数据依次与所述第四特征数据和所述第六特征数据进行聚合处理,得到第四聚合向量。
步骤S904,通过所述第二MLP网络模型的融合处理层,对所述第四特征数据、所述第六特征数据和所述第四聚合向量进行MLP加权融合处理,得到所述互动概率。
本申请实施例再提供一种信息推荐方法,对于用户来说,还可以将自身进行互动的信息作为待推荐信息推荐给用户的好友,即将待推荐信息分享给所述联系人,如图10所示,是本申请实施例提供的信息推荐方法的一个可选的流程示意图,所述方法包括以下步骤:
步骤S1001,获取用户互动的待推荐信息的第一特征数据。
这里,所述待推荐信息可以是用户点击“在看”的文章,当用户对当前所阅读的文章点击“在看”时,则服务器将该文章确定为所述待推荐信息。
所述第一特征数据为用于描述待推荐信息的数据,第一特征数据是基于至少一个信息维度的数据,所述信息维度为用于描述所述待推荐信息属性的维度。
步骤S1002,获取与所述用户具有好友关系的联系人的第二特征数据、和所述用户的第三特征数据。
这里,所述用户的联系人可以是与所述用户具有好友关系的用户,所述第二特征数据为用于描述对应联系人的数据,所述第二特征数据是基于至少一个推荐维度的数据。所述第三特征数据为用于描述用户自身的数据,所述第三特征数据是基于至少一个被推荐维度的数据。
步骤S1003,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述联系人与所述待推荐信息之间的互动概率。
步骤S1004,根据所述互动概率,向所述联系人推荐所述待推荐信息。
在一些实施例,在确定出所述互动概率之后,将互动概率满足预设条件的待推荐信息推荐给所述联系人,其中,满足预设条件的互动概率可以是所述互动概率大于预设互动概率阈值。
在另一些实施例中,在确定出所述互动概率之后,当所述待推荐信息为多个时,还可以按照每一待推荐信息的互动概率对全部待推荐信息进行排序,得到排序后的推荐列表,然后按照所述排序后的推荐列表中的待推荐信息的顺序,依次向联系人推荐所述待推荐信息,或者在所述联系人的第二终端上显示所述排序后的推荐信息。
本申请实施例提供的信息推荐方法,由于对所获取的待推荐信息的第一特征数据、联系人的第二特征数据和用户的第三特征数据进行MLP融合处理,因此能够准确的得到所述联系人与所述待推荐信息之间的互动概率,如此,根据所述互动概率对联系人进行信息推荐时,能够得到更加符合联系人互动习惯的推荐列表,从而能够对联系人进行准确的信息推荐。
需要说明的是,本申请实施例中对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,也可以采用所述社交影响力网络模型实现,其中所述社交影响力网络模型的训练方法与上述任一实施例中所提供的训练方法相同,本申请实施例不再赘述。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种信息推荐方法,通过社交影响力网络模型(SIAN,SocialInfluence Attentive Neural network),可以对于朋友喜欢内容的推荐(F LR,Friends-Like Recommendation)问题预测用户与待推荐信息之间的交互概率,同时通过网络模型的中间权重输出,可以对用户的好友、公众号、待推荐信息的内容等方面来进行影响力大小的对比评估。
在看一看功能中,朋友在看是一种区别于传统推荐系统的信息流产品,它最大的特点在于曝光内容(对应上述的待推荐信息)来源于好友的点击“在看”并且在用户浏览时会显示出已点“在看”的好友列表。在朋友在看中,以用户与好友点击在看的曝光内容产生互动(例如,点击、评论等)行为来评估对曝光内容进行召回和排序等工作的收益。与传统推荐系统主要以用户兴趣与曝光内容是否匹配来进行内容的召回、排序不同,朋友在看场景下需要着重考虑社交好友的因素来评估召回排序等工作。
以上述场景为基础,抽象出FLR问题,并提出一种SIAN网络模型的解决方案来预测用户和曝光内容之间的互动概率。SIAN主要包含关注特征聚合器(AFA,Attentive FeatureAggregator)和社交影响耦合器(SIC,Social Influe nce Coupler)两部分。其中,AFA通过节点级(node-level)的注意力聚合来分别融合好友信息、关注公众号信息、用户的历史交互信息,然后通过类型级(t ype-level)的注意力聚合来汇总得到用户嵌入信息(userembedding)表达,即上述的第三特征信息,同时,AFG还可以采用相同的方式获取到曝光内容的第一特征信息;在SIC部分,将曝光好友(对应上述的联系人)分别和曝光内容进行融合,然后使用注意力机制来评估对目标用户的影响,得到所述第二特征信息。使用以上方法得到所述第一特征数据、所述第二特征数据和所述第三特征数据之后,通过向量融合、MLP融合处理等方法来得到互动概率并输出。本申请实施例提供的信息推荐方法,通过SIAN网络模型,可以针对FLR问题,预测用户和曝光内容的交互概率,同时通过网络的中间权重输出,可以对用户的好友、公众号、曝光内容等方面来进行影响力大小的对比评估。
需要说明的是,对于FLR问题,相关技术中尚无太多的技术方案研究,类比于传统的推荐系统信息流产品,更多的则是直接将传统推荐产品中的召回、排序等策略直接平移到FLR问题中。在传统推荐系统中,召回一般是使用基于用户的协同过滤算法(UserCF,User-based Collaborative Filtering algorithm)和基于物品的协同过滤算法(Itemcf,Item-based Collaborative Filtering algorit hm)等方法,来召回与用户兴趣和行为等相关的多条曝光内容,排序一般使用逻辑回归(LR,Logistic Regression)、因子分解机(FM,Factorization Machi ne)、深度学习因子分解机(DeepFM,Deep FactorizationMachine)以及近年来常用的多层深度网络来解决点击率(CTR,Click-Through Rate)预估问题。
推荐系统的CTR算法在解决传统信息流产品的排序问题时效果很好,但如果直接平移到本申请实施例提到的FLR问题中会有一些问题。首先FLR召回的内容并不是通过UserCF和Itemcf等算法进行召回的,而是由好友通过点击“喜欢”或“在看”来主动推荐的,这里单纯从兴趣维度来说不一定完全符合用户的兴趣。另外在预测互动概率时,CTR算法会更偏重与用户兴趣与曝光内容的匹配预估,但是当有好友列表曝光显示时,用户是否与曝光内容产生互动,除了受到曝光内容的影响外,还有很大的概率受到好友的影响。例如,如果曝光好友中有用户特别关注的好友,那么会极大地提高用户与曝光内容交互的概率。因为CTR算法的特征维度极高,在传统的CTR算法中直接将曝光好友作为一项基础特征作为输入,很难对最后的预估概率产生较大影响,也就很难体现出与传统推荐系统的差异。而在本申请实施例提出的基于SIAN网络模型的方案中,通过在AFA和SIC中结合用户社交好友信息和曝光好友信息,着重加强了社交因素在互动概率预估中的作用,最后不仅能对用户和曝光内容发生互动的概率进行预估,还能输出好友、曝光内容、关注公众号等多重维度分别对用户自己的影响强度。
图11是本申请实施例的信息推荐方法的界面图,如图11所示,SIAN网络模型应用到的产品可以例如看一看产品中的朋友在看,在当前界面1101上显示有曝光内容1102,朋友在看中曝光内容1102的文章来自于好友点击“在看”的内容,在向用户曝光时,会同时着重显示已点击“在看”的曝光好友1103,用户在这个场景下,可能会以点击文章、点击在看、评论等方式来与曝光内容1102产生互动行为。
基于图11中的场景,本申请实施例抽象出的FLR问题如图12A和12B所示,图12A中显示的场景是用户U1正在为一篇他的朋友(例如,好友U2和U3)与之互动的文章(好友U2和U3喜欢或分享等的文章)而被推荐。在这个场景中,只有与文章进行过交互的朋友才会在文章下面显示,并且只推荐由朋友交互的文章。向用户U1推荐文章A1时,在文章下方表示用户的朋友圈。
请参照图12B,是FLR问题的关系维度图,在所述关系维度图中,包括好友层1201、第二好友层1202和其他用户层1203,其中所述第一好友层1201中包括用户U1的好友中与文章A1进行过交互的好友U21、U22和U23,所述第二好友层1202中包括用户U1的好友中没有与文章A1进行过交互的好友U31和U32,所述其他用户层1203中包括与用户U1不具有好友关系的陌生人中,与文章A1进行过交互的其他用户U41、U42和U43。图12B中的“?”表示求解用户U1与文章A1之间的互动概率。
基于图12A和图12B所抽象出的FLR问题,本申请实施例提供一种SIAN网络模型,如图13所示,是本申请实施例提供的SIAN网络模型的结构示意图。下面将结合图13的SIAN网络模型对本申请实施例的信息推荐方法进行说明。
所述SIAN网络模型1300包括关注特征聚合器1301、社交影响耦合器1302和预测器1303。关注特征聚合器1301通过节点级和类型级的关注聚合器,分层异构聚合近邻特征,并输出用户和曝光内容的潜在表示。社交影响耦合器1302将有影响力的朋友的影响与曝光内容的影响进行耦合,从而将显性的社会影响编码为隐性表征。最后,通过预测器1303融合用户、曝光内容和社会影响的潜在表征,预测用户与曝光内容之间的互动概率。
第一方面,对于关注特征聚合器1301,这部分包括节点级的关注聚合器和类型级的关注聚合器。
1)在节点级的关注聚合器中,首先通过以下公式(1-1)获取用户u的多种邻居特征集合Nu为:
其中,N
u表示用户u的邻居特征集合;|T|表示邻居特征集合中的邻居类型的数量,T为整数,| |表示绝对值;
表示用户u的类型为t
|T|的邻居特征集合,例如,
表示用户u的类型为t
1的邻居特征集合,
表示用户u的类型为t
2的邻居特征集合;∪表示并集符号。
需要说明的是,在每一类型t(包括上述的t1、t2……t|T|)中,具有至少一个邻居特征k。举例来说,对于用户u,可以有三个类型的邻居特征,其中三个类型分别为好友类型、关注公众号类型、历史阅读文章类型;在每一类型中又可以包括多个邻居特征,例如,在好友类型中,包括好友1、好友2和好友3,均为所述好友类型中的邻居特征,在关注公众号类型中,包括用户u所关注的公众号1、公众号2和公众号2,均为所述关注公众号类型中的邻居特征,在历史阅读文章类型中,包括用户u在上一周之内所阅读的文章1、文章2和文章3,均为所述历史阅读文章类型中的邻居特征。那么,对应地,所述邻居特征集合可以包括好友集合、关注公众号集合和历史阅读文章集合等。
对于邻居特征集合中的每个邻居特征,采用以下公式(1-2)至(1-4)进行信息融合:
第一步,通过以下公式(1-2)计算α'ku:
其中,α′
ku表示聚合邻居特征k的特征向量与用户u的特征向量后的权重,例如,α′
ku可以表示聚合了好友1的特征向量与用户u的特征向量后的权重;f表示线性整流函数(ReLU,Rectified Linear Unit),是一个具有ReLu功能的双层神经网络;x
k表示邻居特征k的特征向量;x
u表示用户u的特征向量;
表示两个向量之间的连接运算,例如,
表示向量x
k与向量x
u之间的连接运算。
第二步,通过以下公式(1-3),对类型t的所有邻居特征,使用逻辑回归模型(softmax)函数计算权重αku:
其中,α
ku表示聚合了类型t中的全部邻居特征的权重α′
ku后所得到的权重,例如,α
ku表示聚合了好友类型中的三个好友的权重α′
ku后所得到的权重;exp表示以自然常数e为底的指数函数;k'表示类型t中的第k'个邻居特征;
表示用户u的类型为t的所有邻居特征集合;α'
k'u表示第k'个邻居特征经过上述第一步计算得到的权重;∑表示求和。
第三步,通过以下公式(1-4)对邻居集合做融合:
其中,
表示用户u的类型为t的所有邻居特征的融合信息向量表达,例如,
表示用户u的好友类型中的所有好友的融合信息向量表达;σ表示sigmoid函数;W
P表示计算
的神经网络中的权重因子;k表示类型t中的邻居特征;b
p表示计算
的神经网络中的偏移系数。
循环采用以上公式(1-1)至(1-4),可以计算得到用户u的多个类型的融合信息向量,表示为
其中,
表示用户u的类型为t
1的所有邻居特征的融合信息向量表达,
表示用户u的类型为t
2的所有邻居特征的融合信息向量表达,……,
表示用户u的类型为t
|T|的所有邻居特征的融合信息向量表达。例如,
表示用户u的好友类型中的所有好友的融合信息向量表达,
表示用户u的关注公众号类型中的所有公众号的融合信息向量表达,
表示用户u的历史阅读文章类型中的所有文章的融合信息向量表达。
2)在类型级的关注聚合器中,通过以下公式(1-5)至(1-7)的注意力机制来获取用户u的嵌入表达(对应上述第三特征数据):
第一步,将所有类型的融合信息向量连接起来,通过以下公式(1-5)表示为:
其中,β′
tu表示连接所有类型的融合信息向量后的权重;a
t表示类型感知的注意力向量;
表示连接所有类型的融合信息向量后的连接向量表示。
第二步,通过以下公式(1-6),对所有邻居特征的融合信息向量,计算权重βtu:
其中,βtu表示融合了类型t中的全部邻居特征的权重β′tu后所得到的权重;t'表示邻居类型;β′t′u表示邻居类型为t'的经过上述第一步计算所得到的权重。
使用上述公式(1-5)和(1-6),可以算出每种类型邻居特征的权重信息。
第三步,通过以下公式(1-7)对邻居集合做融合:
其中,hu表示用户u的融合了所有邻居类型的邻居特征之后的向量表达,例如,hu表示用户u的融合好友类型、关注公众号类型和历史阅读文章类型的邻居特征之后的向量表达,其中,hu是用户u的信息的隐性表征;Wh表示计算hu的神经网络中的权重因子;bh表示计算hu的神经网络中的偏移系数。
第二方面,对于社交影响耦合器1302,这部分包括耦合的影响表示和关注的影响程度两个部分。
1)在耦合的影响表示中,首先通过以下公式(1-8)表示用户u的每个好友v和曝光内容的结合信息:
Cu(i)={v|<u,v>∈εF∩<u,i>∈εR} (1-8);
其中,Cu(i)表示用户u的每个好友v和曝光内容的结合信息,i表示曝光内容(item);εF表示用户节点之间的关系,例如,好友关系,这里可以表示用户u和好友v是好友;εR表示表示好友与曝光内容i已发生的交互关系,例如,一个曝光内容i上显示三个好友,这里表示有三个好友对这个曝光内容i点击在看;∩表示交集符号。
进一步地,可以通过以下公式(1-9)进行信息融合:
cv=σ(Wcφ(hv,hi)+bc) (1-9);
其中,cv表示融合了好友v和曝光内容i的向量表示;hv表示好友v的聚合表示;hi表示曝光内容i的聚合向量表示;φ表示融合函数;Wc表示表示计算cv的神经网络中的权重因子;bc表示计算cv的神经网络中的偏移系数。
2)在关注的影响程度部分中,使用以下公式(1-10)至(1-13)得到社会影响耦合器1302部分的向量表达:
zv=σ(W1φ(cv,hu)+b1) (1-10);
其中,zv表示第一个全连接层的输出,在整个网络中可以是一个中间变量;hu表示用户u的聚合向量表示;W1表示计算zv的神经网络中的权重因子;b1表示计算zv的神经网络中的偏移系数。
d'v=σ(W2zv+b2) (1-11);
其中,d'v表示第二个全连接层的输出,在整个网络中也可以是一个中间变量;W2表示计算d'v的神经网络中的权重因子;b2表示计算d'v的神经网络中的偏移系数。
本申请实施例中,通过上述公式(1-10)和(1-11)的两层全连接神经网络,使cv,hu进行合并。
其中,dv表示表示上述每个好友与曝光内容连接信息的权重;v'表示好友与曝光内容的连接信息;d′v′表示根据v'计算得到的好友与曝光内容连接信息的权重。
其中,hc表示社会影响耦合器的输出向量。需要说明的是,图13中的数字0.32、0.47和0.21表示计算hc的权重系数,当然,权重系数还可以取其他任意值,本申请实施例不做限定。
第三方面,对于预测器1303这部分,融合关注特征聚合器1301部分得到的用户u的聚合向量表示hu、社交影响耦合器1302部分得到的社会影响耦合器的输出向量hc和曝光内容i的聚合向量表示hi,通过多层MLP得到预估概率,并且,将预估概率与预设标签值做交叉熵得到损失值,进而根据所述损失值进行模型的优化学习。
这里,可以采用以下公式(1-14)至(1-17)实现对模型的优化学习:
ho2=σ(Wo2ho1+bo2) (1-15);
需要说明的是,整个网络中存在多个全连接层,其中,h
o1表示第三个全连接层的输出,在整个网络中也可以是一个中间变量;h
o2表示第四个全连接层的输出,在整个网络中也可以是一个中间变量;
表示针对用户u和曝光内容i的模型预测值;W
o1表示计算h
o1的神经网络中的权重因子;b
o1表示计算h
o1的神经网络中的偏移系数;W
o2表示计算h
o2的神经网络中的权重因子;b
o2表示计算h
o2的神经网络中的偏移系数;W
y表示计算
的神经网络中的权重因子;b
y表示计算
的神经网络中的偏移系数;sigmoid表示sigmoid函数。
本申请实施例中,通过公式(1-14)为对三个向量进行合并,然后,通过公式(1-15)和(1-16)进行两层全连接处理,使用sigmoid函数输出概率值做预测。然后,采用以下公式(1-17)进行交叉熵运算,得到损失值:
其中,ζ表示损失值;y
ui表示针对用户u和曝光内容i的后验数据;λ表示L2正则化系数;ε表示训练样本集合,针对训练样本的每个用户与曝光内容之间的行为来汇总损失函数值;
表示L2正则化项,表示整体模型的参数。
本申请实施例提供SIAN模型架构能够针对FLR问题预估用户与曝光内容发生交互的概率,在预估出交互概率之后,根据交互概率通过排序等策略能够提升推荐系统中的交互相关的各项指标。除此之外,SIAN网络还能够输出好友、文章、公众号等维度的影响力,能够作为基础特征输出到社交相关的多项产品中。
下面继续说明本申请实施例提供的信息推荐装置354的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器350的信息推荐装置354中的软件模块可以是服务器300中的信息推荐装置,包括:
第一获取模块3541,用于获取推荐列表中每一待推荐信息的第一特征数据;其中,所述待推荐信息是与用户具有好友关系的联系人进行过互动的信息;
第二获取模块3542,用于获取互动每一所述待推荐信息对应的联系人的第二特征数据、和用户自身的第三特征数据;
第一融合处理模块3543,用于对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率;
排序模块3544,用于根据所述互动概率,对所述推荐列表中的待推荐信息进行排序;
显示模块3545,用于显示排序后的推荐列表。
在一些实施例中,所述第一融合处理模块还用于:对所述第一特征数据和所述第二特征数据,分别与所述第三特征数据进行聚合处理,对应得到第一聚合向量和第二聚合向量;对所述第一聚合向量和所述第二聚合向量进行所述MLP融合处理,得到所述互动概率。
在一些实施例中,所述第一获取模块还用于:获取每一所述待推荐信息对应的信息维度集合;确定所述待推荐信息在对应信息维度集合中的每一信息维度上的待推荐参数;对每一所述信息维度上的待推荐参数进行聚合处理,得到所述待推荐信息的第一特征数据。
在一些实施例中,所述装置还包括:第五获取模块,用于获取每一所述联系人对应的推荐维度集合;第一确定模块,用于确定所述联系人在对应的推荐维度集合中的每一推荐维度上的推荐参数;第一聚合处理模块,用于对每一所述推荐维度上的推荐参数进行聚合处理,得到对应联系人的所述第二特征数据。
在一些实施例中,所述装置还包括:第六获取模块,用于获取所述用户对应的被推荐维度集合;第二确定模块,用于确定所述用户在所述被推荐维度集合中的每一被推荐维度上的被推荐参数;第二聚合处理模块,用于对每一所述被推荐维度上的被推荐参数进行聚合处理,得到所述用户自身的第三特征数据。
在一些实施例中,所述第一融合处理模块还用于:将所述第二特征数据依次与所述第一特征数据和所述第三特征数据进行聚合处理,得到第三聚合向量;对所述第一特征数据、所述第三特征数据和所述第三聚合向量进行所述MLP融合处理,得到所述互动概率。
在一些实施例中,采用社交影响力网络模型,对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述用户与所述待推荐信息之间的互动概率。
在一些实施例中,所述社交影响力网络模型通过以下步骤训练得到:将样本数据中的待推荐信息、所述待推荐信息对应的联系人的标识和用户的标识分别输入至第一MLP网络模型中,对应得到第四特征数据、第五特征数据和第六特征数据;将所述第四特征数据、第五特征数据和第六特征数据分别输入至第二MLP网络模型中,得到所述用户与所述待推荐信息之间的互动概率;将所述互动概率输入至预设损失模型中,得到损失结果;根据所述损失结果,对所述第一MLP网络模型和所述第二MLP网络模型进行修正,得到所述社交影响力网络模型。
在一些实施例中,所述社交影响力网络模型通过以下步骤训练得到:通过所述第一MLP网络模型的特征提取层提取所述待推荐信息在每一信息维度上的待推荐参数、所述联系人在每一推荐维度上的推荐参数和所述用户在每一被推荐维度上的被推荐参数;通过所述第一MLP网络模型的参数聚合层分别对所述信息维度上的待推荐参数进行聚合处理,得到所述第四特征数据;对所述推荐维度上的推荐参数进行聚合处理,得到所述第五特征数据;对所述被推荐维度上的被推荐参数进行聚合处理,得到所述第六特征数据。
在一些实施例中,所述社交影响力网络模型通过以下步骤训练得到:通过所述第二MLP网络模型的参数聚合层,将所述第五特征数据依次与所述第四特征数据和所述第六特征数据进行聚合处理,得到第四聚合向量;通过所述第二MLP网络模型的融合处理层,对所述第四特征数据、所述第六特征数据和所述第四聚合向量进行MLP加权融合处理,得到所述互动概率。
在其他实施例中,所述存储器350中的信息推荐装置还可包括以下软件模块:第三获取模块,用于获取用户互动的待推荐信息的第一特征数据;第四获取模块,用于获取与所述用户具有好友关系的联系人的第二特征数据、和所述用户的第三特征数据;第二融合处理模块,用于对所述第一特征数据、所述第二特征数据和所述第三特征数据进行MLP融合处理,得到所述联系人与所述待推荐信息之间的互动概率;推荐模块,用于根据所述互动概率,向所述联系人推荐所述待推荐信息。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4A示出的方法。
在一些实施例中,存储介质可以是铁电存储器(FRAM,Ferromagnetic Ra ndomAccess Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read Only Me mory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。