内容项推荐方法、装置、服务器以及存储介质
技术领域
本公开涉及数据处理领域,特别涉及一种内容项推荐方法、装置、服务器以及存储介质。
背景技术
在网络技术飞速发展的今天,人们会通过智能设备上各种各样的内容项进行学***台的关注。
相关技术中,内容项推荐平台为了向用户推荐其感兴趣的内容项,往往会基于点击率预估模型预测用户点击某个内容项的概率,并将用户点击概率最高的内容项推荐给用户。
在采用上述内容项推荐方式进行内容项推荐时,用户可能会对推荐的内容项进行点击,但是点击后却发现对内容项的内容不感兴趣,长久以来会对用户体验产生负面影响,也即是采用点击率预估模型推荐的内容项不符合用户的喜好,内容项推荐效果不佳。
发明内容
本公开实施例提供了一种内容项推荐方法、装置、服务器以及存储介质,可以解决相关技术中内容项推荐效果不佳的问题。所述技术方案如下:
一方面,提供了一种内容项推荐方法,所述方法包括:
获取目标用户的用户特征向量和多个内容项的内容项特征向量;
将所述目标用户的用户特征向量和所述多个内容项的内容项特征向量输入到内容项推荐模型中,由所述内容项推荐模型预测所述目标用户对每个内容项进行每种交互行为的概率;
基于所述每种交互行为的概率,向所述目标用户推荐所述多个内容项中的目标内容项,所述目标内容项为符合推荐条件的内容项。
一方面,提供了一种内容项推荐装置,所述装置包括:
获取模块,用于获取目标用户的用户特征向量和多个内容项的内容项特征向量;
输入模块,用于将所述目标用户的用户特征向量和所述多个内容项的内容项特征向量输入到内容项推荐模型中;
预测模块,用于由所述内容项推荐模型预测所述目标用户对每个内容项进行每种交互行为的概率;
推荐模块,用于基于所述每种交互行为的概率,向所述目标用户推荐所述多个内容项中的目标内容项,所述目标内容项为符合推荐条件的内容项目标内容项。
在一种可能的实施方式中,所述预测模块包括:
第一获取单元,用于将所述目标用户的用户特征向量和每个内容项特征向量输入线性子模型中进行加权求和,得到每个所述内容项特征向量对应的第一向量;
第二获取单元,用于将所述目标用户的用户特征向量和所述每个内容项特征向量输入到多个深度学习子模型中,由所述深度学习子模型输出每个所述内容项特征向量对应的第二向量;
第三获取单元,用于将所述目标用户的用户特征向量和每个内容项特征向量输入到特征交叉子模型中,由所述特征交叉子模型进行特征交叉,得到每个所述内容项特征向量对应的第三向量;
确定单元,用于基于所述每个内容项特征向量对应的第一向量、所述每个内容项特征向量对应的第二向量和所述每个内容项特征向量对应的第二向量,确定所述目标用户对每个内容项进行每种交互行为的概率。
在一种可能的实施方式中,所述确定单元还用于将所述第一向量、所述第二向量以及所述第三向量进行加权求和,得到每种交互行为的预测信息,将所述每种交互行为的预测信息映射至目标数值区间,得到所述目标用户与每个内容项之间的每种交互行为的概率。
在一种可能的实施方式中,所述推荐模块还用于对每种交互行为的概率进行加权求和,得到每个内容项的推荐成功率,基于所述推荐成功率,从所述多个内容项中确定所述目标内容项,所述目标内容项为所述推荐成功率最高的内容项,将所述目标内容项推荐给所述目标用户。
在一种可能的实施方式中,所述推荐模块还用于基于所述目标内容项生成推荐页面,将所述推荐页面发送给所述目标用户的用户终端,由所述目标用户的用户终端将所述推荐页面项呈现给所述目标用户。
在一种可能的实施方式中,所述装置还包括:
模型生成模块,用于获取样本数据,所述样本数据包括样本用户的特征向量、所述样本用户与历史推荐信息之间的交互行为信息以及所述推荐信息的特征向量;
将所述样本用户的特征向量和所述历史推荐信息的特征向量输入到初始模型中;
由所述初始模型预测所述样本用户与所述历史推荐信息之间的多个交互行为的概率;
基于所述多个交互行为的概率和所述样本用户与历史推荐信息之间的交互行为信息之间的差别信息,调整所述初始模型的模型参数,直至所述初始模型的模型参数符合目标截止条件时,停止训练所述初始模型,将训练后的初始模型作为所述内容项推荐模型。
在一种可能的实施方式中,所述装置还包括:
更新模块,用于基于所述目标用户与所述目标内容项之间的交互行为信息,更新所述内容项推荐模型。
一方面,提供了一种服务器,所述服务器包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现所述内容项推荐方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述指令由处理器加载并执行以实现所述内容项推荐方法所执行的操作。
通过内容项推荐模型可以预测用户与待推荐视频之间的多种交互行为的概率,通过分别预测多种交互行为的概率,可以更加全面的判断用户是否对目标内容项感兴趣,将符合用户喜好的内容项推荐给用户,解决了仅通过点击率模型向用户推荐内容项的推荐效果不佳的问题。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种内容项推荐方法的实施环境示意图;
图2是本公开实施例提供的一种内容项推荐应用的截图;
图3是本公开实施例提供的“看一看”主界面的示意图;
图4是本公开实施例提供的一种内容项推荐方法的流程图;
图5是本公开实施例提供的一种内容项推荐模型的结构示意图;
图6是本公开实施例提供的一种内容项推荐模型的训练方法流程图;
图7是本公开实施例提供的一种内容项推荐装置的结构示意图;
图8是本公开实施例提供的一种服务器的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(machine learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识子模型使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
多目标学习模型:表示模型可以同时对多个目标进行学习,在本公开实施例中,内容项推荐模型就是由多目标学习模型训练得到的,该内容项推荐模型可以基于用户特征和内容项特征,预测用户与内容项之间的多种交互行为的概率,内容项推荐模型这种能够预测多种交互行为的概率的能力即体现了多目标学习模型的学习结果。
本公开实施例提供的方案涉及人工智能的多目标学习等技术,具体通过如下实施例进行说明:
图1是本发明实施例提供的一种内容项推荐方法的实施环境的示意图,参见图1,该实施环境中包括终端110和服务器140。
终端110通过无线网络或有线网络与服务器110相连。终端110可以是智能手机、平板电脑、便携计算机等设备。终端110安装和运行有支持内容项推荐技术的应用程序。该应用程序可以是社交应用类应用程序以及视频类应用程序等。示例性的,终端110是用户使用的终端,终端110中运行的应用程序内登录有用户账号。
终端110通过无线网络或有线网络与服务器140相连。
服务器140可以是云计算平台、虚拟化中心等。服务器140用于为内容项推荐技术的应用程序提供后台服务。可选地,服务器140承担主要内容项推荐工作,终端110承担次要内容项推荐工作;或者,服务器140承担次要内容项推荐工作,终端110承担主要内容项推荐工作;或者,服务器140或终端110分别可以单独承担内容项推荐工作。
可选地,服务器140包括:接入服务器、内容项推荐服务器和数据库。接入服务器用于为终端110提供接入服务。内容项推荐服务器用于提供内容项推荐有关的后台服务。该数据库可以包括用户信息数据库以及内容项数据库等,当然,还可以基于服务器所提供的不同服务可以对应于不同数据库,内容项推荐服务器可以是一台或多台。当内容项推荐服务器是多台时,存在至少两台内容项推荐服务器用于提供不同的服务,和/或,存在至少两台内容项推荐服务器用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。
终端110可以泛指多个终端中的一个,本实施例仅以终端110来举例说明。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述实施环境中还包括其他终端。本发明实施例对终端的数量和设备类型不加以限定。
为了便于理解,本公开实施例以社交应用(application,APP)提供的内容项推荐页面模块作为实施场景进行说明,社交应用往往也集成有内容项推荐功能,用户可以通过点击内容项推荐模块的标签进入内容项推荐页面模块,进入内容项推荐页面后,该页面上可以显示有服务器历史向用户推荐的内容项,或者,在终端检测到用户点击内容项推荐模块的操作之后,可以向服务器发送内容项推荐请求,服务器基于该内容项推荐请求向终端推送相应的内容项信息,终端将接收到的内容项信息显示在相应位置上。除此之外,终端检测到用户发出的刷新操作之后,可以向服务器发送内容项推荐请求,服务器基于内容项推荐请求向终端发送新的内容项,终端将接收到的内容项在相应位置将上一刷新时刻显示的内容项覆盖显示,将新的内容项推荐给用户,本公开实施例提供的内容项推荐方法可以应用于用户点击内容项推荐模块的操作之后,也可以应用于用户发出刷新操作之后。当然,本公开实施例中的内容项推荐方法也可以应用于其他的实施场景中,本公开实施例对此不做限定。
为了更加清楚的介绍本公开实施例的应用场景,下面将以微信APP为例进行说明,需要说明的是,以微信APP为例进行说明仅仅是为了便于理解而进行的,并不能对本公开造成不当限定,实际上,任何具有内容项推荐功能的APP均可以采用本公开实施例中的内容项推荐方法。微信“看一看”模块是一个集公众号文章、新闻资讯、横屏视频和竖屏视频等于一体的内容项推荐产品,如图2所示,用户可以点击微信界面底部的“发现”找到“看一看”入口,用户点击“看一看”入口的标签后就可以进入“看一看”主界面,主界面顶部包括“朋友在看”和“精选”两个子模块,参见图3。“朋友在看”子模块是“看一看”模块的社交阅读子模块,用户在“朋友在看”子模块中可以浏览、阅读、点赞以及评论好友点过“在看”的文章和视频;“精选”子模块是“看一看”模块的个性化推荐场景,这个子模块中的内容是服务器基于用户喜好向用户推荐的文章和视频。
本公开实施例中的内容项推荐方法可以应用于看一看模块的“精选”子模块,用户通过下拉刷新界面,服务器就可以基于用户喜好向用户推荐文章和视频。当服务器向用户推荐的内容项是文章时,用户与文章之间的交互行为可以为“点击”和“在看”,其中,用户对文章进行“点击”为表示该文章的标题或者是文章附带的图片对用户有吸引力,而用户对该文章的“在看”行为表示该文章的内容符合用户的喜好,用户愿意将该文章分享给其他好友;当服务器向用户推荐的内容项为视频时,用户与视频之间的交互行为可以为“播放”、“分享”以及“在看”,其中“播放”与“点击”类似,表示该视频的标题或封面图片对用户有吸引力,“分享”与“在看”类似,表示该视频的内容符合用户的喜好,用户愿意将该视频分享给其他好友。本公开实施例中的内容项推荐模型可以同时对用户与内容项之间的多种交互行为的概率进行预测,并基于用户与待推荐视频之间的多种交互行为的概率,确定向用户推荐的目标内容项。
图4是本公开实施例提供的一种内容项推荐方法的流程图,参见图4,方法包括:
S401、服务器获取目标用户的用户特征向量和多个内容项的内容项特征向量。
其中,用户特征向量包括但不限于用户年龄向量、性别向量、职业向量、所在城市向量、国籍向量、文化水平向量、手机配置向量、收入区间向量以及用户所在城市的季节向量等向量。
在一种可能的实施方式中,当终端接收到目标用户的触发指令后,可以向服务器发送内容项推荐请求,内容项推荐请求中携带目标用户的用户标识,服务器在接收到内容项推荐请求后,基于用户标识,从用户信息数据库中获取该目标用户的用户信息,对用户信息进行特征提取,获取目标用户的用户特征向量。例如,服务器可以基于独热(one-hot)编码对用户信息中所包括的多个信息进行编码,得到多个信息的one-hot编码,将多个信息的one-hot编码作为反映用户特征的用户特征向量,也即是,用户特征向量实际上包含了用户多个特征的向量。
服务器可以获取多个内容项,该多个内容项可以是基于该目标用户的用户画像和历史交互行为中至少一项确定,当然,该多个内容项还可以包括***所配置的信息,例如当日点击率符合条件的内容项等。举例来说,服务器在接收到用户标识之后,还可以基于用户标识查询目标用户订阅的第一用户,并从内容项数据库中获取第一用户的特征向量,服务器基于第一用户的特征向量从内容项数据库中获取与第一用户相似的多个第二用户,并将多个第二用户的作品作为多个内容项;或者,服务器可以基于目标用户历史观看视频的视频信息,确定多个与用户历史观看视频相似的第一视频,多个第一视频作为多个内容项,这样向用户推荐的信息更加符合用户的喜好。当然,服务器也可以同时基于目标用户订阅的第一用户和目标用户历史观看视频的视频信息确定多个待推荐的多个内容项。
当然,由于每天都有新的公众号推文和视频进入服务器所维护的内容项数据库中,服务器也可以将新的公众号推文和视频作为内容项,这样可以保证向用户推荐的信息始终是最新的,本公开实施例对待推荐的内容项的来源不做限定。
在一种可能的实施方式中,服务器可以对多个内容项进行特征提取,得到多个内容项特征向量,与用户特征向量类似,内容项特征向量也包含了内容项多个特征的特征向量,如果内容项为文章,那么服务器可以对文章的标题、关键字、类别、作者以及字数等反映文章特征的信息进行特征提取,得到内容项特征向量;如果内容项为视频,那么服务器可以对视频的标题、分类、作者以及视频简介的关键字进行特征提取,得到内容项特征向量,特征提取的方法也可以采用one-hot编码来实现,当然也可以通过其他的特征提取方法来进行特征提取,本公开实施例对此不做限定。
本公开实施例是以服务器实时提取内容项特征为例进行说明的,在一种可能的实施方式中,服务器也可以提前对内容项进行特征提取,在使用本公开实施例提供的内容项推荐方法时,可以直接将内容项特征输入到内容项推荐模型中,节约了内容项特征提取的耗时,这样可以提高内容项推荐的效率。
S402、服务器将用户特征向量和多个内容项特征向量输入到内容项推荐模型中。
其中,本公开实施例中的内容项推荐模型可以是基于用户特征向量、历史推荐信息的特征向量以及用户与历史推荐信息之间的交互行为信息训练得到的,具体的训练方法可以参见步骤S601-S604的模型训练方法。
在一种可能的实施方式中,本公开实施例中的内容项推荐模型可以由三个子模型组成,第一个是线性子模型,第二个是深度学习子模型,第三个是特征交叉子模型,内容项推荐模型的结构可以参见图5。线性子模型的特点是擅长记忆,该子模型基于用户的历史行为训练过后可以较为直接的预测用户对于内容项的感兴趣程度;深度学习子模型的特点泛化能力较强,训练过后可以对用户进行更加丰富的内容项推荐,而特征交叉子模型的存在是为了体现特征之间的关联性,并基于特征之间的关联性预测用户多种交互行为之间的关联性。本公开实施例中的内容项推荐模型中的三个子模型的输入是共享的,这样可以提高内容项推荐的效率,线性子模型和深度学习子模型的数量可以为一个或多个,具体可以与用户与内容项进行的交互行为的数量相关,而特征交叉子模型的数量可以为一个,在进行多种交互行为概率预测的时候,可以共享该特征交叉子模型输出的参数。
S403、内容项推荐模型将目标用户的用户特征向量和每个内容项特征向量输入线性子模型中进行加权求和,得到每个内容项特征向量对应的第一向量。
线性子模型是基于样本用户特征向量、内容项特征向量以及样本用户与内容项的交互行为向量训练得到,线性子模型的权重用于表示用户特征与内容项特征对某一种交互行为是否会发生的影响程度。
需要说明的是,内容项推荐模型中的线性子模型可以采用逻辑回归(logisticregression,LR)模型来实现,当然也可以采用其他的线性模型来实现,本公开实施例对此不做限定。为了便于理解,下面将以采用LR模型作为本公开实施例中的线性子模型为例进行说明,LR模型的模型参数可以为公式(1)。
其中,b是偏置参数、n为特征向量的数量、wi是第i个特征向量的权重、i为特征向量的序号、xi为第i个特征向量,i的取值范围为(1,n),偏置参数b和权重w是在内容项推荐模型的训练过程中训练得到的。
在一种可能的实施方式中,内容项推荐模型可以将用户特征向量输入到线性子模型中,由该线性子模型对输入的用户特征向量进行运算,得到第一表示信息,之后内容项推荐模型可以将每个内容项特征向量均输入到该线性子模型中,得到多个第二表示信息,该线性子模型基于第一目标权重对第一表示信息和多个第二表示信息进行加权求和,获取用户与任一个内容项之间任一种交互行为的第一向量,该第一向量在一定程度上可以反映目标用户与该内容项之间发生该种交互行为的概率。
需要说明的是,上述描述是以获取用户与每个内容项之间任一种交互行为的第一向量为例进行说明的,实际上,用户与每个内容项之间存在多种交互行为,本公开实施例中提供的内容项推荐模型中可以有多个线性子模型,多个线性子模型用于获取用户与每个内容项之间不同交互行为的第一向量,也即是每个线性子模型的偏置参数与权重可能是不同的。
S404、内容项推荐模型将目标用户的用户特征向量和每个内容项特征向量输入到多个深度学习子模型中,由深度学习子模型输出每个内容项特征向量对应的第二向量。
该深度学习子模型也是由用户特征向量、内容项特征向量以及用户与内容项的交互行为向量训练得到,该深度学习子模型可以基于用户特征向量以及内容项特征向量预测用户与内容项发生交互行为的概率。
其中,内容项推荐模型中的深度学习子模型可以采用深度神经网络(deep neuralnetworks,DNN)来实现,也可以采用其他深度网络子模型,例如卷积神经网络(convolutional neural networks,CNN)或循环神经网络(recurrent neural network,RNN),本公开实施例对此不做限定,为了便于理解,本公开实施例以深度学习子模型为DNN为例来进行说明,该DNN可以有两个输入节点,第一个节点输入用户特征向量,第二个节点输入内容项特征向量。
在一种可能的实施方式中,该DNN可以基于第二权重对用户特征向量进行处理,得到用户特征表示信息,同时对内容项特征向量进行处理,得到内容项特征表示信息,基于用户特征表示信息和内容项特征表示信息,得到用户和内容项之间的相似度信息。具体来说,内容项推荐模型可以将用户特征向量输入到DNN中,该DNN基于第二权重对用户特征向量中所包含的用户多个特征的特征向量进行加权求和,将加权求和的结果作为用户特征表示信息,同时基于第三权重对内容项特征向量中所包含的内容项多个特征的特征向量进行加权求和,将加权求和的结果作为内容项特征表示信息,计算用户特征表示信息和内容项特征表示信息的余弦相似度,将余弦相似度作为任一交互行为的第二向量,该第二向量在一定程度上也可以反映目标用户与内容项之间发生交互行为的概率。
需要说明的是,上述描述是以获取用户与每个内容项之间任一种交互行为的第二向量为例进行说明的,实际上,用户与每个内容项之间存在多种交互行为,本公开实施例中提供的内容项推荐模型中可以有多个深度学习子模型,多个深度学习子模型用于获取用户与每个内容项之间的每种交互行为的第二向量,也即是每个深度学习子模型的第二权重和第三权重可能是不同的。
S405、内容项推荐模型将目标用户的用户特征向量和每个内容项特征向量输入到特征交叉子模型中,由特征交叉子模型进行特征交叉,得到每个内容项特征向量对应的第三向量。
其中,内容项推荐模型中的特征交叉子模型可以借助共享因子分解机(sharedfactorization machine,SFM)来实现,具体可以采用公式(2)来实现。需要说明的是,某一用户特征可能无法用一个用户特征向量来表示,那么该特征就可以用一个特征向量组来表示,也即是,一个特征向量组中可以包含多个用户特征向量,当然,如果某一内容项特征无法用一个内容项特征向量表示,也可以采用上述特征组的方式来进行表示。
其中,G表示用户特征向量和内容项特征向量的特征向量组的数量和,e为用户特征向量或内容项特征向量组,i和j分别用于表示不同特征向量组的序号,i的范围为(1,G-1),j的范围为(i+1,G),采用该公式可以对不同特征向量组之间完成特征交叉,ei⊙ej的含义参见公式(3)。
其中,xik表示输入第i个特征向量组的第k个特征向量,xjk表示输入第j个特征向量组的第k个特征向量,i和j表示特征向量组的序号,k表示特征向量组中的特征向量的序号,d表示特征向量组的维度,k的取值范围为(1,d)。
具体来说,该特征交叉子模型的作用是计算用户特征向量中所包含的用户多个特征的特征向量的第一向量积、用户特征向量中所包含的用户多个特征的特征向量与内容项特征向量中所包含的内容项多个特征的特征向量的第二向量积,并将得到第一向量积和第二向量积进行加和,得到用于表示用户特征向量之间以及用户特征向量和内容项特征向量之间关联的第三向量,由于每种交互行为的概率是内容项推荐模型基于用户特征向量和内容项特征向量计算得到的,一定程度上来说,用户特征向量和内容项特征向量之间的第三向量也可以表示每种交互行为之间的第三向量,也即是,第三向量反映了每种交互行为的共性,因此,该特征交叉子模型输出的第三向量可以同时用于预测每种交互行为的概率。
特征交叉子模型存在的意义在于将多个特征关联起来,下面将举例说明将多个特征关联能带来的有益效果。例如,服务器向内容项推荐模型输入的用户特征为用户的年龄和性别,如果内容项推荐模型不具备特征交叉子模型,那么该内容项推荐模型仅能区分老年和少年以及男人或女人,如果内容项推荐模型具备特征交叉子模型,那么该内容项推荐模型不仅能区分老年和少年以及男人或女人,还可以区分少女、成年男性。本公开实施例中提供的特征交叉子模型不仅考虑了用户不同特征之间的关联,也考虑了用户不同特征与内容项的不同特征之间的关联,举例来说,男性用户可能会对关于篮球的信息感兴趣,美国人可能会对感恩节的信息感兴趣,因此,采用特征交叉子模型可以将用户不同特征与内容项的不同特征结合,使得本公开实施例中提供的内容项推荐模型具有更高的推荐水平。
需要说明的是,为了便于理解,本公开实施例对上述步骤S403-S405分别进行了说明,在实际情况中,上述步骤S403-S405可以同时进行,也可以按照任意顺序进行,本公开实施例对此不做限定。
S406、内容项推荐模型基于每个内容项特征向量对应的第一向量、每个内容项特征向量对应的第二向量和每个内容项特征向量对应的第三向量,确定目标用户对每个内容项进行每种交互行为的概率。
在一种可能的实施方式中,内容项推荐模型可以将第一向量、第二向量以及第三向量进行加权求和,得到每种交互行为的预测信息,将每种交互行为的预测信息映射至目标数值区间,得到目标用户与每个内容项之间的每种交互行为的概率。
例如,以内容项为文章为例,用户与文章的交互行为包括“点击”和“在看”,内容项推荐模型可以基于第四权重将线性子模型输出的“点击”行为的第一向量、深度学习子模型输出的“点击”行为的第二向量以及每种交互行为之间的第三向量进行加权求和,得到“点击”行为的预测信息,基于S型生长(sigmoid)函数将“点击”行为的预测信息映射到(0,1)的区间上,将映射后的预测信息作为“点击”行为的概率。
S407、服务器基于多种交互行为的概率,向目标用户推荐多个内容项中的目标内容项,目标内容项为符合推荐条件的内容项。
在一种可能的实施方式中,服务器可以对每种交互行为的概率进行加权求和,得到每个内容项的推荐成功率,基于推荐成功率,从多个内容项中确定目标内容项,目标内容项为推荐成功率最高的内容项,将目标内容项推荐给用户。例如,以内容项为文章为例,用户与文章的交互行为出了“点击”之外还有“在看”,如果内容项推荐模型预测“点击”的概率为0.8,“在看”的概率为0.7,“点击”的权重为0.2,“在看”的权重为0.8,那么内容项推荐模型可以得到该文章的推荐成功率为0.8×0.2+0.7×0.8=0.72,可以得到该文章的推荐成功率为72%,如果该文章的推荐成功率在所有待推荐文章中最高,那么可将该文章推荐给用户。
在一种可能的实施方式中,服务器可以按照推荐成功率从高到低的顺序将内容项进行排序,将内容项和内容项的排列顺序发送给终端,终端可以基于内容项和内容项的排列顺序,在用户界面上展示内容项。
在一种可能的实施方式中,服务器可以基于目标内容项生成推荐页面,将推荐页面发送给目标用户的用户终端,由目标用户的用户终端将推荐页面项呈现给目标用户。
需要说明的是,服务器可以采用上述任一种方式向用户推荐内容项,本公开实施例推荐方式不做限定。
S408、服务器基于目标用户与目标内容项之间的交互行为信息,更新内容项推荐模型。
具体的内容项推荐模型的更新方式与模型训练方式类似,可以参见步骤S601-S604,在此不再赘述。采用上述方法之后,内容项推荐模型可以根据用户与内容项之间的交互行为,实时更新自身模型参数,使得内容项推荐模型推荐的内容项越来越符合用户的喜好,内容项推荐效果更好。
通过采用本公开实施例中的内容项推荐模型进行内容项推荐的实验之后,可以得出以下实验结果:文章喜爱量提升了4.3%;用户人均视频播放时长提升1.1%,人均视频分享量提升5.6%,人均视频喜爱量提升4.9%,由此,说明本公开实施例提供的方法,可以提升推荐的转化率,也即是大大提升推荐成功率。
通过本公开实施例提供的方法,服务器通过内容项推荐模型基于用户特征向量和内容项特征向量预测用户与内容项之间多种交互行为的概率,并基于多种交互行为的概率确定向用户推荐该内容项的成功率,并将推荐成功率最高的内容项推荐给用户,由于用户与内容项之间的交互行为反映了用户对于内容项的感兴趣程度,这种通过预测用户与内容项之间的交互行为来向用户推荐内容项的方法,可以预测用户感兴趣的内容项,并将该内容项推荐给用户,提升了推荐成功率。除此之外,本公开实施例中提供的内容项推荐模型还将用户特征和内容项特征进行了特征交叉,提高了内容项推荐模型进行内容项推荐的能力。
图6是本公开实施例提供的一种内容项推荐模型的训练方法流程图,参见图6,为了实现本公开实施例提供的内容项推荐方法,除了可以采用开源模型直接进行运算,还可以自行收集的训练数据来训练得到的模型,具体的模型训练过程参见步骤S601-S604。
S601、服务器获取样本数据,样本数据包括样本用户的特征向量、样本用户与历史推荐信息之间的交互行为信息以及历史推荐信息的特征向量。
其中,样本用户为任一内容项推荐平台的用户,历史推荐内容项为该内容项推荐平台向该用户推荐过的内容项,样本用户与历史推荐内容项之间的交互行为信息可以为用户对历史推荐内容项的“点击”、“播放”以及“分享”等行为所产生的信息。
S602、服务器将样本用户的特征向量和历史推荐内容项的特征向量输入到初始模型中。
在一种可能的实施方式中,样本数据可以包括多个样本用户的特征向量以及与多个样本用户对应的多个历史推荐内容项的特征向量,可以将每个样本用户的特征向量与该样本用户对应的历史推荐内容项的特征向量作为一个样本数据组,服务器可以从样本数据组中随机选取一个历史推荐内容项,并将历史推荐内容项和样本用户的特征向量输入到内容项推荐模型中。
S603、初始模型预测样本用户与历史推荐内容项之间的多个交互行为的概率。
在一种可能的实施方式中,内容项推荐模型初始化自身模型参数,基于初始化后的模型参数和任一个样本用户的特征向量和任一个历史推荐内容项的特征向量,预测该样本用户与该历史推荐内容项之间的多个交互行为的概率。
S604、服务器基于多个交互行为的概率和样本用户与历史推荐内容项之间的交互行为信息之间的差别信息,调整初始模型的模型参数,直至初始模型的模型参数符合目标截止条件时,停止训练初始模型,将训练后的初始模型作为内容项推荐模型。
在一种可能的实施方式中,内容项推荐模型在计算出样本用户与历史推荐内容项之间的多个交互行为的概率之后,可以基于训练样本中样本用户与历史推荐内容项之间的交互行为信息,基于实际上样本用户与历史推荐内容项之间的交互行为信息与模型预测的多个交互行为的概率,调整自身模型参数,直至内容项推荐模型输出的样本用户与历史推荐内容项之间的多个交互行为的概率达到模型训练结束条件为止。
图7本公开实施例提供的一种内容项推荐装置的结构示意图,参见图7,装置包括:获取模块701、输入模块702、预测模块703以及推荐模块704。
获取模块701,用于获取目标用户的用户特征向量和多个内容项的内容项特征向量。
输入模块702,用于将目标用户的用户特征向量和多个内容项的内容项特征向量输入到内容项推荐模型中。
预测模块703,用于由内容项推荐模型预测目标用户对每个内容项进行每种交互行为的概率。
推荐模块704,用于基于每种交互行为的概率,向目标用户推荐多个内容项中的目标内容项,目标内容项为符合推荐条件的内容项目标内容项。
在一种可能的实施方式中,预测模块包括:
第一获取单元,用于将目标用户的用户特征向量和每个内容项特征向量输入线性子模型中进行加权求和,得到每个内容项特征向量对应的第一向量;
第二获取单元,用于将目标用户的用户特征向量和每个内容项特征向量输入到多个深度学习子模型中,由深度学习子模型输出每个内容项特征向量对应的第二向量;
第三获取单元,用于将目标用户的用户特征向量和每个内容项特征向量输入到特征交叉子模型中,由特征交叉子模型进行特征交叉,得到每个内容项特征向量对应的第三向量;
确定单元,用于基于每个内容项特征向量对应的第一向量、每个内容项特征向量对应的第二向量和每个内容项特征向量对应的第二向量,确定目标用户对每个内容项进行每种交互行为的概率。
在一种可能的实施方式中,确定单元还用于将第一向量、第二向量以及第三向量进行加权求和,得到每种交互行为的预测信息,将每种交互行为的预测信息映射至目标数值区间,得到目标用户与每个内容项之间的每种交互行为的概率。
在一种可能的实施方式中,推荐模块还用于对每种交互行为的概率进行加权求和,得到每个内容项的推荐成功率,基于推荐成功率,从多个内容项中确定目标内容项,目标内容项为推荐成功率最高的内容项,将目标内容项推荐给目标用户。
在一种可能的实施方式中,推荐模块还用于基于目标内容项生成推荐页面,将推荐页面发送给目标用户的用户终端,由目标用户的用户终端将推荐页面项呈现给目标用户。
在一种可能的实施方式中,装置还包括:
模型生成模块,用于获取样本数据,样本数据包括样本用户的特征向量、样本用户与历史推荐信息之间的交互行为信息以及推荐信息的特征向量;
将样本用户的特征向量和历史推荐信息的特征向量输入到初始模型中;
由初始模型预测样本用户与历史推荐信息之间的多个交互行为的概率;
基于多个交互行为的概率和样本用户与历史推荐信息之间的交互行为信息之间的差别信息,调整初始模型的模型参数,直至初始模型的模型参数符合目标截止条件时,停止训练初始模型,将训练后的初始模型作为内容项推荐模型。
在一种可能的实施方式中,装置还包括:
更新模块,用于基于目标用户与目标内容项之间的交互行为信息,更新内容项推荐模型。
需要说明的是:上述实施例提供的内容项推荐装置在进行内容项推荐时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部子模型划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内容项推荐装置与内容项推荐的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本公开实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,CPU)801和一个或多个的存储器802,其中,所述一个或多个存储器802中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器800还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种可读存储介质,例如包括程序代码的存储器,上述指令可由处理器执行以完成上述实施例中的内容项推荐方法。例如,该可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。