用于内容推荐的方法、计算设备和计算机可读存储介质与流程

文档序号:28162449发布日期:2021-12-24 20:39阅读:62来源:国知局
用于内容推荐的方法、计算设备和计算机可读存储介质与流程

1.本发明概括而言涉及机器学习领域,更具体地,涉及一种用于内容推荐的方法、计算设备和计算机可读存储介质。


背景技术:

2.随着各种社交平台的不断发展,越来越多的用户通过这些社交平台来获取各种资讯。通常情况下,当用户向社交平台发布内容时,社交平台的服务器会对内容进行审核并评估内容的质量,从而决定是否向其他用户推荐该内容以及将该内容展示在用户终端的哪个位置。然而,社交平台上时时刻刻都在产生海量的内容,一方面,这对内容评估和推荐的速度提出了更高要求,传统的人工为主的方式将不再适用,另一方面,对这些海量内容进行评估和推荐要求必须使用更加客观且统一的评估手段。
3.当前,对内容的质量评估通常基于该内容所包含的一个主要模态的数据,例如文本数据、图像数据、视频数据或者音频数据,这已经不适应当前包含多个模态数据的内容的质量评估需要。


技术实现要素:

4.针对上述问题,本发明提供了一种内容推荐的方案,通过利用不同的神经网络模型对内容的多个模态的数据分别进行特征提取并将提取的特征进行交叉融合,从而获得该内容质量的统一表征。此外,通过对每个内容的每个模态的数据进行多个质量等级的评估以获得内容在多个质量等级上的概率分布并且基于每个内容的质量概率分布进行内容推荐,能够获得更加客观的推荐结果。
5.根据本发明的一个方面,提供了一种用于内容推荐的方法。该方法包括:获取多个候选内容以对每个候选内容所包含的至少两个模态的数据分别进行预处理以产生至少两个模态的输入数据,其中所述至少两个模态的数据包括文本数据、图像数据、视频数据和音频数据中的至少两种;经由至少两个不同的神经网络模型,分别提取所述至少两个模态的输入数据的特征,以生成至少两个模态的表征数据;对所述至少两个模态的表征数据进行融合以产生所述候选内容的表征向量;基于所述候选内容的表征向量利用回归模型确定所述候选内容的质量概率分布,其中所述候选内容的质量概率分布指示所述候选内容处于多个不同质量等级的概率;以及基于所述多个候选内容的质量概率分布从所述多个候选内容中确定推荐内容。
6.根据本发明的另一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。
7.根据本发明的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。
8.在一些实施例中,对所述至少两个模态的表征数据进行融合以产生所述候选内容的表征向量包括:将所述至少两个模态的表征数据投影至同一特征空间;以及将被投影至所述同一特征空间的所述至少两个模态的表征数据进行向量拼接、向量外积或者向量平均以产生所述候选内容的表征向量。
9.在一些实施例中,基于所述候选内容的表征向量利用回归模型确定所述候选内容的质量概率分布包括:将所述候选内容的表征向量经由全连接层和所述回归模型,生成关于所述候选内容的质量概率分布,所述回归模型由softmax模型所构建。
10.在一些实施例中,所述至少两个模态的数据包括文本数据和图像数据,所述至少两个不同的神经网络模型包括第一神经网络模型和第二神经网络模型,并且对所述候选内容所包含的至少两个模态的数据分别进行预处理以产生至少两个模态的输入数据包括:对所述候选内容所包含的文本数据进行分词;将分词后的文本数据映射为文本标识序列,以便生成用于输入第一神经网络模型的文本输入数据;确定所述候选内容所包含的图像数据是否为灰度图像数据;响应于确定所述图像数据为灰度图像数据,将所述图像数据转换为rgb图像数据;以及裁剪所述rgb图像数据的中心区域,以便生成用于输入所述第二神经网络模型的图像输入数据,所述图像输入数据为三维图像数组。
11.在一些实施例中,所述至少两个模态的数据还包括视频数据,所述至少两个不同的神经网络模型还包括第三神经网络模型,并且对所述候选内容所包含的至少两个模态的数据分别进行预处理以产生至少两个模态的输入数据还包括:基于预定间隔,提取所述候选内容所包含的视频数据的视频帧数据;确定所述视频帧数据是否为灰度视频帧数据;响应于确定所述视频帧数据为灰度视频帧数据,将所述视频帧数据转换为rgb视频帧数据;以及裁剪所述rgb视频帧数据的中心区域,以便生成用于输入所述第三神经网络模型的视频帧输入数据。
12.在一些实施例中,所述至少两个模态的数据还包括音频数据,所述至少两个不同的神经网络模型还包括第四神经网络模型,并且对所述候选内容所包含的至少两个模态的数据分别进行预处理以产生至少两个模态的输入数据还包括:裁剪所述候选内容所包含的音频数据,以便针对经裁剪的音频数据进行通道合并;针对合并后的音频数据进行采样,以便生成音频采样数据;经由短时傅里叶变换,将音频采样数据转换为频谱图;以及将所述频谱图转换为梅尔声谱特征,以生成用于输入所述第四神经网络模型的声谱输入数据。
13.在一些实施例中,该方法还包括:确定多个训练内容中的每个训练内容所包含的至少两个模态的数据的质量等级向量,其中所述质量等级向量指示所述至少两个模态的数据中的每个模态的数据的质量等级;将每个训练内容输入所述至少两个神经网络模型和所述回归模型;以及基于所述至少两个神经网络模型和所述回归模型的输出向量、所述训练内容所包含的至少两个模态的数据的质量等级向量和emd损失函数更新所述至少两个神经网络模型和所述回归模型的参数矩阵。
14.在一些实施例中,所述至少两个不同的神经网络模型包括以下模型中的至少两个:基于转换器的双向编码表征模型构建的第一神经网络模型;基于深度残差网络模型构建的第二神经网络模型;基于深度残差网络和长短期记忆模型构建的第三神经网络模型;以及基于vggish模型构建的第四神经网络模型。
附图说明
15.通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。
16.图1示出了用于实现根据本发明的实施例的用于内容推荐的方法的系统的示意图。
17.图2示出了根据本发明的实施例的用于内容推荐的系统模型的示意图。
18.图3示出了根据本发明的实施例的用于内容推荐的方法的流程图。
19.图4示出了根据本发明实施例的第一神经网络模型的结构示意图。
20.图5示出了根据本发明实施例的第二神经网络模型的结构示意图。
21.图6示出了根据本发明实施例的第三神经网络模型的结构示意图。
22.图7示出了根据本发明实施例的第四神经网络模型的结构示意图。
23.图8示出了根据本发明一些实施例的对至少两个模态的表征数据进行融合的步骤的流程图。
24.图9示出了根据本发明实施例的对至少两个神经网络模型和回归模型进行训练的步骤的流程图。
25.图10示出了适合实现本发明的实施例的计算设备的结构方框图。
具体实施方式
26.下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。
27.在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本技术相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
28.除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
29.在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
30.此外,说明书和权利要求中所用的第一、第二等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等。
31.图1示出了用于实现根据本发明的实施例的用于评估内容质量的方法的系统1的示意图。如图1中所示,系统1可以包括用户终端10、计算设备20、服务器30和网络40。用户终端10、计算设备20和服务器30可以通过网络40进行数据交互。这里,每个用户终端10可以是终端用户的移动或固定终端,如手机、平板电脑、台式机等。用户终端10例如可以通过其上安装的社交平台应用程序与社交平台的服务器30通信,以向服务器30发送信息和/或从服
务器30接收信息。计算设备20基于来自用户终端10和/或服务器30的数据执行相应的操作。计算设备20可以包括至少一个处理器和与该至少一个处理器耦合的至少一个存储器,该存储器中存储有可由该至少一个处理器执行的指令,该指令在被该至少一个处理器执行时执行如下所述的方法300的至少一部分。注意,在本文中,计算设备20可以是服务器30的一部分或者可以独立于服务器30。计算设备20或服务器30的具体结构例如可以如下结合图10所述。
32.图2示出了根据本发明的实施例的用于内容推荐的系统模型200的示意图。如图2中所示,用于内容推荐的系统模型200包括输入层210,其包括至少两个输入模块以用于输入待评估的候选内容或者训练内容的至少两个模态的输入数据(图2中示出了四个输入模块,即用于输入文本输入数据的第一输入模块212、用于输入图像输入数据的第二输入模块214、用于输入视频帧输入数据的第三输入模块216和用于输入音频输入数据的第四输入模块218);神经网络模型层220,其包括至少两个神经网络模型(图2中示出了四个神经网络模型,即第一神经网络模型222、第二神经网络模型224、第三神经网络模型226和第四神经网络模型228);编码层230,其包括分别与至少两个神经网络模型相对应的至少两个编码模块(图2中示出了四个编码模块,即第一编码模块232、第二编码模块234、第三编码模块236和第四编码模块238);全连接层240,其包括与至少两个神经网络模型和至少两个编码模块相对应的至少两个全连接模块(图2中示出了四个全连接模块,即第一全连接模块242、第二全连接模块244、第三全连接模块246和第四全连接模块248);表征数据融合层250,其用于对全连接层240输出的至少两个模态的表征数据进行融合以产生内容的表征向量;回归模型层260,其用于基于内容的表征向量确定内容的质量概率分布;损失函数层270,其用于在模型训练期间对整个模型的参数矩阵进行更新;以及输出层280,其用于输出内容的质量概率分布。系统模型200的各个部分,尤其是各个神经网络模型,的具体描述将在以下参考图4至图6进行。注意,在图2中,虽然将系统模型200显示为包括损失函数层270,但是本领域技术人员可以理解,损失函数层270仅仅在系统模型200的训练阶段使用,而在使用训练好的系统模型200进行内容推荐时可以无需损失函数层270。
33.图3示出了根据本发明的实施例的用于内容推荐的方法300的流程图。方法300例如可以由图1中所示的系统1中的计算设备20或服务器30执行。以下以在计算设备20中执行为例,结合图1至图10对方法300进行描述。
34.如图3中所示,方法300包括步骤310,其中计算设备20可以获取多个候选内容以对每个候选内容所包含的至少两个模态的数据分别进行预处理,以产生至少两个模态的输入数据。其中至少两个模态的数据包括文本数据、图像数据、视频数据和音频数据中的至少两种。
35.内容可以是指社交平台的用户所上传的包含文本、图像、视频、音频或其组合的内容,尤其是,本文所述的内容包含了至少两个模态的数据。在一些实施例中,该内容可以包含文本数据和图像数据。在另一些实施例中,该内容还可以包含视频数据。在又一些实施例中,该内容还可以包含音频数据。当然,本领域技术人员可以理解,本文所述的“内容”可以包含上述文本数据、图像数据、视频数据和音频数据中的任意至少两种,并不局限于特定组合。此外,虽然本文关注于包含至少两种模态数据的内容的推荐,但是本文所述的方案的思想可以容易地应用于仅包含一种模态数据的内容的推荐。
36.本文所述的社交平台可以是具有高流量和短生命周期内容的社交平台,因此,对其内容的质量评估和推荐必须快速地自动完成以保证内容的时效性。
37.方法300利用系统模型200从社交平台产生的海量内容中确定推荐内容,因此,也将模型使用阶段输入的内容称为候选内容,相对地,将模型训练阶段输入的内容称为训练内容。
38.取决于候选内容所包含的数据的不同,在步骤310中的预处理也不同。
39.在一些实施例中,该候选内容包括文本数据。在这种情况下,在步骤310中,计算设备20对该文本数据进行预处理以产生文本输入数据。对文本数据进行预处理以产生文本输入数据的方法包括多种。在一些实施例中,可以首先对该候选内容所包含的文本数据进行分词;然后将分词后的文本数据映射为文本标识序列,以生成用于输入第一神经网络模型222的文本输入数据。
40.这里,第一神经网络222可以是基于转换器的双向编码表征(bert)模型而构建的。在一些实施例中,首先对候选内容所包含的文本数据进行繁简体转换、特殊词处理和/或站内预定标签格式过滤;然后对经过滤的文本数据进行分词,并且利用bert模型的专门的标记器(tokenizer)生成文本标识序列,以便用于将所生成的文本标识序列输入至预训练语言模型(即bert模型)。每个文本标识序列由若干个离散编码向量组成。文本输入数据可以是单句或者句对所对应的文本标识序列。文本标识序列包括标记编码、位置编码、和句子位置编码和注意力掩码。标记编码用于指示文本标识序列中每个标记转换的编码向量,位置编码指示每个标记的位置,句子位置编码指示每个标记属于哪个句子(例如“0”指示当前标记属于第一个句子,“1”指示当前标识属于第二个句子)。注意力掩码指示当前标记是否是填充的(例如,“1”指示当前标记是非填充的,“0”指示当前标记是填充的)。
41.在一些实施例中,该候选内容包括图像数据。在这种情况下,在步骤310中,计算设备20对该图像数据进行预处理以产生图像输入数据。对图像数据进行预处理以产生图像输入数据的方法包括多种。在一些实施例中,可以首先确定该候选内容所包含的图像数据是否为灰度图像数据;响应于确定图像数据为灰度图像数据,将图像数据转换为rgb图像数据;以及裁剪rgb图像数据的中心区域,以便生成用于输入第二神经网络模型224的图像输入数据。这里,所产生的图像输入数据为三维图像数组。另一方面,如果图像数据不是灰度图像数据(例如图像数据本身已经是rgb图像数据),则可以直接对该rgb图像数据的中心区域进行裁剪以生成图像输入数据。
42.在一些实施例中,该候选内容包括视频数据。在这种情况下,在步骤310中,计算设备20对该视频数据进行预处理以产生视频帧输入数据。对视频数据进行预处理以产生视频帧输入数据的方法包括多种。在一些实施例中,可以首先基于预定间隔,提取该候选内容所包含的视频数据的视频帧数据;然后确定该视频帧数据是否是灰度视频帧数据;响应于确定该视频帧数据为灰度视频帧数据,将该视频帧数据转换为rgb视频帧数据;以及裁剪rgb视频帧数据的中心区域,以便生成用于输入第三神经网络模型226的视频帧输入数据。另一方面,如果视频帧数据不是灰度视频帧数据(例如视频帧数据本身已经是rgb视频帧数据),则可以直接对该rgb视频帧数据的中心区域进行裁剪以生成视频帧输入数据。
43.在一些实施例中,该候选内容包括音频数据。在这种情况下,在步骤310中,计算设备20对该音频数据进行预处理以产生声谱输入数据。对音频数据进行预处理以产生声谱输
入数据的方法包括多种。在一些实施例中,可以首先裁剪该候选内容所包含的音频数据,以便针对经裁剪的音频数据进行通道合并;针对合并后的音频数据进行采样,以生成音频采样数据;经由短时傅里叶变换,将音频采样数据转换为频谱图;以及将频谱图转换为梅尔(mel)声谱特征,以生成用于输入第四神经网络模型228的声谱输入数据。
44.例如,在一种实例中,可以将候选内容中所包含的音频数据重采样为16khz单声道音频并进行声道合并;然后使用第一预定时间值的hann时窗以第二时间预定值的帧移对音频进行短时傅里叶变换来得到频谱图;并且通过将所得到的频谱图映射到64阶mel滤波器组中来生成梅尔声谱特征以作为声谱输入数据。
45.接下来,在步骤320,计算设备20可以经由至少两个不同的神经网络模型(222、224、226和228中与步骤310中的模态数据对应的至少两个模型),分别提取步骤310所产生的至少两个模态的输入数据的特征,以生成至少两个模态的表征数据。
46.如前所述,在步骤310中对于一个候选内容所包含的每个模态的数据分别进行预处理,可以产生对应的模态的输入数据。在步骤320中,对于每个模态的输入数据,使用对应的神经网络模型来提取该输入数据的特征以生成该模态的表征数据。
47.在本发明中,该至少两个不同的神经网络模型可以包括用于对文本数据模态的输入数据进行处理的第一神经网络模型222、用于对图像数据模态的输入数据进行处理的第二神经网络模型224、用于对视频数据模态的输入数据进行处理的第三神经网络模型226和用于对音频数据模态的输入数据进行处理的第四神经网络模型228中的至少两个。
48.在一种实施例中,第一神经网络模型222可以是基于转换器的双向编码表征模型构建的神经网络模型;第二神经网络模型224可以是基于深度残差网络模型构建的神经网络模型;第三神经网络模型226可以是基于深度残差网络和长短期记忆模型构建的神经网络模型;并且第四神经网络模型228可以是基于vggish模型构建的神经网络模型。
49.图4示出了根据本发明实施例的第一神经网络模型222的结构示意图;图5示出了根据本发明实施例的第二神经网络模型224的结构示意图;图6示出了根据本发明实施例的第三神经网络模型226的结构示意图;图7示出了根据本发明实施例的第四神经网络模型228的结构示意图。
50.第一神经网络模型222例如是基于预训练语言模型(即bert模型)作为网络主体架构而构建的。如图4中所示,第一神经网络模型222可以包括嵌入(embedding)层2222、编码器2224和池化层2226。本公开通过采用bert模型构建第一神经网络模型222,可以结合输入文字的位置信息对文本数据进行编码,从而可以很好的对候选内容的文字信息进行理解。
51.第一神经网络模型222的嵌入层2222用于将通过第一输入模块212输入的文本输入数据(例如文本输入标识序列)转换成连续的嵌入向量。第一神经网络模型222的编码器2224用于提取嵌入层2222的输出的特征,以便生成嵌入层2222的输出的非线性表示。编码器2224由多个结构相同但参数不同的隐藏层串连而成。每个隐藏层例如包括线性变换、激活函数、多头自注意力和跳跃连接(skip connection)。第一神经网络模型222的池化层2226用于取出[cls]标识的表示,以便生成整体序列表示向量,以及返回每个标识的表示向量和整体的序列表示,分别用于针对每个标记的预测任务和整体序列表示向量。
[0052]
在第一神经网络模型222中,可以基于输入的文本输入数据,以bert模型的注意力分数作为权重,计算基于注意力分数的加权和,以生成该文本输入数据的输出数据。例如,
如图2所示,第一神经网络模型222的输出数据经由第一编码模块232和第一全连接模块242,以bert模型的注意力分数作为权重,计算bert模型的输出序列表示向量的注意力分数的加权和,以便生成文本表征数据(即文本特征向量)。
[0053]
第二神经网络模块224例如是基于深度残差网络模型(例如是resnet

101模型)作为网络主体架构而构建的。如图2中所示,第二神经网络模型224的输出数据例如经由图2所示的第二编码模块234和第二全连接模块244最终生成图像表征数据(即图像特征向量)。通过采用resnet

101模型构建第二神经网络模型224进而生成图像表征数据,本公开可以充分地提取候选内容中的图像的信息。
[0054]
以下结合图5说明以resnet

101模型作为网络主体架构而构建的第二神经网络模型224对图像输入数据的处理过程。如图5所示,单张图片的图像输入数据(例如为三维图像数组)经由第二输入模块214输入第二神经网络模型224,经由第二神经网络模型224提取特征,以产生该图像输入数据的图标编码表示,该图标编码表示例如为2048维图标编码表示215,如图5中所示。第二神经网络模型224例如包括4个阶段(stage)残差单元和平均池化层2244。第一阶段包括3个残差单元、第二阶段包括4个残差单元、第三阶段包括23个残差单元、第四阶段包括4个残差单元。每个残差单元(例如标记2242所示)包括3个卷积层,依次为conv 1*1、conv3*3和conv1*1。
[0055]
在一些实施例中,每个候选内容中可能包括多个图片,对应每个图片的图像输入数据经由第二神经网络模型224输出的图像编码表示后,将其输入sigmoid函数层以便生成关于当前图像输入数据的信息权重,然后计算信息权重和图像编码表示的加权和,以生成用于表征整个候选内容的图片特征向量的图像表征数据。
[0056]
第三神经网络模块226例如是基于深度残差网络模型2262(例如是resnet

101模型)和长短期记忆模型2264(long

short term memory,简称lstm模型)作为网络主体架构而构建的。如图2中所示,第三神经网络模型226的输出数据例如经由图2所示的第三编码模块236和第三全连接模块246最终生成视频帧表征数据(即视频帧特征向量)。通过采用resnet

101模型和lstm模型构建第三神经网络模型226进而生成视频帧表征数据,本公开可以充分地提取候选内容中的视频的信息。
[0057]
以下结合图6说明以resnet

101模型和lstm模型作为网络主体架构而构建的第三神经网络模型226对视频帧输入数据的处理过程。如图6所示,视频帧输入数据经由第三输入模块216输入resnet

101模型2262并且输出多帧图像编码表示(每一帧图像编码表示例如为2048维编码表示217,如图6中所示),然后多帧图像编码表示217经由lstm模型2264生成时序上的特征表示(例如为2048维视频帧编码表示),即第三神经网络模型226的输出数据219。
[0058]
对应每个视频帧输入数据经由第三神经网络模型226输出的视频帧编码表示后,将其输入sigmoid函数层以便生成关于当前视频帧输入数据的信息权重,然后计算信息权重和视频帧编码表示的加权和,以生成用于表征整个候选内容的视频帧特征向量的视频帧表征数据(即视频帧特征向量)。如图2所示,视频帧输入数据经由第三输入模块216输入第三神经网络模型226。第三神经网络模型226的输出数据经由图2所示的第三编码模块236和第三全连接模块246最终生成视频帧表征数据。
[0059]
第四神经网络600例如是基于vggish模型作为网络主体架构而构建的。如图2所
示,声谱输入数据经由第四输入模块218输入第四神经网络模型228。第四神经网络模型228的输出数据(例如下面所述的2048维声谱编码表示)经由图2所示的第四编码模块238和第四全连接模块248最终生成声谱表征数据(即声谱特征向量)。
[0060]
以下结合图7说明以vggish模型作为网络主体架构而构建的第四神经网络模型228对音频输入数据的处理过程。如图7所示,第四神经网络模型228用于将输入的声谱输入数据转化为具有语义的128维特征向量,并且将该128维特征向量转换为2048维频谱编码表示,以用于下游模型的输入。如图7所示,声谱输入数据输入vggish模型228并输出n帧128维特征向量221,然后转换为第四神经网络模型的输出数据223,即2048维声谱编码表示。
[0061]
vggish模型包括六组含有卷积层的网络层(4组包括卷积层conv2d()、激活函数relu()和最大池化层maxpool2d(),2组包括卷积层conv2d()和激活函数relu(),没有nn.maxpool2d())。vggish模型还包括全连接层(包括linear()和relu()),全连接层将512*24维特征数据降到4096并进一步降至n帧128维特征向量(例如,n=16),然后将n帧128维特征向量转换成一帧的2048维声谱编码表示。
[0062]
继续图3,在步骤330,在表征数据融合层250,计算设备20对步骤320获取的至少两个模态的表征数据进行融合以产生候选内容的表征向量。
[0063]
图8示出了根据本发明一些实施例的对至少两个模态的表征数据进行融合的步骤330的流程图。
[0064]
如图8中所示,步骤330可以包括子步骤332,其中计算设备20可以将该至少两个模态的表征数据投影至同一特征空间。例如,在图2所示的系统模型200中,神经网络模型层220包括四个神经网络模型,即第一神经网络模型222、第二神经网络模型224、第三神经网络模型226和第四神经网络模型228,因此其最多可以对包含文本数据、图像数据、视频数据和音频数据这四种模态的数据进行处理并获得四个模态的表征数据。在这种情况下,在子步骤332,计算设备20可以将每种模态的表征数据分别都投影到同一特征空间以使得不同模态的表征数据能够有统一的表达。
[0065]
然后,在子步骤334,计算设备20可以将被投影至同一特征空间的至少两个模态的表征数据进行向量拼接、向量外积或者向量平均以产生该候选内容的表征向量。也就是说,步骤330所述的融合操作可以通过向量拼接、向量外积和向量平均中的任一种来实现。
[0066]
最后,在步骤340,在回归模型层260,计算设备20可以基于步骤330获得的候选内容的表征向量,利用回归模型确定该候选内容的质量概率分布。这里,候选内容的质量概率分布指示该候选内容处于多个不同质量等级的概率。
[0067]
在一些实施例中,可以将步骤330获得的候选内容的表征向量经由全连接层和回归模型生成关于候选内容的质量概率分布,其中回归模型可以由softmax模型构建。通过这种方式,能够利用候选内容的多个模态的表征数据进行融合来反映候选内容的质量,从而能够获得更加准确和丰富的内容质量评估结果。
[0068]
基于softmax模型生成候选内容的质量概率分布的方法例如遵循以下公式:
[0069][0070]
其中,x
i
指示输入数据,在本文中为步骤330所产生的候选内容的表征向量,θ指示
softmax模型的参数向量,θ
l
指示参数向量θ中的第l个参数,其中l=1,2,

,k;j表示x
i
的类别(在本文中表示x
i
的质量等级),其中j=1,2,

,k。因此,通过上述方式计算的p(y
i
=j|x
i
;θ)表示输入数据x
i
处于每个质量等级j的概率,从而得到了该候选内容在多个不同质量等级的质量概率分布。
[0071]
假设质量等级的数量为5,即k=5,则步骤340能够确定输入的候选内容在5个质量等级上的概率值。例如,在等级1的概率值为0.1,在等级2的概率值为0.3,在等级3的概率值为0.5,在等级4的概率值为0.01,在等级5的概率值为0.09。
[0072]
接下来,在步骤350,计算设备20可以基于步骤340所获得的每个候选内容的质量概率分布从多个候选内容中确定推荐内容。
[0073]
在一些实施例中,可以直接根据每个候选内容的质量概率分布确定是否将该候选内容确定为推荐内容。在一种实例中,计算设备20可以根据该候选内容的概率最高的等级的概率是否大于预定阈值来确定是否将该候选内容确定为推荐内容。如上例所示,假设获得的候选内容在5个等级上的质量概率分布为[0.1,0.3,0.5,0.01,0.09]并且预定阈值为0.4,则计算设备20可以确定该候选内容的概率最高的等级3的概率为0.5,其大于预定阈值0.4,因此可以直接将该候选内容确定为推荐内容。在另一种实例中,计算设备20可以对获得的质量概率分布进行进一步处理(例如加权求和)来确定候选内容的推荐值,并且基于该推荐值是否大于预定推荐阈值来确定是否将该候选内容确定为推荐内容。如上例所示,假设获得的候选内容在5个等级上的质量概率分布为[0.1,0.3,0.5,0.01,0.09]并且预定推荐阈值为2.5,则计算设备20可以确定该候选内容的推荐值为2.69(0.1*1+0.3*2+0.5*3+0.01*4+0.09*5=2.69)并且该推荐值大于该预定推荐阈值,从而可以将该候选内容确定为推荐内容。
[0074]
在另一些实施例中,可以基于多个候选内容的质量概率分布对这些候选内容进行排序从而从中确定推荐内容。例如,在执行批量数量的情况下,假设一次输入128个候选内容并且输出这128个候选内容各自的质量概率分布,则计算设备20可以基于每个候选内容的概率最高的等级的概率或者每个候选内容的推荐值来对这些候选内容进行排序,并且从中选择排序最高的若干个(例如10个)候选内容作为推荐内容。
[0075]
以上结合图2至图8对根据本发明的实施例的用于内容推荐的方法300进行了描述。在上述描述中,利用训练好的至少两个神经网络模型(第一神经网络模型222、第二神经网络模型224、第三神经网络模型226和第四神经网络模型228中的至少两个)对待评估的候选内容的质量概率分布进行预测并基于预测的质量概率分布从多个候选内容中确定推荐内容。
[0076]
在本发明的一些实施例中,方法300还可以包括对上述至少两个神经网络模型和回归模型进行训练的步骤360,以使得能够利用训练好的神经网络模型和回归模型从多个候选内容中确定推荐内容。
[0077]
从系统模型200的角度来看,其输入和输出的关系可以表示为:
[0078]
x
out
=w*x
in
+b
[0079]
其中,w是系统模型200(主要是神经网络模型层220所包含的至少两个神经网络模型和回归模型层260的回归模型)的权重函数,b是系统模型200(主要是神经网络模型层220所包含的至少两个神经网络模型和回归模型层260的回归模型)的偏置函数,对神经网络模
型层220和回归模型层260进行训练的目的是使得系统模型200的权重函数w和偏置函数b(可以统称为参数矩阵)不断更新至收敛值。这里,参数矩阵的初始值可以任意设置,或者可以根据经验设置。
[0080]
图9示出了根据本发明实施例的对至少两个神经网络模型和回归模型进行训练的步骤360的流程图。
[0081]
如图9中所示,步骤360可以包括子步骤362,其中计算设备20可以确定多个训练内容中的每个训练内容所包含的至少两个模态的数据的质量等级向量。其中该质量等级向量指示该训练内容的每个模态的数据的质量等级。
[0082]
在一种实例中,可以随机选择社交平台在过去一段时间的若干内容(例如10万个内容)作为训练内容。对于每个训练内容,可以由一个或多个用户(例如10个用户)对其每个模态的数据按照多个质量等级(例如5个质量等级)进行标注。通过这种方式,可以获得每个训练内容在至多四个维度(对应于四个模态)或者五个维度(对应于四个模态和一个综合维度)的标注列表。以四个维度为例,在由一个用户进行标注的情况下,对于每个训练内容可以获得一个四个维度的质量等级向量。在由多个用户进行标注的情况下,对于每个训练内容可以获得一个四个维度的质量等级向量的列表。在这种情况下,可以对多个用户的质量等级向量的列表进行进一步处理(例如在每个维度上求平均、取中值等)来获得该训练内容的四个维度的质量等级向量。
[0083]
接下来,在子步骤364,计算设备20将每个训练内容输入该至少两个神经网络模型和该回归模型以获得对应的输出向量。
[0084]
这里,每个训练内容在至少两个神经网络模型和回归模型中的处理与上述步骤310至340中类似。具体地,对于输入的每个训练内容,可以分别对该训练内容所包含的至少两个模态的数据进行预处理以产生至少两个模态的训练输入数据;经由该至少两个神经网络模型分别提取至少两个模态的训练输入数据的特征以生成至少两个模态的训练表征数据;然后对至少两个模态的训练表征数据进行融合以产生该训练内容的训练表征向量;并且基于该训练内容的训练表征向量,利用该回归模型确定该训练内容的质量概率分布作为该回归模型的输出向量。训练内容的质量概率分布可以指示经过该至少两个神经网络模型和回归模型之后获得的该训练内容的每个模态的数据的质量等级的概率。
[0085]
然后,在子步骤366,计算设备20可以基于该至少两个神经网络模型和该回归模型的输出向量(即该训练内容的每个模态的数据的质量等级的概率)、该训练内容所包含的至少两个模态的数据的质量等级向量和emd(earth mover's distance,推土机距离)损失函数更新该至少两个神经网络模型和该回归模型的参数矩阵。
[0086]
具体地,基于训练内容的质量概率分布可以进一步确定该训练内容的每个模态的数据的质量值,例如概率最高的等级或上述推荐值。然后,可以基于该训练内容的每个模态的数据的质量值和质量等级向量中的对应的质量等级确定该模态的数据的损失值。
[0087]
在本文中,由于每个内容包括至少两个模态的数据,从而每个内容的质量值和质量等级包含至少两个维度。因此,采用emd损失函数来对模型进行训练更有利于从多个维度对模型进行收敛。
[0088]
emd损失函数的原理如下:
[0089]
假设在位置i=1,2,

,n处分布有p1,p2,

,p
n
堆土,设土的总数量为1,即p1+p2+

+p
n
=1,现在要将土推到位置j=1,2,

,n'上,每处的量为q1,q2,

,q
n’,而从i推到j的成本为d
i,j
,求成本最低的方案以及对应的最低成本。将最优方案表示为y
i,j
,表示这个方案中要从i中把y
i,j
数量的土推到j处,则可以得出
[0090][0091][0092]
从而优化问题可以转换为求如下的最小值:
[0093][0094]
假设两个序列分别为(w1,w2,...,w
n
)(在本文中为该至少两个神经网络模型和该回归模型的输出向量(即该训练内容的每个模态的数据的质量等级的概率))和(w
′1,w
′2,...w

n
)(在本文中为该训练内容所包含的至少两个模态的数据的质量评分的向量),则这两个序列的推土机距离可以表示为:
[0095][0096]
基于该至少两个神经网络模型和该回归模型的输出向量(w1,w2,...,w
n
)和该训练内容所包含的至少两个模态的数据的质量等级向量(w
′1,w
′2,...w

n
)可以确定上述损失函数loss在系统模型200的最后一层的梯度值。这里,最后一层的梯度值可以是前后两个训练内容的损失函数loss的差值。
[0097]
在本发明的一些实施例中,可以使用反向传播算法来对系统模型200的各个层的权重函数w
k
和偏置函数b
k
(k=1、2、
……
k)进行更新,其中k是系统模型200(主要是神经网络模型层220所包含的至少两个神经网络模型和回归模型层260的回归模型)的层数。
[0098]
因此,在子步骤366中,可以基于emd损失函数和第k层的权重函数w
k
和偏置函数b
k
来确定系统模型200的最后一层(第k层)的梯度值和
[0099]
然后,计算设备20可以基于系统模型200的最后一层的梯度值对系统模型200的多个层的每一层的权重函数进行更新。
[0100]
具体地,可以利用批量(batch)、小批量(mini

batch)或者随机梯度下降法中的任意一种,基于深度神经网络模型500的第k层的梯度值和依次确定第k

1层、第k

2层、
……
第1层的梯度值,并且利用每一层的梯度值对该层的权重函数w
k
以及偏置函数b
k
进行更新。
[0101]
基于预设的迭代步长重复上述操作,直至达到最大迭代次数或者达到停止迭代阈值。至此,系统模型200的权重函数w以及偏置函数b被训练至收敛值,可用于对新的内容进行评估以确定推荐内容。
[0102]
图10示出了适合实现本发明的实施例的计算设备1000的结构方框图。计算设备1000例如可以是如上所述的计算设备20或服务器30。
[0103]
如图10中所示,计算设备1000可以包括一个或多个中央处理单元(cpu)1010(图中仅示意性地示出了一个),其可以根据存储在只读存储器(rom)1020中的计算机程序指令或者从存储单元1080加载到随机访问存储器(ram)1030中的计算机程序指令,来执行各种适当的动作和处理。在ram 1030中,还可存储计算设备1000操作所需的各种程序和数据。cpu 1010、rom 1020以及ram 1030通过总线1040彼此相连。输入/输出(i/o)接口1050也连接至总线1040。
[0104]
计算设备1000中的多个部件连接至i/o接口1050,包括:输入单元1060,例如键盘、鼠标等;输出单元1070,例如各种类型的显示器、扬声器等;存储单元1080,例如磁盘、光盘等;以及通信单元1090,例如网卡、调制解调器、无线通信收发机等。通信单元1090允许计算设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0105]
上文所描述的方法300例如可由计算设备1000(如计算设备20或服务器30)的cpu 1010执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元1080。在一些实施例中,计算机程序的部分或者全部可以经由rom 1020和/或通信单元1090而被载入和/或安装到计算设备1000上。当计算机程序被加载到ram 1030并由cpu 1010执行时,可以执行上文描述的方法300的一个或多个操作。此外,通信单元1090可以支持有线或无线通信功能。
[0106]
本领域技术人员可以理解,图10所示的计算设备1000仅是示意性的。在一些实施例中,计算设备20或服务器30可以包含比计算设备1000更多或更少的部件。
[0107]
以上结合附图对根据本发明的内容推荐的方法300以及可用作计算设备20或服务器30的计算设备1000进行了描述。然而本领域技术人员可以理解,方法300的步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,计算设备1000也不必须包括图10中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。
[0108]
本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
[0109]
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
[0110]
本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。
[0111]
本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
[0112]
本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1