1.本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种内容召回方法、装置、介质及计算设备。
背景技术:2.本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.随着互联网的迅速发展,网络上的信息量也大幅增长,虽然用户可以接触到海量的信息,但由于信息量远远超出了个人的信息处理能力范围,导致用户无法获取到对自己真正有用的信息,影响了用户对于有效信息的获取效率,这就是所谓的信息超载。
4.目前,针对上述信息超载的问题,用户可以通过使用搜索引擎工具来满足自己的信息需求,例如,用户在搜索引擎中输入“花样滑冰”之后,可以搜索到包含“花样滑冰”的内容。
5.然而,基于同一个词汇进行检索时,通常会得到大量过于重复的内容,造成信息冗余,而用户对于信息的需求是个性化的,每个用户都有不同的偏好。因此,搜索引擎工具并不能满足用户的个性化需求,仍然无法很好的解决信息超载的问题。
技术实现要素:6.在本上下文中,本公开的实施方式期望提供一种内容召回方法及装置。
7.在本公开实施方式的第一方面中,提供了一种内容召回方法,包括:
8.获取用户对应的属性信息,以及用户与内容的交互日志;
9.基于所述用户与内容的交互日志,确定所述内容对应的内容特征;
10.基于所述属性信息和所述内容特征,确定所述用户对应的用户特征;
11.通过对所述用户特征和所述内容特征进行相似度计算,确定与所述用户对应的内容召回结果。
12.在本公开的一个实施例中,所述基于所述用户与内容的交互日志,确定所述内容对应的内容特征,包括:
13.基于所述用户与内容的交互日志,对第一模型进行训练,得到训练完成的第一模型;
14.根据所述训练完成的第一模型对应的第一模型文件,确定所述内容对应的内容特征。
15.在本公开的一个实施例中,所述基于所述属性信息和所述内容特征,确定所述用户对应的用户特征,包括:
16.基于预设的算法确定所述属性信息对应的属性特征;
17.基于所述属性特征和所述内容特征,对第二模型进行训练,得到训练完成的第二模型;
18.根据所述训练完成的第二模型对应的第二模型文件,确定所述用户对应的用户特征。
19.在本公开的一个实施例中,所述第一模型包括word2vec模型,所述第二模型包括youtube深度神经网络推荐模型。
20.在本公开的一个实施例中,所述第一模型在训练时输入的训练样本包括用户点击序列,所述用户点击序列中的元素至少包括用户标识、内容标识以及内容对应的分类标识。
21.在本公开的一个实施例中,所述第二模型包括:输入层、网络层和分类层;其中,所述网络层采用多层感知机堆叠的塔状结构,所述塔状结构中各个多层感知机的神经元数目由下而上依次减少;
22.所述第二模型的训练过程包括:
23.基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建训练样本集;
24.基于所述训练完成的第一模型,确定所述训练样本集中的内容对应的内容特征;
25.基于预设的算法确定所述训练样本集中属性信息对应的属性特征,并将所述属性特征和所述内容特征经过所述输入层进行拼接后,得到拼接特征;
26.所述拼接特征经过所述网络层和所述分类层处理后,输出预测分;
27.根据所述训练样本集以及所述预测分,对所述第二模型进行训练。
28.在本公开的一个实施例中,所述方法还包括:
29.基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建验证样本集;
30.通过所述验证样本集判断所述第二模型的分类能力是否达标;
31.响应于所述分类能力未达标,修改所述第二模型的参数重新进行训练,直至所述分类能力达标,获得训练后的所述第二模型。
32.在本公开的一个实施例中,所述属性信息至少包括以下一种或多种的组合:所述用户的地理位置、所述用户的设备信息、所述用户偏好的内容类别或用户的兴趣点。
33.在本公开的一个实施例中,所述用户与内容的交互日志包括内容曝光日志;所述训练样本包括由用户点击过的内容构成的正样本,以及用户未点击过的负样本。
34.在本公开的一个实施例中,所述通过对所述用户特征和所述内容特征进行相似度计算,确定与所述用户对应的召回结果,包括:
35.基于所述用户特征构建用户矩阵,以及基于所述内容特征构建内容矩阵;
36.根据所述用户矩阵与所述内容矩阵进行矩阵相乘计算后的结果,确定与所述用户对应的召回结果。
37.在本公开实施方式的第二方面中,提供了一种内容召回装置,包括:
38.获取模块,获取用户对应的属性信息,以及用户与内容的交互日志;
39.内容特征确定模块,基于所述用户与内容的交互日志,确定所述内容对应的内容特征;
40.用户特征确定模块,基于所述属性信息和所述内容特征,确定所述用户对应的用户特征;
41.相似度计算模块,通过对所述用户特征和所述内容特征进行相似度计算,确定与
所述用户对应的内容召回结果。
42.在本公开实施方式的第三方面中,提供了一种存储介质;其上存储有计算机指令,该指令被处理器执行时实现任一所述内容召回方法。
43.在本公开实施方式的第四方面中,提供了一种计算设备,包括:
44.处理器;以及,用于存储处理器可执行指令的存储器;
45.其中,所述处理器通过运行所述可执行指令以实现任一所述内容召回方法。
46.本公开以上的实施方式,至少具有如下的有益效果:.
47.通过基于用户与内容的交互日志确定内容特征,再根据用户对应的属性信息和确定出的内容特征确定用户特征,并进一步通过对用户特征和内容特征的相似度计算,确定与用户对应的内容召回结果。在以上过程中,通过确定内容特征,捕获内容之间的相似性,再通过属性信息和内容特征相结合的方式,提升了用户特征的丰富性,最后通过用户特征和内容特征的有机结合,打破了原本仅依赖于用户交互进行召回的局限性,从内容相似性和用户交互两个维度提升了召回内容的丰富度,从而提高了用户点击率和浏览时长。
附图说明
48.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
49.图1示意性地示出了根据本公开实施方式的一种内容召回方法的流程图;
50.图2示意性地示出了根据本公开实施方式的一种第二模型结构的示意图;
51.图3示意性地示出了根据本公开实施方式的一种第二模型训练过程的示意图;
52.图4示意性地示出了根据本公开实施方式的一种内容召回方法的示意图;
53.图5示意性地示出了根据本公开实施方式的一种内容召回装置的框图;
54.图6示意性地示出了根据本公开实施方式的一种内容召回介质的示意图;
55.图7示意性地示出了根据本公开实施方式的一种能够实现上述方法的电子设备的示意图。
56.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
57.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
58.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机可读存储介质。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
59.根据本公开的实施方式,提出了一种内容召回方法、装置、介质和计算设备。
60.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。并且,本公开所涉及的数据可以为经用户授权
或经过各方充分授权的数据。
61.下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
62.应用场景总览
63.由前述可知,搜索引擎工具不能很好的解决信息超载的问题,也不能满足用户的个性化需求。为此,可以采用个性化推荐系统,通过收集到的用户的信息需求、兴趣爱好等相关数据(在用户同意使用相关数据的前提下),从互联网的海量信息中,筛选出用户可能感兴趣的信息、产品等内容,并推荐给用户,从而满足用户的信息需求,提高用户的信息获取效率。
64.上述推荐系统在为用户进行内容推荐的过程中,通常可以分为召回、排序两个阶段。其中,在召回阶段,可以基于从海量内容中,为用户粗选出待推荐的候选内容,而在排序阶段,则根据实际业务需求对候选内容进行排序,得到最终的推荐结果。
65.传统的召回思路是先离线计算好内容对应的向量,以及用户对应的向量,在线上召回的时候,根据用户对应的向量去和所有内容对应的向量进行内积运算,选取出前n个内容,作为用户对应的内容召回结果。
66.但随着互联网的迅猛发展,通常会存在海量的内容可供用户访问,以热门视频网站为例,视频数量可能是百万级的,但在为用户进行视频召回时,只会检索出一小部分的视频用于后续的排序操作,所以召回阶段需要处理的数据量非常大,并且要求处理速度快,而传统的召回思路明显性能不足,已经不能满足上述需求了。
67.youtube深度推荐系统(deep neural network for youtube recommendations)是由paul covington等人在2016年提出的一种基于神经网络的深度学习推荐算法。youtube深度推荐系统把推荐问题建模成一个超大规模多分类问题,即softmax分类,通过对用户浏览历史和其余上下文信息等进行学习,预估用户对潜在候选内容的偏好程度。youtube深度推荐系统以其简洁的架构设计,可以在百万级的候选商品规模下进行个性化推荐。
68.当前,可以将youtube深度推荐系统的模型用于召回阶段,基于用户和内容的交互行为进行建模,通过模型训练得到用户的向量表示,以及内容的向量表示,然后通过预测函数为每个用户确定出该用户可能偏好的前n个内容作为召回结果。
69.然而,采用youtube模型进行召回的方式,主要依赖于用户和内容的交互行为进行建模,建模方式较为单一,信息量较为有限,导致召回内容的丰富度不足。
70.需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
71.发明概述
72.本发明人发现,在将youtube深度推荐系统的模型用于召回环节时,需要基于用户和内容的交互行为进行建模,而仅从交互维度出发进行建模得到的信息量较为有限,导致召回内容的丰富度受限,不能满足用户多样化的真实需求。
73.有鉴于此,本说明书提供一种通过基于用户与内容的交互日志确定内容特征,再根据用户对应的属性信息和确定出的内容特征确定用户特征,并进一步通过对用户特征和内容特征的相似度计算,确定与用户对应的内容召回结果,从而从内容相似性和用户交互
两个维度提升召回内容的丰富度的技术方案。
74.本说明书的核心技术构思在于:
75.为了满足用户的个性化推荐需求,通过获取用户对应的属性信息,以及用户与内容的交互日志,从多个维度提升召回内容的丰富度。进一步的,首先基于用户与内容的交互日志,确定与内容对应的内容特征,该内容特征融入了内容之间的相似性,提升了内容特征的信息量;然后基于得到的内容特征,结合属性信息,从多个维度确定用户对应的用户特征;最后对用户特征和内容特征进行相似度计算,确定与用户对应的内容召回结果。
76.通过以上技术方案,通过确定内容特征,捕获内容之间的相似性,再通过属性信息和内容特征相结合的方式,提升了用户特征的丰富性,最后通过用户特征和内容特征的有机结合,打破了原本仅依赖于用户交互进行召回的局限性,从内容相似性和用户交互两个维度提升了召回内容的丰富度,从而提高了用户点击率和浏览时长。
77.在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
78.示例性方法
79.下面将通过具体的实施例对本说明书的技术构思进行详细描述。
80.本公开旨在提供一种通过基于用户与内容的交互日志确定内容特征,再根据用户对应的属性信息和确定出的内容特征确定用户特征,并进一步通过对用户特征和内容特征的相似度计算,确定与用户对应的内容召回结果,从而从内容相似性和用户交互两个维度提升召回内容的丰富度的技术方案。
81.在实现时,可以先获取用户对应的属性信息,以及用户与内容的交互日志。
82.例如,可以获取用户对应的属性信息,属性信息可以包括用户的地理位置、所述用户的设备信息、所述用户偏好的内容类别或用户的兴趣点等与用户相关的信息,还可以获取用户与内容的交互日志,交互日志中记录了用户与内容的交互行为,交互行为包括点击行为、浏览行为、收藏行为、点赞行为、转发行为或评论行为等。
83.然后,可以基于所述用户与内容的交互日志,确定所述内容对应的内容特征。
84.例如,可以基于用户与内容的交互日志,构建训练样本,对第一模型进行训练,得到训练完成的第一模型对应的第一模型文件,该文件中存储了内容对应的内容特征。
85.接着,可以基于所述属性信息和所述内容特征,确定所述用户对应的用户特征。
86.例如,可以先基于预设的算法确定属性信息对应的属性特征,再基于属性特征和内容特征对第二模型进行训练,得到训练完成的第二模型对应的第二模型文件,该文件中存储了用户对应的用户特征。
87.最后,可以通过对所述用户特征和所述内容特征进行相似度计算,确定与所述用户对应的内容召回结果。
88.例如,可以基于所述用户特征构建用户矩阵,以及基于所述内容特征构建内容矩阵;然后,可以根据所述用户矩阵与所述内容矩阵进行矩阵相乘进行相似度计算,并根据计算得到的结果确定与所述用户对应的召回结果。
89.通过以上技术方案,通过确定内容特征,捕获内容之间的相似性,再通过属性信息和内容特征相结合的方式,提升了用户特征的丰富性,最后通过用户特征和内容特征的有机结合,打破了原本仅依赖于用户交互进行召回的局限性,从内容相似性和用户交互两个
维度提升了召回内容的丰富度,从而提高了用户点击率和浏览时长。
90.请参见图1,图1是一示例性实施例提供的一种内容召回方法的流程图,包括以下步骤:
91.步骤101,获取用户对应的属性信息,以及用户与内容的交互日志。
92.在本实施例中,可以分别获取用户对应的属性信息,以及用户与内容的交互日志。
93.例如,在为用户进行内容召回时,可以根据用户id,查找数据库中存储的与用户对应的属性信息,以及用户与内容的交互日志。
94.上述交互日志可以记录了用户的历史交互行为,例如用户对不同内容的点击行为、浏览行为、收藏行为、点赞行为、转发行为或评论行为等。
95.其中,对于获取什么时段的交互日志,或者获取交互日志中的哪些行为等,本领域技术人员可以根据需要自行选择,本公开对此不做限制。
96.上述属性信息对应了与用户相关的信息,可以用于描述用户的特征。
97.在示出的一种实施方式中,所述属性信息至少包括以下一种或多种的组合:所述用户的地理位置、所述用户的设备信息、所述用户偏好的内容类别或用户的兴趣点。
98.对于上述属性信息,本领域技术人员可以根据需要进行不同的组合,甚至可以增加新的信息以更加详细的描述用户的特征,本公开对此不做限制。
99.步骤102,基于所述用户与内容的交互日志,确定所述内容对应的内容特征。
100.在本实施例中,可以基于上述获取到的用户与内容的交互日志,确定内容对应的内容特征。
101.例如,可以引入模型利用上述交互日志进行训练,捕获用户交互过的内容之间的相似性,通过训练得到的模型文件确定内容特征。
102.在示出的一种实施方式中,可以基于所述用户与内容的交互日志,对第一模型进行训练,得到训练完成的第一模型;可以根据所述训练完成的第一模型对应的第一模型文件,确定所述内容对应的内容特征。
103.例如,可以根据用户与内容的交互日志,构建训练样本,对构建的第一模型进行训练,直至得到训练完成的第一模型;进一步的,可以获取训练完成的第一模型对应的第一模型文件,该第一模型文件中以结构化的形式存储了各个内容对应的内容特征。
104.其中,上述第一模型可以是word2vec模型,在训练时可以将输入的单词序列替换为用户点击序列,根据word2vec模型的原理,可以捕获用户点击的内容之间的相似性,并获得各个内容对应的内容特征。
105.在示出的一种实施方式中,所述第一模型在训练时输入的训练样本包括用户点击序列,所述用户点击序列中的元素至少包括用户标识、内容标识以及内容对应的分类标识。
106.例如,假设用户标识可以用a1-an表示,商品标识可以用b1-bn表示,商品对应的分类标识可以用c1-cn表示,那么根据用户与商品的交互日志,可以构建出以下用户点击序列:
107.[a1:b1,c1、b2,c2、
……
、bn,cn];
[0108]
[a2:b1,c1、b2,c2、
……
、bn,cn];
[0109]
……
[0110]
[an:b1,c1、b2,c2、
……
、bn,cn]
[0111]
值得说明的是,上述构建出的用户点击序列仅仅是一个描述性的示例,并非是进行限制。
[0112]
其中,商品种类可以是商品相关度最大的分类。通过第一模型可以捕获用户、商品和商品种类之间的关系,并分别获得对应的向量表示。后续,可以根据商品id从第一模型对应的第一模型文件中,提取商品向量。
[0113]
步骤103,基于所述属性信息和所述内容特征,确定所述用户对应的用户特征。
[0114]
在本实施例中,在获取到上述内容特征之后,可以结合获取到的属性信息,进一步确定用户对应的用户特征。
[0115]
例如,可以根据属性信息和内容特征构建训练样本,对引入的模型进行训练,通过训练得到的模型文件确定用户特征。
[0116]
在示出的一种实施方式中,可以基于预设的算法确定所述属性信息对应的属性特征;基于所述属性特征和所述内容特征,对第二模型进行训练,得到训练完成的第二模型;根据所述训练完成的第二模型对应的第二模型文件,确定所述用户对应的用户特征。
[0117]
例如,可以先基于已有的词向量模型,将属性信息转换成对应的向量表示,得到属性特征;再将属性特征和内容特征进行拼接,输入至第二模型进行训练,得到训练完成的第二模型;然后可以根据训练完成的第二模型对应的第二模型文件,确定用户对应的用户特征。
[0118]
其中,上述第二模型可以是youtube深度神经网络推荐模型,在训练时可以通过对youtube模型进行改进,将基于前述word2vec模型得到的内容特征作为youtube模型的输入。
[0119]
在示出的一种实施方式中,所述第二模型包括:输入层、网络层和分类层。其中,所述网络层采用多层感知机堆叠的塔状结构,所述塔状结构中各个多层感知机的神经元数目由下而上依次减少。
[0120]
进一步的,所述第二模型的训练过程包括:
[0121]
基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建训练样本集;基于所述训练完成的第一模型,确定所述训练样本集中的内容对应的内容特征;基于预设的算法确定所述训练样本集中属性信息对应的属性特征,并将所述属性特征和所述内容特征经过所述输入层进行拼接后,得到拼接特征;所述拼接特征经过所述网络层和所述分类层处理后,输出预测分;根据所述训练样本集以及所述预测分,对所述第二模型进行训练。
[0122]
为了使本领域技术人员更好地理解本公开示出的实施例,接下来分别对第二模型的结构,以及第二模型的训练过程进行举例说明。
[0123]
请参见图2,图2是一示例性实施例提供的一种第二模型结构的示意图。如图2所示,第二模型分为输入层、网络层和分类层。
[0124]
其中,输入层可以用于对属性特征和内容特征进行拼接,得到拼接特征。对于采用何种拼接方式,本领域技术人员可以根据需要自行选择,本公开对此不做限制。
[0125]
而网络层则采用多层感知机堆叠的塔状结构,所述塔状结构中各个多层感知机的神经元数目由下而上依次减少。如图2所示塔状结构中,采用relu(rectified linear unit,修正线性单元)作为神经元的激活函数,塔底最宽,神经元数目为1024个,往上层的神
经元数目依次减半,分别为512个和256个。另外,需要说明的是,本领域技术人员可以根据需要灵活设置塔状结构的层数和神经元数目,本公开对此不做限制。
[0126]
通过使用上述多层感知机,可以使连续性变量和类别变量都更容易输入到模型中,采用塔状结构则可以减小多层感知机的输出维度。
[0127]
而softmax层则用于完成多分类任务,基于用户特征和内容特征进行预测,得到用户点击内容的概率,并以此预测结果对模型进行训练。
[0128]
进一步的,请参见图3,图3是一示例性实施例提供的一种第二模型训练过程的示意图。
[0129]
如图3所示,上述第二模型的训练过程包括以下步骤:
[0130]
步骤301,基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建训练样本集。
[0131]
例如,可以根据用户的地理位置、所述用户的设备信息、所述用户偏好的内容类别或用户的兴趣点等属性信息,以及用户与内容的点击行为、浏览行为、收藏行为、点赞行为、转发行为或评论行为等交互行为,构建训练样本集。
[0132]
在示出的一种实施方式中,所述用户与内容的交互日志包括内容曝光日志;所述训练样本包括由用户点击过的内容构成的正样本,以及用户未点击过的负样本。
[0133]
例如,用户与内容的交互日志可以是内容曝光日志,包括了展示给用户的内容中用户点击了哪些内容,未点击哪些内容。进一步的,可以将用户点击过的内容作为正样本,而将用户未点击的内容作为负样本。
[0134]
步骤302,基于所述训练完成的第一模型,确定所述训练样本集中的内容对应的内容特征。
[0135]
例如,可以基于word2vec模型的模型文件,根据训练样本集中的内容对应的id确定word2vec模型文件中的内容向量。
[0136]
步骤303,基于预设的算法确定所述训练样本集中属性信息对应的属性特征,并将所述属性特征和所述内容特征经过所述输入层进行拼接后,得到拼接特征。
[0137]
例如,对于属性信息,可以直接使用已有的词向量模型,将属性信息转换成对应的向量表示,得到属性向量;再将属性向量和内容向量经过输入层进行拼接,得到拼接向量。
[0138]
值得说明的是,本领域技术人员可以根据实际需要选择词向量模型,无需单独进行额外训练,本公开对此不做限定。
[0139]
步骤304,所述拼接特征经过所述网络层和所述分类层处理后,输出预测分。
[0140]
例如,将上述拼接向量输入至网络层和softmax层进行处理后,可以得到预测分,对应用户点击内容的概率。
[0141]
步骤305,根据所述训练样本集以及所述预测分,对所述第二模型进行训练。
[0142]
例如,在确定出上述用户与内容的训练样本集,以及上述用户点击内容的预测结果之后,可以对youtube模型进行训练。
[0143]
对于训练后的第二模型,还可以模型的训练效果进行评估。
[0144]
在示出的一种实施方式中,可以基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建验证样本集;通过所述验证样本集判断所述第二模型的分类能力是否达标;响应于所述分类能力未达标,修改所述第二模型的参数重新进行训练,直至所述分
类能力达标,获得训练后的所述第二模型。
[0145]
在上述判断模型的分类能力时,可以参考roc(receiver operating characteristics,受试者工作特征)曲线,该曲线描述了一个模型正确分类与错误分类的平衡,是用于评价分类器性能的一个重要指标。roc曲线由两个变量绘制而成,分别是横轴fpr(false positive rate,假正例率)和纵轴tpr(true positive rate,真正例率)。
[0146]
举例来说,对于一个二分类问题,可以将样本数据分为正类(positive)或负类(negative),也就是正样本数据和负样本数据。那么在对样本数据进行预测时,通常会出现以下四种情况:
[0147]
正样本数据被预测为正类,称之为真正类(true positive,tp);
[0148]
负样本数据被预测为正类,称之为假正类(false positive,fp);
[0149]
负样本数据被预测为负类,称之为真负类(true negative,tn);
[0150]
正样本数据被预测为负类,称之为假负类(false negative,fn)。
[0151]
而上述fpr=fp/(fp+tn),即负类样本数据被分为正类的比例;
[0152]
上述tpr=tp/(tp+fn),即正类样本数据被分为正类的比例。
[0153]
继续举例,假设一批样本数据中包含200个样本,在对这批样本数据进行预测后,得到tp的数量为63个,fp的数量为28个,tn的数量为72个,fn的数量为37个,那么fpr=fp/(fp+tn)=28/(28+72)=0.28,tpr=tp/(tp+fn)=63/(63+37)=0.63。
[0154]
上述分类器在对于样本数据进行预测时,可以给出这批样本数据中每个样本是正类的概率。在绘制roc曲线时,首先需要对给出的概率值进行排序;然后可以按顺序逐个使用给出的概率值作为阈值,并对每个样本进行判断,如果样本是正类的概率达到了该阈值,则认为该样本为正类,反之为负类;再然后可以通过得到的分类结果计算fpr值和tpr值,这样就可以得到roc坐标系上的一个坐标点;最终,通过不断调整阈值进行判断和计算直到所有概率值都作为阈值使用之后,根据roc坐标系上的若干个坐标点,绘制出roc曲线。
[0155]
例如,如果一批样本数据中包含20个样本,那么需要根据上述可知,在对这20个样本是正类的概率进行排序之后,会按顺序将这20个概率值分别作为阈值对每个样本进行判断,通过不断调整阈值后计算得到20组(fpr,tpr),对应roc坐标系上的20个坐标点,从而绘制出roc曲线。
[0156]
其中,roc曲线的判定标准是曲线越靠近左上角,说明该模型的分类性能表现越佳。进一步的,可以基于auc(area under the roc)的面积,即roc曲线下方区域的面积来量化roc曲线,作为模型的分类能力指标。auc面积越大,该模型分类的正确率就越高,分类能力越好。
[0157]
举例来说,在前述构建训练样本集时,可以同时构建验证样本集用于对模型进行验证;通过将验证样本集输入至模型进行预测,并计算auc面积,判断auc面积是否达到预设值;
[0158]
进一步的,如果auc面积未达到预设值,说明模型的分类能力未达标,需要修改模型的参数进行重新训练,直至分类能力达标为止;如果auc面积达到预设值,则说明模型的分类能力满足要求,无需再进行参数调整,模型训练已经完成。
[0159]
步骤104,通过对所述用户特征和所述内容特征进行相似度计算,确定与所述用户对应的内容召回结果。
[0160]
在本实施例中,可以通过对用户特征和内容特征进行相似度计算,确定与用户对应的内容召回结果。
[0161]
例如,在根据word2vec模型文件确定内容向量,以及根据youtube模型文件确定用户向量之后,可以将两个向量点乘进行相似度计算,得到计算结果靠前的n个内容作为与用户对应的内容召回结果。
[0162]
对于相似度计算的方式,本领域技术人员可以根据需要自行选择,如矩阵相乘、余弦相似度等方式,本公开对此不做限制。
[0163]
在示出的一种实施方式中,可以基于所述用户特征构建用户矩阵,以及基于所述内容特征构建内容矩阵;根据所述用户矩阵与所述内容矩阵进行矩阵相乘计算后的结果,确定与所述用户对应的召回结果。
[0164]
例如,为了提高召回的效率,可以同时对多个用户进行内容召回,在计算时,可以基于各个用户特征构建用户矩阵,并基于内容特征构建内容矩阵;进一步的,可以根据用户矩阵与内容矩阵进行矩阵相乘计算后的结果,为每个用户分别选取靠前的n个内容,作为与各个用户分别对应的内容召回结果。
[0165]
在以上实施例中,通过基于用户与内容的交互日志确定内容特征,再根据用户对应的属性信息和确定出的内容特征确定用户特征,并进一步通过对用户特征和内容特征的相似度计算,确定与用户对应的内容召回结果。
[0166]
通过以上技术方案,通过确定内容特征,捕获内容之间的相似性,再通过属性信息和内容特征相结合的方式,提升了用户特征的丰富性,最后通过用户特征和内容特征的有机结合,打破了原本仅依赖于用户交互进行召回的局限性,从内容相似性和用户交互两个维度提升了召回内容的丰富度,从而提高了用户点击率和浏览时长。
[0167]
接下来,以word2vec模型和youtube模型为例,从购物场景下为用户进行商品召回来介绍本公开的技术方案。请参见图4,图4是一示例性实施例提供的一种内容召回方法的示意图,包括以下步骤:
[0168]
步骤401,获取用户与商品的交互日志。
[0169]
具体的,可以根据用户id,查找数据库中存储的用户与商品的交互日志。
[0170]
进一步的,可以从用户与商品的交互日志中,获取用户对商品的交互行为,包括但不限于用户对商品的点击行为、浏览行为、收藏行为、点赞行为、转发行为或评论行为等。
[0171]
在一个例子中,在获取到交互日志之后,可以构建用户点击序列:[用户id,商品id,商品种类id]。其中,商品种类可以是商品相关度最大的分类。后续可以通过执行步骤402和步骤403,将商品的相关性和商品的分类信息融入商品的向量表示中,提升商品向量信息的丰富度。
[0172]
步骤402,对word2vec模型进行训练。
[0173]
具体的,可以基于用户与商品的交互日志构建训练样本,对word2vec模型进行训练。
[0174]
在一个例子中,可以在训练时输入上述用户点击序列作为训练样本,通过word2vec模型捕获用户、商品和商品种类之间的关系,并分别获得对应的向量表示。
[0175]
步骤403,得到word2vec模型文件。
[0176]
具体的,在word2vec模型训练完成之后,可以得到word2vec模型文件,该模型文件
中存储了用户、商品和商品种类对应的向量表示。后续可以通过执行步骤411,根据商品id从word2vec模型对应的word2vec模型文件中,提取商品向量。
[0177]
步骤404,获取用户对应的属性信息。
[0178]
具体的,可以根据用户id,查找数据库中存储的用户对应的属性信息。
[0179]
其中,上述属性信息对应了与用户相关的信息,可以用于描述用户的特征。
[0180]
在一个例子中,属性信息至少包括以下一种或多种的组合:所述用户的地理位置、所述用户的设备信息、所述用户偏好的商品类别或用户的兴趣点。
[0181]
步骤405,构建训练样本集。
[0182]
具体的,可以基于属性信息,以及用户与商品的交互日志,构建训练样本集。
[0183]
在一个例子中,用户与商品的交互日志包括商品曝光日志;商品曝光日志,包括了展示给用户的商品列表中用户点击了哪些商品,未点击哪些商品。进一步的,可以将用户点击过的商品作为正样本,而将用户未点击的商品作为负样本。
[0184]
步骤406,构建验证样本集。
[0185]
具体的,在执行步骤405构建训练样本集的同时,可以构建验证样本集,以用于后续步骤408对youtube模型的分类能力进行判断。
[0186]
步骤407,对youtube模型进行训练。
[0187]
具体的,youtube模型可以包括输入层、网络层和分类层;其中,所述网络层采用多层感知机堆叠的塔状结构,所述塔状结构中各个多层感知机的神经元数目由下而上依次减少。关于youtube模型结构的详细描述,可以参见前述关于图2的描述,在此不再赘述。
[0188]
进一步的,对于youtube模型的训练过程,包括:
[0189]
对于前述步骤405中构建的训练样本集,先基于预设的算法确定训练样本集中属性信息对应的属性向量,再根据word2vec模型文件确定训练样本集中商品对应的商品向量,然后将属性向量和商品向量经过youtube模型的输入层进行拼接后,将得到的拼接向量输入至youtube模型的网络层和分类层进行处理,得到用户点击商品的预测分,进而可以根据用户与商品的训练样本集,以及用户点击商品的预测结果对youtube模型进行训练。
[0190]
步骤408,判断分类能力是否达标。
[0191]
具体的,在上述步骤407对youtube模型进行训练之后,可以通过步骤406构建的验证样本集输入至youtube模型进行预测,根据得到的预测结果判断youtube模型的分类能力是否达标。
[0192]
进一步的,如果分类能力未达标,则修改youtube模型的参数重新执行步骤407进行训练,直至分类能力达标;如果分类能力达标,则执行步骤409。
[0193]
在一个例子中,在判断youtube模型的分类能力是否达标时,可以根据roc曲线中auc面积是否达到预设值来判断,auc面积越大,该模型分类的正确率就越高,分类能力越好。如果auc面积未达到预设值,说明模型的分类能力未达标,如果auc面积达到预设值,则说明模型的分类能力满足要求,无需再进行参数调整。
[0194]
步骤409,得到youtube模型文件。
[0195]
具体的,在youtube模型训练完成之后,可以得到youtube模型文件,该模型文件中存储了用户的向量表示。
[0196]
步骤410,确定用户向量。
[0197]
具体的,可以根据用户id从youtube模型文件中,提取该用户id对应的用户向量。
[0198]
步骤411,确定商品向量。
[0199]
具体的,可以根据商品id从word2vec模型文件中,提取该商品id对应的商品向量。
[0200]
值得说明的是,为了提高召回的效率,节约推荐系统的资源,可以同时对多个用户进行内容召回。
[0201]
步骤412,构建用户矩阵。
[0202]
具体的,可以基于各个用户向量构建用户矩阵。
[0203]
步骤413,构建商品矩阵。
[0204]
具体的,可以基于各个商品向量构建商品矩阵。
[0205]
步骤414,进行相似度计算。
[0206]
具体的,可以通过对用户矩阵和商品矩阵进行相似度计算。
[0207]
在一个例子中,可以对用户矩阵和商品矩阵进行矩阵相乘,得到相似度计算的结果。
[0208]
对于相似度计算的方式,本领域技术人员可以根据需要自行选择其他方式,本公开对此不做限制。
[0209]
步骤415,确定商品召回结果。
[0210]
在得到相似度计算的结果之后,可以对每个用户的计算结果按照数值大小进行排序,并分别为每个用户选取前n个商品,作为与各个用户分别对应的商品召回结果。
[0211]
值得说明的是,虽然上述步骤401~步骤415以购物场景下的商品召回为例,但根据前述可知,该方法也可以应用于文章、音乐或视频推荐等场景。另外,除了上述给出的word2vec模型和youtube模型,本领域技术人员也可以根据实际需求使用其他模型进行代替。
[0212]
在上述过程中,一方面,通过word2vec模型,将商品间的相关性和商品分类信息融入商品的向量表示中,提升了商品向量信息的丰富度;另一方面,通过youtube模型训练时,将基于word2vec模型文件得到的商品向量和用户对应的属性向量相结合,使得基于youtube模型文件得到的用户向量包含的信息更加丰富;另外,在召回时,通过商品向量和用户向量的有机结合,打破了原本仅依赖于用户交互进行召回的局限性,从内容相似性和用户交互两个维度提升了召回内容的丰富度,从而提高了用户点击率和浏览时长。
[0213]
示例性装置
[0214]
在介绍了本公开示例性实施方式的方法之后,接下来,请参见图5,图5是一示例性实施例提供的一种内容召回装置的框图。
[0215]
下述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
[0216]
如图5所示,内容召回装置500可以包括:获取模块501、内容特征确定模块502、用户特征确定模块503和相似度计算模块504。其中:
[0217]
获取模块501被配置为获取用户对应的属性信息,以及用户与内容的交互日志;
[0218]
内容特征确定模块502被配置为基于所述用户与内容的交互日志,确定所述内容对应的内容特征;
[0219]
用户特征确定模块503被配置为基于所述属性信息和所述内容特征,确定所述用户对应的用户特征;
[0220]
相似度计算模块504被配置为通过对所述用户特征和所述内容特征进行相似度计算,确定与所述用户对应的内容召回结果。
[0221]
在一实施例中,所述内容特征确定模块502进一步:
[0222]
基于所述用户与内容的交互日志,对第一模型进行训练,得到训练完成的第一模型;
[0223]
根据所述训练完成的第一模型对应的第一模型文件,确定所述内容对应的内容特征。
[0224]
在一实施例中,所述用户特征确定模块503进一步:
[0225]
基于预设的算法确定所述属性信息对应的属性特征;
[0226]
基于所述属性特征和所述内容特征,对第二模型进行训练,得到训练完成的第二模型;
[0227]
根据所述训练完成的第二模型对应的第二模型文件,确定所述用户对应的用户特征。
[0228]
在一实施例中,所述第一模型包括word2vec模型,所述第二模型包括youtube深度神经网络推荐模型。
[0229]
在一实施例中,所述第一模型在训练时输入的训练样本包括用户点击序列,所述用户点击序列中的元素至少包括用户标识、内容标识以及内容对应的分类标识。
[0230]
在一实施例中,所述第二模型包括:输入层、网络层和分类层;其中,所述网络层采用多层感知机堆叠的塔状结构,所述塔状结构中各个多层感知机的神经元数目由下而上依次减少;
[0231]
所述第二模型的训练过程包括:
[0232]
基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建训练样本集;
[0233]
基于所述训练完成的第一模型,确定所述训练样本集中的内容对应的内容特征;
[0234]
基于预设的算法确定所述训练样本集中属性信息对应的属性特征,并将所述属性特征和所述内容特征经过所述输入层进行拼接后,得到拼接特征;
[0235]
所述拼接特征经过所述网络层和所述分类层处理后,输出预测分;
[0236]
根据所述训练样本集以及所述预测分,对所述第二模型进行训练。
[0237]
在一实施例中,所述装置500还包括:
[0238]
验证样本集构建模块505,基于所述用户对应的属性信息,以及所述用户与内容的交互日志,构建验证样本集;
[0239]
分类能力判断模块506,通过所述验证样本集判断所述第二模型的分类能力是否达标;
[0240]
参数修改模块507,响应于所述分类能力未达标,修改所述第二模型的参数重新进行训练,直至所述分类能力达标,获得训练后的所述第二模型。
[0241]
在一实施例中,所述属性信息至少包括以下一种或多种的组合:所述用户的地理位置、所述用户的设备信息、所述用户偏好的内容类别或用户的兴趣点。
[0242]
在一实施例中,所述用户与内容的交互日志包括内容曝光日志;所述训练样本包括由用户点击过的内容构成的正样本,以及用户未点击过的负样本。
[0243]
在一实施例中,所述相似度计算模块504进一步:
[0244]
基于所述用户特征构建用户矩阵,以及基于所述内容特征构建内容矩阵;
[0245]
根据所述用户矩阵与所述内容矩阵进行矩阵相乘计算后的结果,确定与所述用户对应的召回结果。
[0246]
上述内容召回装置500的各个模块的具体细节已经在之前描述内容召回方法流程中进行了详细的描述,因此,此处不再赘述。
[0247]
应当注意,尽管在上文详细描述中提及内容召回装置500的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0248]
示例性介质
[0249]
在介绍了本公开示例性实施方式的装置之后,接下来,请参见图6,图6是一示例性实施例提供的一种内容召回介质的示意图。
[0250]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
[0251]
参考图6所示,描述了根据本公开的实施例的用于实现上述方法的可读存储介质600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的可读存储介质不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0252]
所述可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0253]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0254]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0255]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序
代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0256]
示例性计算设备
[0257]
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,请参见图7,图7是一示例性实施例提供的一种能够实现上述方法的电子设备的示意图。
[0258]
下面参照图7来描述根据本公开的这种实施例的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0259]
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
[0260]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元701执行,使得所述处理单元701执行本说明书上述各种实施例的步骤。
[0261]
存储单元702可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)7021和/或高速缓存存储单元7022,还可以进一步包括只读存储单元(rom)7023。
[0262]
存储单元702还可以包括具有一组(至少一个)程序模块7025的程序/使用工具7024,这样的程序模块7025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包含网络环境的现实。
[0263]
总线703可以包括控制总线、地址总线和数据总线。
[0264]
电子设备700也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信。这种通信可以通过输入/输出(i/o)接口705进行。并且,电子设备700还可以通过网络适配器706与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0265]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
[0266]
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0267]
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者
暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0268]
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。