一种文章推荐方法、装置
技术领域
本发明涉及人工智能领域的智能推荐技术,尤其涉及一种文章推荐方法、装置、电子设备及存储介质。
背景技术
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。人工智能现如今得到快速发展,并广泛应用于各种行业。
以文章推荐的应用场景为例,目前的文章推荐方法主要有两种,一种是根据人工规则筛选出文章并进行推荐,例如:将热点新闻或者整体点击率更高的非个性化的文章推荐至用户;一种是根据用户历史行为推荐文章。
根据人工规则向用户推荐的文章不具备个性化,导致文章点击率下跌;根据用户的历史行为进行文章推荐,只能向用户推荐与历史行为中存在的偏好相关的文章,难以向用户推荐与历史行为中不存在的偏好相关的文章,导致无法推荐用户潜在兴趣但不熟悉的文章,因此无法挖掘用户的潜在兴趣从而降低推荐效率。
发明内容
本发明实施例提供一种文章推荐方法、装置、电子设备及存储介质,能够提高推荐文章的多样性,从而提升文章推荐的质量。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种文章推荐方法,包括:
获取向用户已推荐的历史文章,并根据所述用户的画像数据,获取针对所述用户的待推荐的多个候选文章;
选取至少一个所述候选文章并与所述历史文章组成文章集合;
基于所述选取的候选文章与所述用户之间的相关度、以及所述选取的候选文章和所述历史文章之间的相似度,构造表征所述文章集合的多样性的矩阵;
根据所述矩阵的行列式,选取满足多样性条件的矩阵对应的候选文章为准备推荐的目标文章;
基于所述目标文章执行对应所述用户的推荐操作。
在上述方案中,获取所述选取的候选文章和所述历史文章中的特征词,并基于所述特征词训练所述产生词向量的模型;基于所述产生词向量的模型,获得所述选取的候选文章和所述历史文章中各自对应的特征向量。
本发明实施例提供一种文章推荐装置,包括:
获取模块,用于获取向用户已推荐的历史文章,并根据所述用户的画像数据,获取针对所述用户的待推荐的多个候选文章;
选取模块,用于选取至少一个所述候选文章并与所述历史文章组成文章集合;
构造模块,用于基于所述选取的候选文章与所述用户之间的相关度、以及所述选取的候选文章和所述历史文章之间的相似度,构造表征所述文章集合的多样性的矩阵;
选取推荐模块,用于根据所述矩阵的行列式,选取满足多样性条件的矩阵对应的候选文章为准备推荐的目标文章;
执行模块,用于基于所述目标文章执行对应所述用户的推荐操作。
上述方案中,所述选取模块,还用于在所述多个候选文章中遍历选取包括目标数量的候选文章的多个组合,并将遍历选取的多个组合分别与所述历史文章组合,形成与所述多个组合一一对应的多个文章集合。
上述方案中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的目标数量的候选文章,并确定为准备推荐的目标文章。
上述方案中,所述选取模块,还用于在第1次迭代过程中,在所述多个候选文章中遍历选取所有的候选文章,并将所遍历选取的候选文章分别与所述历史文章组合,形成与各个所述候选文章一一对应的文章集合。
上述方案中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第1次迭代过程中确定的准备推荐的目标文章。
上述方案中,所述选取模块,还用于在第i次迭代过程中,在所述多个候选文章中遍历选取尚未被选取为目标文章的候选文章,并分别将所遍历选取的候选文章与所述目标文章、以及所述历史文章组合,形成与各个被选取的候选文章一一对应的文章集合。
上述方案中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第i-1次迭代过程中确定的准备推荐的目标文章,其中,其中,2≤i≤I-1,i为整数,I为所述多个候选文章的数量。
上述方案中,所述获取模块,还用于通过第一相关度排序模型,并根据所述用户的画像数据对多个文章进行排序,获得表征所述文章和所述用户之间的相关度的降序排列;在所述降序排列中选取在前的部分文章,以作为针对用户的待推荐的候选文章。
上述方案中,所述获取模块,还用于获取预设时间段内通过相同或不同客户端向所述用户已推荐的历史文章,或者,获取通过相同或不同客户端向所述用户已推荐的全部历史文章。
上述方案中,还包括相关度获取模块,用于提取所述用户的画像数据中的特征;根据所述用户的画像数据中的特征,从所述选取的候选文章中提取特征词;基于所述特征词训练第二相关度排序模型,并通过所述第二相关度排序模型获得所述选取的候选文章与所述用户之间的相关度;其中,所述选取的候选文章与所述用户之间的相关度表征所述选取的候选文章被所述用户点击的概率。
上述方案中,还包括相似度获取模块,用于通过词向量模型,获得所述选取的候选文章和所述历史文章用各自对应的特征向量;确定所述选取的候选文章的特征向量和所述历史文章的特征向量之间的余弦距离或欧式距离,并确定为所述选取的候选文章和所述历史文章之间的相似度。
上述方案中,所述相似度获取模块,还用于获取所述选取的候选文章和所述历史文章中的特征词,并基于所述特征词训练所述产生词向量的模型;基于所述产生词向量的模型,获得所述选取的候选文章和所述历史文章中各自对应的特征向量。
上述方案中,所述选取推荐模块,还用于确定所述多样性的矩阵的行列式,其中,所述行列式表征所述文章集合的多样性;确定所述行列式最大的多样性的矩阵为目标矩阵;根据所述目标矩阵确定对应的候选文章为准备推荐的目标文章。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的文章推荐方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的文章推荐方法。
本发明实施例具有以下有益效果:
通过获取向用户已推荐的历史文章以及针对用户的待推荐的候选文章,选取至少一个候选文章和历史文章组成文章集合并构造多样性的矩阵,并基于多样性的矩阵选取准备推荐的文章,不仅能够保证向用户推荐的文章符合用户的兴趣,而且能够提高推荐文章的多样性,从而提升文章推荐的效率。
附图说明
图1是本发明实施例提供的文章推荐系统的一个可选的架构示意图;
图2是本发明实施例提供的电子设备的一个可选的结构示意图;
图3是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图4是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图5是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图6是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图7是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图8是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图9a和图9b是本发明实施例提供的文章推荐方法的一个可选的应用场景示意图;
图10是本发明实施例提供的文章推荐方法的一个可选的原理示意图;
图11是本发明实施例提供的文章推荐方法的一个可选的流程示意图;
图12a、图12b和图12c是相关技术中文章推荐方法进行线上测试的效果图;
图13a、图13b和图13c是本发明实施例提供的文章推荐方法进行线上测试的效果图;
图14是本发明实施例提供的文章推荐方法和相关技术中文章推荐方法效果比较图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)行列式,是一个函数,取值为一个标量,行列式的物理意义是组成矩阵的向量张成空间的面积或者体积,如果行列式越大则说明此时矩阵的张成角度越大。
2)点过程,描述随机点分布的随机过程。
3)次模函数,即子模函数,是一个集合函数,随着输入集合中元素的增加,增加单个元素到输入集合导致的函数增量的差异减小。
4)用户的画像数据,根据用户人口统计学信息、社交关系、偏好习惯和消费行为等信息而抽象出来的标签数据,每个用户的画像数据均不相同。
5)推荐兜底文章,是指通过人工筛选出来的文章,比如热点新闻或者整体点击率更高的非个性化的文章。
6)相关度排序模型,可以通过相关度排序模型对文章和用户之间的相关度进行打分以及排序。
7)词向量模型,可以通过词向量模型将文章用向量进行表示,从而可以基于表征文章的向量计算文章与文章之间的相似度。
相关技术中,对于文章推荐是根据用户兴趣的频道分布,分配文章至用户,接收到一个用户u请求后,首先查询用户u的兴趣分布,例如,此次请求需要推荐给用户N篇文章,用户u的兴趣分布为dis
u={α
1,α
2,...,α
m},其中
dis
u为用户u的兴趣分布,α
i为用户对相应的文章类别C
i感兴趣的概率,则此次请求返回类别C
i的文章数为N·α
i个;然后根据用户特征和文章特征做召回,从海量文章中筛选出更匹配用户的文章集合;再进行相关度排序,计算文章和用户之间相关度得分;最后将文章进行筛选并发送至用户。例如,排序完的文章集合D={d
1,d
2,...,d
N},其中d
1为文章类别,如果d
1不属于用户感兴趣的文章类别,则丢弃,如果d
1属于用户感兴趣的文章类别,则加入至推荐列表中,并且在此过程中可以过滤低俗、色情、重复的文章。考虑用户频道中已存在n篇文章,需要加入第n+1篇文章时,需要根据用户兴趣的频道分布判定是否加入推荐列表。重复上述步骤,遍历用户u的所有兴趣分布,直至推荐列表中文章数量等于N。在发明实施例的实施过程中发现相关技术存在以下问题:
1)需要人为干预:如果用户兴趣太过集中,按照兴趣分配槽位的方法会严重影响用户体验,因此,需要人为设置每个类别出现文章的最大值,防止类别倾斜;由此可能导致按照兴趣推荐文章不够N篇,对于这种情况,目前的方法是推荐兜底文章,从而会使推荐的文章不具备个性化,导致点击率下跌。
2)分类错误易导致雪崩:最终推荐给用户的文章需要匹配用户兴趣分布,如果待推荐的文章应该归类到“动漫”,但由于某种原因被归类到“娱乐”,而用户对动漫感兴趣,这样原本最应该被推荐的文章,在推荐过程中被过滤掉,把靠后的文章加入至推荐列表中,而后面待进入的文章会严重受到已加入推荐列表文章的影响(“雪崩”效应),最终导致此次推荐效果不好。
3)无法推荐用户兴趣之外的文章:这种方法正是基于用户的兴趣分布来排列待推荐的文章的,如果文章在用户兴趣之外,在多样性阶段会被过滤掉,无法扩展(挖掘)用户的潜在兴趣,无法推荐用户潜在感兴趣但不熟悉的文章。
针对上述问题,本发明实施例提供一种文章推荐方法、装置、电子设备和存储介质,下面说明本发明实施例提供的电子设备的示例性应用,本发明实施例提供的电子设备可以实施为服务器。下面,将说明包括服务器的文章推荐系统的示例性应用。
参见图1,图1是本发明实施例提供的文章推荐系统100的一个可选的架构示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
本发明实施例提供的文章推荐方法可以通过以下过程实现:首先服务器200通过网络300获取向用户已推荐的历史文章和用户的画像数据;然后服务器200根据用户的画像数据获取针对用户的待推荐的多个候选文章,并且基于历史文章和候选文章选取准备向用户推荐的目标文章;最后,服务器200通过终端400中的客户端400-1将目标文章推荐至用户。其中,上述基于历史文章和候选文章选取准备向用户推荐的目标文章可以通过以下方式实现:选取至少一个候选文章与历史文章组成文章集合,并基于选取的候选文章与用户之间的相关度、以及选取的候选文章和历史文章之间的相似度构造表征文章集合的多样性的矩阵,选取满足多样性条件的矩阵对应的候选文章为准备推荐的目标文章。
本发明实施例通过获取向用户已推荐的历史文章以及针对用户的待推荐的候选文章,选取至少一个候选文章和历史文章组成文章集合并构造多样性的矩阵,并基于多样性的矩阵选取准备推荐的文章,不仅能够保证向用户推荐的文章符合用户的兴趣,而且能够提高推荐文章的多样性,从而提升文章推荐的效率。
接下来说明本发明实施例提供的电子设备的结构,可以是上文所述的服务器,参见图2,图2是本发明实施例提供的电子设备500的一个可选的结构示意图,其中,图2所示的电子设备500包括:至少一个处理器560、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器560可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器560的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的文章推荐装置可以采用软件方式实现,图2示出了存储在存储器550中的文章推荐装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、选取模块5552、构造模块5553、选取推荐模块5554以及执行模块5555,这些模块是可以是逻辑功能模块,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的文章推荐装置可以采用硬件方式实现,作为示例,本发明实施例提供的文章推荐装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的文章推荐方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
将结合上文所述的终端和服务器示例性应用和实施,说明本发明实施例提供的文章推荐方法。
参见图3,图3是本发明实施例提供的文章推荐方法的一个可选的流程示意图,将结合图3示出的步骤进行具体说明。
在步骤S101中,服务器获取向用户已推荐的历史文章。
在一些实施例中,服务器获取预设时间段内通过相同客户端向用户已推荐的历史文章。其中,预设时间段可以为任意时间段,例如,预设时间段可以为最近30天,也可以为最近10分钟,也可以为2018年3月1日17时至2018年3月4日17时之间的时间段等。
作为示例,服务器可以获取最近30分钟内通过A客户端向用户已推荐的历史文章。
在一些实施例中,服务器获取预设时间段内通过不同客户端向用户已推荐的历史文章。
作为示例,服务器可以同时获取最近三天内通过A客户端、B客户端以及C客户端向用户已推荐的所有历史文章。
在一些实施例中,服务器获取通过相同客户端向用户已推荐的全部历史文章。
作为示例,服务器可以获取通过A客户端向用户已推荐的全部历史文章。
在一些实施例中,服务器获取通过不同客户端向用户已推荐的全部历史文章。
作为示例,服务器可以同时获取通过A客户端、B客户端以及C客户端向用户已推荐的全部历史文章。
本发明实施例通过获取向用户已推荐历史文章方法的多样性,不仅能够使准备推荐的文章更符合用户的需求,而且能够提高文章的点击率,从而提高推荐文章的效率。
在步骤S102中,根据用户的画像数据,服务器获取针对用户的待推荐的多个候选文章。
在一些实施例中,服务器根据用户的画像数据,从服务器存储的待推荐的全部候选文章中筛选出和用户的画像数据更匹配的待推荐的多个候选文章作为向用户推荐的召回文章。
在一些实施例中,服务器通过第一相关度排序模型,并根据用户的画像数据对多个文章进行排序,获得表征文章和用户之间的相关度的降序排列;并在降序排列中选取在前的部分文章,以作为针对用户的待推荐的候选文章。
上述选取在前的部分文章可以根据预定数量或预定比例选取在前的文章,例如:选择降序排列中在前的100个文章作为候选文章,或者选择降序排列中在前的个数为目标数量10倍的文章作为候选文章。
作为示例,服务器通过深层结构语义模型(DSSM,Deep Structured SemanticModels),根据用户的画像数据将与用户最相关的部分文章从海量文章池中筛选出来,以作为针对用户的待推荐的候选文章。并且在此过程中可以过滤低俗、色情、重复的文章。
在步骤S103中,服务器选取至少一个候选文章并与历史文章组成文章集合。
在一些实施例中,服务器可以从针对用户的待推荐的多个候选文章中选取一个或多个候选文章与历史文章组成文章集合。
作为一个示例,当服务器需要从20个候选文章中向用户推荐5个文章时,服务器可以在20个候选文章中遍历选取
个包括5个候选文章的组合,并将
个选取的包括5个候选文章的组合分别与历史文章组合,以形成
个不同的文章集合。
作为另一个示例,当服务器需要从20个候选文章中向用户推荐5个文章时,服务器可以先从20个候选文章中遍历选取1个候选文章,并将这1个候选文章分别与历史文章组合,以形成20个不同的文章集合。
在步骤S104中,基于选取的候选文章与用户之间的相关度、以及选取的候选文章和历史文章之间的相似度,服务器构造表征文章集合的多样性的矩阵。
在一些实施例中,服务器首先根据用户的画像数据,通过第二相关度排序模型获得选取的候选文章与用户之间的相关度,并且通过词向量模型,获得选取的候选文章和历史文章之间的相似度;然后基于选取的候选文章与用户之间的相关度、以及选取的候选文章和历史文章之间的相似度,构造表征文章集合的多样性的矩阵。
作为示例,设有序文章集合为DS={doc
1,doc
2,doc
3,...,doc
N},通过第二相关度排序模型对有序文章集合中的每个文章进行相关度打分,通过相关度得分衡量点击率,对应的相关度得分为SS={r
1,r
2,...,r
N};通过词向量模型将有序文章集合中的每个文章用向量进行表示,例如,将文章i用向量表示为
则对应的有序文章集合向量表示分别为FS={f
1,f
2,...,f
N}。
构造多样性的矩阵L,使得
公式(1)中,矩阵Lij表示文章i和文章j之间的相关度(与用户之间的相关度)和相似度的乘积。多样性的矩阵L不仅表征了文章与文章之间的相似度,而且也表征了文章与用户之间的相关度。
在步骤S105中,根据矩阵的行列式,服务器选取满足多样性条件的矩阵对应的候选文章为准备推荐的目标文章。
在一些实施例中,服务器首先确定多样性的矩阵的行列式,其中,行列式表征文章集合的多样性;然后确定行列式最大的多样性的矩阵为目标矩阵;最后根据目标矩阵确定对应的候选文章为准备推荐的目标文章。
其中,行列式表征组成矩阵的向量张成空间的面积或者体积,如果行列式越大则说明此时多样性的矩阵的张成角度越大,则组成多样性的矩阵的文章集合的相似度越小,并且是基于文章与用户的相关度构造多样性的矩阵,因此,行列式最大的多样性的矩阵对应的候选文章是最佳的推荐文章。
在步骤S106中,基于目标文章,服务器执行对应用户的推荐操作。
在一些实施例中,服务器响应用户推荐文章的请求,并将准备推荐的目标文章通过客户端向用户执行推荐操作。
在一些实施例中,参见图4,图4是本发明实施例提供的文章推荐方法的一个可选的流程示意图,基于图3,在步骤S104之前还可以包括步骤S107和步骤S108。
在步骤S107中,服务器根据用户的画像数据,通过第二相关度排序模型获得选取的候选文章与用户之间的相关度。
在一些实施例中,服务器提取用户的画像数据中的特征;根据用户的画像数据中的特征,从选取的候选文章中提取特征词;基于特征词训练第二相关度排序模型,并通过第二相关度排序模型获得选取的候选文章与用户之间的相关度;其中,选取的候选文章与用户之间的相关度表征选取的候选文章被用户点击的概率。
作为示例,服务器从选取的候选文章中提取特征词,基于特征词训练线性回归(LR,Linear Regression)排序模型,并通过LR排序模型获取选取的候选文章与用户之间的相关度,选取的候选文章与用户之间的相关度越高,则选取的候选文章被用户点击的概率越大。其中,选取的候选文章与用户之间的相关度可用标量进行表示,该数值越大,则选取的候选文章与用户之间的相关度越高。
在步骤S108中,服务器通过词向量模型,获得选取的候选文章和历史文章之间的相似度。
在一些实施例中,服务器获取选取的候选文章和历史文章中的特征词,并基于特征词训练词向量模型;基于词向量模型,获得选取的候选文章和历史文章用各自对应的特征向量;确定选取的候选文章的特征向量和历史文章的特征向量之间的余弦距离或欧式距离,并确定为选取的候选文章和历史文章之间的相似度。
作为示例,服务器通过用来产生词向量的相关模型(Word2vec,Word to Vector),可以将候选文章和历史文章中每个文章用向量表示为
fi={fi,fi2,...,fin}
其中,n为文章的向量维度,n可以为任意正整数。通过计算任意两个文章向量的内积可以得到任意两个文章之间的相似度。
在一些实施例中,参见图5,图5是本发明实施例提供的文章推荐方法的一个可选的流程示意图,基于图3,步骤S103可以通过步骤S1031实现,步骤S105可以通过步骤S1051实现,将结合各步骤进行说明。
在步骤S1031中,服务器在多个候选文章中遍历选取包括目标数量的候选文章的多个组合,并将遍历选取的多个组合分别与历史文章组合,形成与多个组合一一对应的多个文章集合。
作为示例,当服务器需要从20个候选文章中向用户推荐5个文章时,服务器可以在20个候选文章中遍历选取
个包括5个候选文章的组合,并将
个选取的包括5个候选文章的组合分别与历史文章组合,以形成
个不同的文章集合,并且这
个不同的文章集合与选取的包括5个候选文章的组合对应。
在步骤S1051中,服务器根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的目标数量的候选文章,并确定为准备推荐的目标文章。
作为示例,服务器可以将形成的
个不同的文章集合构造成
个不同的多样性的矩阵,并分别计算这
个不同的多样性的矩阵的行列式,并从这
个不同的多样性的矩阵中选取行列式最大的矩阵为目标矩阵,并确定目标矩阵对应的文章集合所包括的5个候选文章为准备推荐的目标文章。
本发明实施例通过从候选文章中遍历选取包括目标数量的候选文章的多个组合,并通过计算一次性将目标数量的文章推荐至用户,提高了推荐文章的速度,从而提高了推荐文章的效率。
在一些实施例中,参见图6,图6是本发明实施例提供的文章推荐方法的一个可选的流程示意图,基于图3,步骤S103可以通过步骤S1032实现,步骤S105可以通过步骤S1052实现,将结合各步骤进行说明。
在步骤S1032中,在第1次迭代过程中,服务器在多个候选文章中遍历选取所有的候选文章,并将所遍历选取的候选文章分别与历史文章组合,形成与各个候选文章一一对应的文章集合。
作为示例,当服务器需要从20个候选文章中向用户推荐5个文章时,在第1次迭代过程中,服务器可以先从20个候选文章中遍历选取1个候选文章,并将这1个候选文章分别与历史文章组合,以形成20个不同的文章集合,并且这20个不同的文章集合与选取的候选文章一一对应。
在步骤S1052中,服务器根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第1次迭代过程中确定的准备推荐的目标文章。
作为示例,服务器可以将形成的20个不同的文章集合构造成20个不同的多样性的矩阵,并分别计算这20个不同的多样性的矩阵的行列式,并从这20个不同的多样性的矩阵中选取行列式最大的矩阵为目标矩阵,并确定目标矩阵对应的文章集合所包括的1个候选文章为准备推荐的第1个目标文章。
在一些实施例中,参见图7,图7是本发明实施例提供的文章推荐方法的一个可选的流程示意图,基于图3,步骤S103可以通过步骤S1033实现,步骤S105可以通过步骤S1053实现,将结合各步骤进行说明。
在步骤S1033中,在第i次迭代过程中,在多个候选文章中遍历选取尚未被选取为目标文章的候选文章,并分别将所遍历选取的候选文章与目标文章、以及历史文章组合,形成与各个被选取的候选文章一一对应的文章集合。
作为示例,当服务器需要从20个候选文章中向用户推荐5个文章,并且第1个准备推荐的目标文章已经确定时,在第2次迭代过程中,从剩下的19个候选文章中遍历选取1个候选文章,并将这1个候选文章分别与历史文章组合,以形成19个不同的文章集合,并且这19个不同的文章集合与选取的候选文章一一对应。
在步骤S1053中,根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第i-1次迭代过程中确定的准备推荐的目标文章,其中,2≤i≤I-1,i为整数,I为所述多个候选文章的数量。
作为示例,服务器可以将形成的19个不同的文章集合构造成19个不同的多样性的矩阵,并分别计算这19个不同的多样性的矩阵的行列式,并从这19个不同的多样性的矩阵中选取行列式最大的矩阵为目标矩阵,并确定目标矩阵对应的文章集合所包括的1个候选文章为准备推荐的第2个目标文章。以此类推,直至准备推荐的文章数量达到了5个后停止迭代处理过程。
本发明实施例通过从多个候选文章中一次只确定一个准备推荐的目标文章,并通过迭代计算直至选取目标数量的文章推荐至用户,不仅提高了推荐文章之间的多样性,而且增强了推荐文章和用户之间的相关性,从而提高了推荐文章的效率。
下面,将结合图8说明本发明实施例提供的文章推荐方法具体应用于向用户推荐文章的示例性应用,图8是本发明实施例提供的文章推荐方法的一个可选的流程示意图。
在步骤S201中,服务器使用排序模型对召回文章进行相关度打分。
其中,召回文章是指服务器根据用户的画像数据,从服务器存储的待推荐的全部候选文章中筛选出和用户的画像数据更匹配的待推荐的多个候选文章。
在一些实施例中,使用排序模型对召回文章进行相关度打分,即输入是召回文章集合,输出是每个文章与用户的相关度得分。排序模型可以是逻辑回归或者深度模型,通过模型推理计算得分。
在步骤S202中,服务器通过word2vec获得待推荐文章的向量表示。
在一些实施例中,可以通过神经语言程序学(NLP,Neuro-LinguisticProgramming)无监督的word2vec、全局矩阵分解(GloVe,global matrix factorization)模型或双向传输的大规模预训练语言(BERT,Bidirectional Encoder Representationsfrom Transformers)模型获得文章的向量表示。
在步骤S203中,服务器基于待推荐文章的相关度得分和文章的向量表示,构造多样性矩阵。
在步骤S204中,服务器将多样性矩阵使用乔利斯基(Cholesky)分解以及次模函数转化为求解集合中所有子集出现概率最大化,从而获得准备推荐的文章。
本发明实施例中,由于满足条件的子集有指数个子集,计算每个子集的出现概率需要求解一个矩阵的行列式,计算量大,因此,可以基于次模函数性质以及贪心思想,最终转化为迭代式计算,复杂度降低。多样性阶段没有显式依赖用户兴趣,因此无需人工干预计算每个类别需要推荐的文章数量;文章间的相似度通过无监督模型学习得到的向量表示进行度量,因此,文章的分类对多样性影响可以忽略。本发明实施例通过最大化概率,获得文章推荐列表,不拟合用户主兴趣,可以平衡用户的主兴趣和弱兴趣。
图9a和图9b是本发明实施例提供的文章推荐方法的一个可选的应用场景示意图,结合图9a和图9b进行说明。
相关技术中,信息推荐客户端主要向用户分发包括图文、视频以及小视频等内容,其中图文占约80%槽位。信息推荐客户端根据用户历史行为个性化推荐符合用户兴趣的内容,图9a示出了信息推荐客户端界面展示的图文内容。个性化体现在用户的画像数据上,服务器获取用户的历史行为以及用户的画像数据等用户侧所有信息之后,从海量文章中召回与用户最匹配的部分文章,然后根据计算每篇文章与用户的相关度得分做排序,最后是进行多样性打散,将最终结果按槽位展示出来,但在发明实施例的实施过程中发现客户端出现图9b所示的情况,即三篇新闻都是符合用户兴趣,相似度较高的几篇文章被集中分配,这很大程度影响用户继续刷新和页面浏览量(PV,Page View)。
图10是本发明实施例提供的文章推荐方法的一个可选的原理示意图,将结合图10进行说明。
参见图10,信息推荐客户端的整体推荐架构主要由离线部分和在线部分构成,在线部分对耗时要求极高而且体现更加敏感。相比在线部分,离线部分对耗时要求不高,主要是一些统计类的工作,例如,需要统计用户前三天的所有点击的新闻,新闻的频道,新闻的分类标签(tag),以及新闻的点击率。通过这些信息,可以构建用户的长短期画像,长期画像可以理解为用户性别、年龄,变化周期不大,而短期画像主要由近期用户的行为产生,如点击新闻的tag、频道。构建画像的目的在于从海量新闻中召回部分相关度更高的文章计算得分,因为计算得分是线性耗时,在线部分对耗时敏感,计算完得分之后,需要按照用户的兴趣分布按得分倒序插入新闻至对应槽位(即多样性展示)。其中,线性耗时是指计算文章数量和总体计算耗时成线性增长。
以相关技术中的按照人工规则进行推荐文章的方法为例,首先按得分倒序排序的N篇文章为{doc1,doc2,doc3,...,docN},其中,N为正整数,docN为第N篇文章。用户兴趣分布为{科技:0.4,娱乐:0.3,财经:0.2,体育:0.1},需要给用户推荐10篇文章,在此不限定每个频道的新闻个数,假定doc1类属娱乐,doc2类属科技,doc3类属科技...,根据兴趣分布可以看到主兴趣为科技,其次才是娱乐,因此第一个槽位应该分配给doc2,之后是doc3...,之后是doc1,...。在分配完doc2之后,需要根据各种策略分配第二个槽位,doc3的tag是否已经出现在doc2,doc3与doc2的文章相似度是否超过给定阈值,如果超过说明二者类似则不满足多样性,继续取得分倒序文章中的下一篇文章。重复上述过程,直到分配10篇文章为止。其中,得分是衡量文章和用户之间相关度的指标,相关度越高得分越高。
本发明实施例在一定程度上能满足文章的多样性,但也会出现图9b所示的情况。因此,基于用户多次刷新的情况,本发明实施例提出一种基于行列式点过程的文章推荐方法,通过本发明实施例不仅能够保证用户与文章相关度高,而且能够保证推荐文章的多样性。
图11是本发明实施例提供的文章推荐方法的一个可选的流程示意图,将结合图11进行说明。
离线处理过程:文章集的处理过程较为复杂,包括:文章特征的提取,新闻类别的划分,新闻中是否包含图片,文本或者图片中是否有低俗内容等。首先通过word2vec算法无监督的获得每个文章的向量表示fi={fi,fi2,...,fin},其中,n为向量的维度,n取值可以为任意正整数,线上环境中令n=150。文章i和j之间的相似度可以通过计算文章i和j的向量内积得到,向量内积标识文章和文章之间的相似度。
在线多样性过程:召回过程和排序排序,如图11所示,召回算法有多种,包括:协同过滤(CF,Collaborative Filtering)算法,矩阵分解(MF,Matrix Factorization)算法,DSSM等,实质是通过算法将与用户最相似的新闻从海量新闻池中筛选出来作为排序算法的输入;线上通过LR排序模型对每篇新闻进行相关度打分,通过相关度得分衡量点击率,得分最高的文章认为被用户点击的概率最大,设有序文章集合为DS={doc
1,doc
2,doc
3,...,doc
N},文章i用向量表示为
则对应的有序文章集合向量表示分别为FS={f
1,f
2,...,f
N},对应的相关度得分为SS={r
1,r
2,...,r
N}。
构造多样性矩阵L,使得
根据公式(3)可得,矩阵L
ij表示文章i和文章j之间的相关度(与用户之间的相关度)和相似度的乘积,设
其中Y
g为理想情况下推荐给用户的最佳文章子集,因此
其中,LY为索引矩阵L得到的子矩阵。行列式物理意义是组成矩阵的向量张成空间的面积或者体积,行列式越大,矩阵的张成角度越大,组成矩阵的文章向量就约正交,从而文章间的相似度越小,所以文章多样性越大,且同时考虑到了文章与用户的相关度,因此是最佳的文章集合。
设N=100,最终需要给用户推荐M=10(M<N)个文章,只需要计算
个DS的文章子集对应的行列式,行列式最大的子集即为满足多样性条件的文章集合。由于行列式的计算复杂度比较高,而且遍历
为指数级,因此,通过次模函数将公式(5)转化为
然后通过Cholesky分解得到
为了提升信息推荐客户端用户的刷新和曝光,本发明实施例提供的文章推荐方法,适用于当用户已经刷新S-1屏,在刷新到第S屏时,需要考虑到历史刷新情况,即服务器在推荐第S屏新闻时,需要权衡准备推荐的文章和前S-1屏新闻的相似度以及和用户的相关度。
作为示例,用户A的主兴趣包括互联网,服务器通过客户端对用户A进行多次推荐时,客户端中前后会话(session)出现的文章集中在互联网方面,会造成信息茧房,导致用户的体验受损。通过本发明实施例所提供的文章推荐方法,通过客户端推荐给用户的每个session的文章都能满足公式(7)的迭代。首先构造一个Yg序列,序列中包含客户端历史session中已推荐的历史文章;然后以空集初始化Yg序列;最后对Yg序列中的文章通过公式(7)做预迭代,则可计算得到客户端历史session对当前session的影响向量ci和ei,因此只需要从最后一个已推荐的文章(即客户端上一个session中的最后一个文章)开始迭代即可获得准备推荐的文章,然后对待推荐的文章继续迭代计算,直至获得全部准备推荐的文章。
本发明实施例以空集初始化Yg序列是因为客户端在多session情况下,需要从历史session迭代到当前session才能计算到最后一个已推荐的文章,因此需要以空集初始化Yg序列。
图12a、图12b和图12c是相关技术中文章推荐方法进行线上测试的效果图;图13a、图13b和图13c是本发明实施例提供的文章推荐方法进行线上测试的效果图。
通过比较图12a、图12b、图12c、图13a、图13b和图13c,本发明实施例提供的文章推荐方法在文章推荐过程中,图文总时长提升了2.38%,图文PV量提升了1.26%,用户刷新量提升了1.19%。周末节假日高峰,天级PV量可以增加1.2kw+,天级用户刷新次数可以增加230w+,提高了应用效果和收益。
为便于比较本发明实施例提供的文章推荐方法和相关技术中的文章推荐方法,进一步细化指标,通过对客户端多session和单session的文章分类数量和二级文章分类数量以及文章平均tag数来衡量多样性优劣。图14是本发明实施例提供的文章推荐方法和相关技术中文章推荐方法效果比较图,图14中相关技术1是根据人工规则进行文章推荐的方法,相关技术2是根据用户历史行为推荐文章的方法。通过图14,本发明实施例提供的文章推荐方法具有良好的推荐效果。
下面继续说明本发明实施例提供的文章推荐装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的文章推荐装置555中的软件模块可以包括:获取模块5551、选取模块5552、构造模块5553、选取推荐模块5554以及执行模块5555。
获取模块,用于获取向用户已推荐的历史文章,并根据所述用户的画像数据,获取针对所述用户的待推荐的多个候选文章;
选取模块,用于选取至少一个所述候选文章并与所述历史文章组成文章集合;
构造模块,用于基于所述选取的候选文章与所述用户之间的相关度、以及所述选取的候选文章和所述历史文章之间的相似度,构造表征所述文章集合的多样性的矩阵;
选取推荐模块,用于根据所述矩阵的行列式,选取满足多样性条件的矩阵对应的候选文章为准备推荐的目标文章;
执行模块,用于基于所述目标文章执行对应所述用户的推荐操作。
在一些实施例中,所述选取模块,还用于在所述多个候选文章中遍历选取包括目标数量的候选文章的多个组合,并将遍历选取的多个组合分别与所述历史文章组合,形成与所述多个组合一一对应的多个文章集合。
在一些实施例中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的目标数量的候选文章,并确定为准备推荐的目标文章。
在一些实施例中,所述选取模块,还用于在第1次迭代过程中,在所述多个候选文章中遍历选取所有的候选文章,并将所遍历选取的候选文章分别与所述历史文章组合,形成与各个所述候选文章一一对应的文章集合。
在一些实施例中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第1次迭代过程中确定的准备推荐的目标文章。
在一些实施例中,所述选取模块,还用于在第i次迭代过程中,在所述多个候选文章中遍历选取尚未被选取为目标文章的候选文章,并分别将所遍历选取的候选文章与所述目标文章、以及所述历史文章组合,形成与各个被选取的候选文章一一对应的文章集合。
在一些实施例中,所述选取推荐模块,还用于根据多个文章集合的矩阵的行列式,选取行列式最大的矩阵对应的文章集合所包括的候选文章,并作为在第i-1次迭代过程中确定的准备推荐的目标文章,其中,其中,2≤i≤I-1,i为整数,I为所述多个候选文章的数量。
在一些实施例中,所述获取模块,还用于通过第一相关度排序模型,并根据所述用户的画像数据对多个文章进行排序,获得表征所述文章和所述用户之间的相关度的降序排列;在所述降序排列中选取在前的部分文章,以作为针对用户的待推荐的候选文章。
在一些实施例中,所述获取模块,还用于获取预设时间段内通过相同或不同客户端向所述用户已推荐的历史文章,或者,获取通过相同或不同客户端向所述用户已推荐的全部历史文章。
在一些实施例中,还包括相关度获取模块,用于提取所述用户的画像数据中的特征;根据所述用户的画像数据中的特征,从所述选取的候选文章中提取特征词;基于所述特征词训练第二相关度排序模型,并通过所述第二相关度排序模型获得所述选取的候选文章与所述用户之间的相关度;其中,所述选取的候选文章与所述用户之间的相关度表征所述选取的候选文章被所述用户点击的概率。
在一些实施例中,还包括相似度获取模块,用于通过词向量模型,获得所述选取的候选文章和所述历史文章用各自对应的特征向量;确定所述选取的候选文章的特征向量和所述历史文章的特征向量之间的余弦距离或欧式距离,并确定为所述选取的候选文章和所述历史文章之间的相似度。
在一些实施例中,所述相似度获取模块,还用于获取所述选取的候选文章和所述历史文章中的特征词,并基于所述特征词训练所述产生词向量的模型;基于所述产生词向量的模型,获得所述选取的候选文章和所述历史文章中各自对应的特征向量。
在一些实施例中,所述选取推荐模块,还用于确定所述多样性的矩阵的行列式,其中,所述行列式表征所述文章集合的多样性;确定所述行列式最大的多样性的矩阵为目标矩阵;根据所述目标矩阵确定对应的候选文章为准备推荐的目标文章。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的文章推荐方法,例如,如图3示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在HTML文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
针对上述问题,本发明提供的实施例不仅可以解决以上技术问题,而且具有以下有益效果:
1)通过获取向用户已推荐的历史文章以及针对用户的待推荐的候选文章,选取至少一个候选文章和历史文章组成文章集合并构造多样性矩阵,不仅能够保证向用户推荐的文章符合用户的兴趣,而且能够提高推荐文章的多样性,从而提升文章推荐的效率。
2)在不损失单刷多样性的情况下能进一步提升多刷多样性,提升用户的体验。
3)基于次模函数性质以及贪心思想,将行列式计算最终转化为迭代式计算,复杂度降低。多样性阶段没有显式依赖用户兴趣,因此无需人工干预计算每个类别需要推荐的文章数量;文章间的相似度通过无监督模型学习得到的向量表示进行度量,因此,文章的分类对多样性影响可以忽略。
4)通过最大化概率,获得文章推荐列表,不拟合用户主兴趣,可以平衡用户的主兴趣和弱兴趣。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。