1.本技术属于计算机技术领域,具体涉及一种消息推荐方法、装置、计算机可读介质及电子设备。
背景技术:2.消息推荐是计算机和互联网技术领域中用于提升用户体验的常用手段,如推荐用户感兴趣的文章、新闻、音乐等。传统的消息推荐算法原理是,先通过离线训练的方式得到一个模型,然后将这个模型部署到线上,对在线用户进行消息推荐。然而,用户行为会随时间的变化而变化,但是通常离线模型训练是采用比较固定的周期内(比如近15天、近半年等)数据作为模型的训练样本,这种采用单一时期训练样本进行训练的方法,所使用的训练样本不一定是当前最佳的训练样本,模型无法区分哪一天的数据分布更加接近最新的测试数据分布,从而无法选择最合适的训练样本进行模型训练,进而导致模型泛化能力较差。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:4.本技术的目的在于提供一种消息推荐方法、装置、计算机可读介质及电子设备,以改进传统推荐算法仅用单一时期训练样本进行训练,导致模型泛化能力差的问题。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.根据本技术实施例的一个方面,提供一种消息推荐方法,包括:
7.获取多个时间段的训练样本和设定时段内的第一测试样本,所述训练样本具有样本标签;
8.通过所述多个时间段的训练样本和所述第一测试样本对消息推荐模型进行联合训练;在所述联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,直至所述消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;
9.通过所述训练好的消息推荐模型在当前时间进行消息推荐。
10.根据本技术实施例的一个方面,提供一种消息推荐装置,包括:
11.训练样本获取模块,用于获取多个时间段的训练样本和设定时段内的第一测试样本,所述训练样本具有样本标签;
12.模型训练模块,用于通过所述多个时间段的训练样本和所述第一测试样本对消息推荐模型进行联合训练;在所述联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训
练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,直至所述消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;
13.消息推荐模块,用于通过所述训练好的消息推荐模型在当前时间进行消息推荐。
14.在本技术的一个实施例中,训练样本获取模块包括:
15.历史数据获取单元,用于获取多个时间段的历史推荐业务数据,所述历史推荐业务数据为多维度数据;
16.特征提取单元,用于对所述历史推荐业务数据的各个维度分别进行特征提取,得到多个时间段的训练样本。
17.在本技术的一个实施例中,特征提取单元具体用于:
18.对所述历史推荐业务数据的各个维度分别进行特征提取,得到稀疏特征数据和稠密特征数据;
19.对每个时间段的稀疏特征数据进行下采样处理,得到每个时间段的下采样特征数据;
20.将每个时间段的下采样特征数据和对应时间段的稠密特征数据进行拼接,得到每个时间段的训练样本。
21.在本技术的一个实施例中,模型训练模块包括:
22.数据差异计算单元,用于对于每个时间段的训练样本,将所述时间段的训练样本划分为多个样本数据集,计算各个样本数据集与所述第一测试样本之间的数据分布差异;
23.归一化单元,用于对各个样本数据集的数据分布差异进行归一化处理,得到所述时间段的各个样本数据集的权重;
24.注意力单元,用于基于注意力机制通过所述时间段的各个样本数据集的权重对各个样本数据集进行加权处理,得到注意力数据;
25.映射单元,用于通过预设激活函数对所述注意力数据进行映射处理,得到各个样本数据集对应的预测值。
26.在本技术的一个实施例中,所述注意力单元具体用于:
27.通过预设神经网络层对所述时间段的各个样本数据集进行特征提取,得到各个样本数据集对应的样本特征数据集;
28.基于注意力机制对所述各个样本数据集对应的样本特征数据集进行处理,得到各个样本数据集对应的注意力特征;
29.根据各个样本数据集对应的权重对各个样本数据集的注意力特征进行加权求和处理,得到注意力数据。
30.在本技术的一个实施例中,模型训练模块包括:
31.损失计算单元,用于对所述消息推荐模型针对样本数据集对应的预测值和所述样本数据集的样本标签之间的损失进行最小化处理,得到数据损失;
32.梯度计算单元,用于基于反向传播算法,根据所述数据损失确定所述消息推荐模型的模型参数的梯度;
33.参数更新单元,用于基于梯度下降算法,根据所述模型参数的梯度更新所述模型
参数。
34.在本技术的一个实施例中,消息推荐模块包括:
35.模型评估单元,用于获取所述设定时段内的第二测试样本,并获取所述训练好的消息推荐模型针对所述第二测试样本的评估指标;
36.消息推荐单元,用于若所述评估指标符合预设条件,则通过所述训练好的消息推荐模型在当前时间进行消息推荐。
37.根据本技术实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的消息推荐方法。
38.根据本技术实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的消息推荐方法。
39.根据本技术实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的消息推荐方法。
40.在本技术实施例提供的技术方案中,通过获取多个时间段的训练样本和设定时段内的第一测试样本,然后通过多个时间段的训练样本和第一测试样本对消息推荐模型进行联合训练;在联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异对各个时间段的训练样本进行预测,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数,直至消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;最后通过所述训练好的消息推荐模型在当前时间进行消息推荐;本技术利用多时期训练样本与测试样本进行联合训练,改进了传统推荐算法仅用单一时期训练样本进行训练而导致模型泛化能力差的问题,消息推荐模型不仅学习了训练样本与标签间的映射关系,还学习了不同时间段的训练样本与第一测试样本间的差异,从而可以为测试样本选择最优训练样本,消除样本差异带来的噪声,进而得到最佳消息推荐模型,提高了消息推荐模型的预测精度和泛化能力。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1示意性地示出了应用本技术技术方案的示例性系统架构框图。
44.图2示意性地示出了本技术一个实施例提供的消息推荐方法的流程图。
45.图3示意性地示出了本技术一个实施例提供的对稀疏特征数据下采样后与稠密特征拼接的流程图。
46.图4示意性地示出了本技术一个实施例提供的消息推荐模型的训练过程的示意图。
47.图5示意性地示出了本技术一个实施例提供的消息推荐模型训练过程的流程图。
48.图6示意性地示出了本技术实施例提供的消息推荐装置的结构框图。
49.图7示意性示出了适于用来实现本技术实施例的电子设备的计算机系统结构框图。
具体实施方式
50.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
51.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
52.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
53.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
54.可以理解的是,在本技术的具体实施方式中,涉及到用户信息等相关的数据,当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
55.图1示意性地示出了应用本技术技术方案的示例性系统架构框图。
56.如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。终端设备110可以包括智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、车载终端等等。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
57.根据实现需要,本技术实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器130可以是由多个服务器设备组成的服务器群组。另外,本技术实施例提供的技术方案可以应用于终端设备110,也可以应用于服务器130,或者可以由终端设备110和服务器130共同实施,本技术对此不做特殊限定。
58.举例而言,本技术实施例提供的技术方案由服务器130执行,服务器130获取多个时间段的训练样本和设定时段内的第一测试样本,训练样本具有样本标签。然后服务器130通过多个时间段的训练样本和第一测试样本对消息推荐模型进行联合训练;在联合训练的
过程中,根据各个时间段的训练样本和第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数,直至消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型,最后服务器130通过训练好的消息推荐模型在当前时间进行消息推荐。
59.下面结合具体实施方式对本技术提供的消息推荐做出详细说明。
60.图2示意性地示出了本技术一个实施例提供的消息推荐方法的流程图,如图2所示,该方法包括步骤210至步骤230,具体如下:
61.步骤210、获取多个时间段的训练样本和设定时段内的第一测试样本,训练样本具有样本标签。
62.具体的,多个时间段的训练样本是指距离当前时间一定时长内的历史推荐业务数据,一个时间段代表获取训练样本的一个时间周期,多个时间段的训练样本,实际上是将一定时长内的历史推荐业务数据划分为多个时间周期的历史推荐业务数据,一个时间周期对应的历史推荐业务数据就表示一个时间段的训练样本。时间段的长度(也就是时间周期的长度)取决于推荐业务的时间维度,时间段的数量则取决于历史推荐业务数据的时间长度。比如,推荐业务是以一个月内的推荐数据为基础进行推荐,则时间段的长度就是一个月。现有的历史推荐业务数据是半年(6个月)内的数据,则共有6个时间段的历史推荐业务数据,也就6个时间段的训练样本。设定时段内的第一测试样本也是设定时段内的历史推荐业务数据,该设定时段是指距离当前时间设定时长的时段,一般的,设定时段的长度与一个时间段的长度相等。例如,训练样本为距离当前时间6个月的历史推荐业务数据,第一测试样本为距离当前时间1个月的历史推荐业务数据。
63.在本技术实施例中,训练样本和第一测试样本均是模型训练过程中所用到的数据,二者都具有样本标签,样本标签标识了训练样本的一个确切特征,例如,训练样本为新闻数据,样本标签可以是新闻类型(如娱乐新闻、时事新闻等)。
64.在本技术的一个实施例中,并不直接使用历史推荐业务数据作为训练样本,而是对历史推荐业务数据进行特征工程处理后,将历史推荐业务数据对应的特征数据作为训练样本,具体步骤为:获取多个时间段的历史推荐业务数据,历史推荐业务数据为多维度数据;对历史推荐业务数据的各个维度分别进行特征提取,得到多个时间段的训练样本。
65.具体的,历史推荐业务数据是指在当前时间之前进行消息推荐所涉及的数据,是一种多维度数据,例如,可以包括推荐的消息内容数据(简称为内容维度,如新闻文章中的图文、问答内容、评论内容)、消息推荐的目标用户数据(简称为用户维度,如各种兴趣标签、职业、年龄、性别等)、消息推荐时的环境数据(简称为环境维度,如地理位置、时间、网络、天气等)等。
66.获取历史推荐业务数据后,对历史推荐业务数据的每个维度进行特征提取,然后将提取的特征作为训练样本或第一测试样本。
67.基于内容维度可以提取的特征包括还不限于:关键词、热度、时效性、质量、作者来源、相似新闻等特征。运用tf-idf(term frequency-inverse document frequency,词频-逆向文件频率)、textrank或lda(latent dirichlet allocation,潜在二分体)主题算法等
提取新闻文章的关键词。基于关键词提取关键词高频词汇得到热度词汇特征。根据当前时间与文章发表时间之差得到文章时效性特征。提取新闻文章的评分值得到新闻质量特征。利用正则规则提取新闻作者来源得到作者来源特征。通过tf-idf、word2vec、node2vec或bert(bidirectional encoder representation from transformers,变压器的双向编码器表示法)等编码算法提取文本序列化特征。通过余弦相似度、simhash、欧几里得距离、tanimoto系数等相似度计算算法计算得到新闻文章相似度特征。
68.基于用户维度可以提取的特征包括但不限于:兴趣、职业、年龄、性别、机型、用户点击行为、用户浏览行为、用户下载行为、用户评论行为、相似用户等特征。基于用户点击的新闻文章关键词进行聚类提取得到点击相似用户特征,可用的聚类算法包括k-means(k均值)聚类、均值漂移聚类、基于密度的聚类方法(density-based spatial clustering of applications with noise,dbscan)、凝聚层次聚类等聚类算法等。基于用户兴趣特征对用户进行分类得到兴趣分类相似特征。对性别进行二值化处理,例如性别男用1指代,性别女用0指代。对年龄特征进行离散化处理,用户年龄是一个连续特征,离散化处理就是把年龄进行分层,例如年龄在5~18岁设置为0、19~23岁设置为1、24~29岁设置为2、30~40岁设置为3、40~60设置为4等。
69.基于环境维度可以提取的特征包括但不限于:地理位置、时间、网络、天气等。对地理位置数据可按照区域划分进行分层,得到分层后的地理位置特征,例如,东区设置为1,西区设置为2等。对经纬度数据进行特征标准化处理得到地理经纬度特征。时间数据进行时间格式解析、拆分,得到不同时间维度的特征。对天气数据进行特征编码(如onehot编码),得到代表天气的编码数据。
70.在对历史推荐业务数据进行特征提取的过程中,对于无序的非数值离散数据(如性别、气候、兴趣、职业、机型等),可以通过独热编码来表示,比如天气[晴天,雨天,阴天],若某天的天气为晴天,则经过独热编码后,得到的数据为[1,0,0];若某天的天气为雨天,则经过独热编码后,得到的数据为[0,1,0];若某天的天气为阴天,则经过独热编码后,得到的数据为[0,0,1]。而对于有序的非数值离散数据,可以用标签进行编码,如性别特征亦可以运用label-encoder进行特征转换。
[0071]
在对历史推荐业务数据的各个维度分别进行特征提取后,为了进一步扩充训练样本的数据量和数据质量,可以对提取的特征进行标准化、特征交叉、缺失值填补等处理。通过对上述多维度历史推荐业务数据的处理得到训练样本,使得后续消息推荐模型训练过程中能够学习到多个维度的特征,解决了现有推荐算法中仅学习用户某一时间段行为特征而导致推荐效果较差的问题。
[0072]
在本技术的一个实施例中,对历史推荐业务数据的各个维度分别进行特征提取之后,得到的特征可以分为稀疏特征数据和稠密特征数据。稀疏特征数据是指经编码后维度较多但表示稀疏的特征,例如,气候有[晴天,雨天,阴天,雪,多云]这5个维度,通过独热编码后数据结构为[1,0,0,0,0]、[0,1,0,0,0]、[0,0,1,0,0]、[0,0,0,1,0]、[0,0,0,0,1],每组数据中仅有一个维度的数据是实际使用的,表示较为稀疏,视为稀疏特征数据。一般的,离散型特征数据多为稀疏特征数据,连续性特征数据多为稠密特征数据。
[0073]
在本技术的一个实施例中,在得到稀疏特征数据和稠密特征数据之后,需要进行特征拼接处理,具体为:对每个时间段的稀疏特征数据进行下采样处理,得到每个时间段的
下采样特征数据;将每个时间段的下采样特征数据和对应时间段的稠密特征数据进行拼接,得到每个时间段的训练样本。
[0074]
具体而言,对稀疏特征数据进行下采样的目标是为了降低稀疏特征数据的维度,更好的提取稀疏特征数据中的有用信息,同时也是为了使词表大小不一的稀疏特征数据进行统一。下采样可以通过池化层(pooling)实现,池化的方法包括max pooling、average pooling、sum pooling等。在本技术实施例中,对稀疏特征数据进行下采样的操作为:通过设定大小的滑动窗口从稀疏特征数据的数据头滑动至数据尾,将滑动窗口中数据的统计值(如最大值、平均值、中位数、求和等)作为下采样后的数据。
[0075]
将对稀疏特征数据下采样得到的特征记为下采样特征数据,最后将下采样特征数据与稠密特征数据拼接,得到训练样本数据。
[0076]
示例性的,图3示意性地示出了本技术一个实施例提供的对稀疏特征数据下采样后与稠密特征拼接的流程图,如图3所示,稀疏特征数据(sparse field)通过词嵌入(embedding)向量表示来进行下采样,下采样后与稠密特征数据(dense layer)拼接,得到训练样本数据,该训练样本数据仍然属于稠密特征数据。
[0077]
步骤220、通过多个时间段的训练样本和第一测试样本对消息推荐模型进行联合训练;在联合训练的过程中,根据各个时间段的训练样本和第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数,直至消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型。
[0078]
具体的,在得到训练样本和第一测试样本之后,就可以使用训练样本对消息推荐模型进行训练,消息推荐模型可以任意一种机器学习模型(如cnn神经网络模型)。
[0079]
在本技术实施例中,使用训练样本和第一测试样本对消息推荐模型进行联合训练。在消息推荐模型的联合训练(后续简称模型训练)过程中,首先将各个时间段的训练样本和第一测试样本输入消息推荐模型,消息推荐模型根据各个时间段的训练样本和第一测试样本之间的数据分布差异得到联合了各个时间段的训练样本的权重,然后根据该权重对输入的训练样本进行训练,得到相应的输出数据,该输出数据就是训练样本所对应的预测值。接下来基于输出数据(即训练样本所对应的预测值)和样本标签之间的损失来更新模型参数,然后使用更新模型参数后的消息推荐模型继续执行上述训练过程,直至模型训练过程满足收敛条件,就可以得到训练好的消息推荐模型。
[0080]
在本技术的一个实施例中,如图4所示,消息推荐模型对训练样本的预测过程包括步骤410至步骤440,具体如下:
[0081]
步骤410、对于每个时间段的训练样本,将该时间段的训练样本划分为多个样本数据集,计算各个样本数据集与第一测试样本之间的数据分布差异。
[0082]
具体的,在对一个时间段的训练样本进行预测时,首先将该时间段的训练样本划分为多个样本数据集(数据集称为mini batch),可以理解,一个时间段的训练样本包括多个样本数据,在划分为多个样本数据集后,一个样本数据集包括多个样本数据。同时,将第一测试样本也划分为多个测试数据集,测试数据集中的数据也是样本数据。
[0083]
在本技术实施例中,样本数据是一个多维度数据,如前所述,样本数据可以包括内
容维度、用户维度、环境维度等较大维度的数据,每个较大维度又包括更加细致的特征数据,如内容维度可以包括关键词、热度、时效性等,因此,一个样本数据可以表示成矩阵的形式。同时,样本数据具有样本标签,样本标签通常指示样本数据的类别,例如,样本标签指示该样本数据是否被用户点击,用0表示未被用户点击,1表示已被用户点击,则样本标签有0、1两种,也表示样本数据有两种类别,即被用户点击过的样本数据和未被用户点击的样本数据。在一些情况下,样本数据可以有多种类别,例如,样本数据为新闻,数据类别可以是娱乐新闻、时事新闻、体育新闻等。
[0084]
各个样本数据集与第一测试样本之间的数据分布差异dd的计算如下式所示:
[0085][0086]
其中,n表示每个样本数据集(mini batch)的数据数量;c表示样本数据的总类别数;x
ci
指的是训练样本中第i个样本数据集中第c个类别的样本数据,x
ci
为矩阵形式;y
ci
指的是第一测试样本中第i个样本数据集中第c个类别的样本数据;表示x
ci
矩阵的转置矩阵;表示y
ci
矩阵的转置矩阵;表示的协方差矩阵;表示的协方差矩阵;wc为消息推荐模型的模型参数,指代每种类别的权重,取值范围在[0,1],值越大代表该类别在训练过程中越重要。
[0087]
在本技术的一个实施例中,考虑到实际应用中训练样本和第一测试样本中的样本数据都包含多种类别,当训练样本和第一测试样本均包含多种类别的样本数据时,只对相似类别的样本数据集求数据分布差异,可以避免模型泛化性差的影响。
[0088]
在本技术实施例中,通过计算训练样本与第一测试样本之间的多类别条件的数据分布差异来实现训练样本与第一测试样本的联合训练,数据分布差异dd值表示不同时间段的训练样本和第一测试样本的数据分布差异值的加权和,其中权重wc代表不同时间段训练样本和第一测试样本的类别相对重要性。dd值计算结果即为训练样本和第一测试样本的距离,也就是数据分布差异。在模型训练过程中,会尽可能使dd值减小,从而提高模型的泛化能力。
[0089]
步骤420、对各个样本数据集的数据分布差异进行归一化处理,得到各个样本数据集的权重。
[0090]
具体的,归一化处理是为了将各个样本数据集的数据分布差异转换至一个统一的数据范围内,例如,将数据分布差异转换到[0,1]范围内的数值。在本技术实施例中,对各个样本数据集的数据分布差异进行归一化处理,是通过softmax对上述过程求解得到的数据分布差异dd值的倒数进行归一化计算,将数据分布差异的倒数整理成所有时间段样本权重之和为1的概率分布。这种处理方式也可以通过softmax的内在机制更加突出重要时间段样本的权重。归一化的计算公式如下:
[0091][0092]
其中,dd
i,j
表示第j个时间段的第i个样本数据集的数据分布差异,a
i,j
则表示第j个时间段的第i个样本数据集对应的权重。
[0093]
步骤430、基于注意力机制,通过时间段的各个样本数据集的权重对各个样本数据集进行加权处理,得到注意力数据。
[0094]
具体的,注意力机制就是为较为重要的数据添加较大的权重。将上述计算得到的权重a
i,j
输入attention层(即注意力层),attention层据此为样本数据集赋予权重,得到attention层的输出数据,即注意力数据。
[0095]
在本技术的一个实施例中,在步骤410中得到各个样本数据集之后,将各个样本数据集输入到预设神经网络层进行特征提取,得到各个样本数据集对应的样本特征数据集。此处通过预设神经网络层进行特征提取,实际上是进一步挖掘样本数据的潜在特征信息,预设申请网络模型可以通过3至4层mlp(multilayer perceptron,多层感知机)层实现。
[0096]
在得到样本特征数据集之后,将样本特征数据集输入至attention层,那么attention层就可以基于注意力机制对各个样本数据集对应的样本特征数据集进行处理,得到各个样本数据集对应的注意力特征。然后attention层根据各个样本数据集对应的权重对各个样本数据集的注意力特征进行加权求和处理,得到注意力数据,具体计算方式如下:
[0097][0098]
其中,n表示训练样本的时间段的总数量;value
i,j
表示第j个时间段的第i个样本数据集对应的注意力特征;a
i,j
表示第j个时间段的第i个样本数据集对应的权重。attention(a
i,j
,value
i,j
)表示注意力数据。
[0099]
步骤440、通过预设激活函数对注意力数据进行映射处理,得到各个样本数据集对应的预测值。
[0100]
具体的,在attention层后再接一个softmax层(即激活层),该softmax层提供预设激活函数softmax,经过softmax层对注意力数据进行映射处理,得到各个样本数据集对应的预测值,也就是消息推荐模型对样本数据的预测值。softmax层的计算方式如下:
[0101][0102]
其中,xj表示第j个样本数据集中样本数据对应的预测值。一般的,xj的取值范围在[0,1]。例如,该模型预测的场景是:预测目标为点击,则对应的标签含义为:“曝光的商品是否被用户点击”(0:未点击,1:点击),当xj》0.5(该阈值的取值大小需要训练得到),则表示预测结果为1(点击)。
[0103]
在得到训练样本的预测值之后,接下来根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数。
[0104]
在本技术的一个实施例中,计算损失并根据损失更新模型参数的过程具体为:对消息推荐模型针对样本数据集对应的预测值和样本数据集的样本标签之间的损失进行最小化处理,得到数据损失;基于反向传播算法,根据数据损失确定消息推荐模型的模型参数的梯度;基于梯度下降算法,根据模型参数的梯度更新模型参数。
[0105]
具体而言,本技术实施例使用预测值与样本标签之前的交叉熵损失作为模型的损失函数(简称为损失),具体计算方式如下:
[0106]
l
tr
=min{-∑[yiln p(xi)+(1-yi)ln(1-p(xi))]}
[0107]
其中,l
tr
就是预测值与样本标签之间的损失;xi是第i个训练样本的预测值,yi是第i个样本数据的样本标签。p为假设函数,可以是sigmoid函数。ln是以e为底数的对数函数。在得到损失函数后,通过反向传播算法计算损失函数对每一个模型参数的梯度,再根据梯度和学习率使用梯度下降算法更新消息推荐模型的每一个模型参数,后面继续计算损失函数并更新模型参数,如此迭代反复,直至消息推荐模型的训练满足收敛条件,找到模型参数的最优解,得到训练好的消息推荐模型。消息推荐模型的训练满足收敛条件,可以是消息推荐模型的损失函数达到一定与要求(如损失函数小于设定阈值),也可以是消息推荐模型的迭代次数达到要求,还可以是其他认为模型已训练完毕的条件。
[0108]
在模型训练过程中,会尽可能使训练样本与第一测试样本之间的数据分布差异dd缩小,这样使得模型不仅学习了训练样本与样本标签间的映射关系,还学习到了不同时间段的训练样本与第一测试样本间的数据分布差异,从而为测试样本选择最优训练样本,消除样本差异带来的噪声,从而得到最佳模型。
[0109]
示例性的,图5示意性地示出了本技术一个实施例提供的消息推荐模型的训练过程的示意图,如图5所示,历史推荐业务数据为原始特征,对原始特征进行特征工程(如标准化、onehot编码等)和特征提取(如通过xgboutput、transformer等模型进行特征提取),得到稀疏特征数据(sparse)和稠密特征数据(dense),然后通过特征处理模块(feature module)将稀疏特征数据和稠密特征数据拼接,并将拼接的数据输入mlp(multilayer perceptron,多层感知机),充分挖掘拼接特征的潜在特征。一个时间段的训练样本包括多个样本数据集,计算各个样本数据集与第一测试样本之间的数据分布差异dd,对数据分布差异dd进行归一化处理,得到权重a
i,j
;接下来通过attention层赋权,得到注意力数据attention(a
i,j
,value
i,j
);然后对注意力数据attention(a
i,j
,value
i,j
)进行激活处理,得到预测值,并计算预测值与样本标签之间的损失l
tr
。最后通过反向传播法和梯度下降法基于损失更新模型参数,通过迭代训练,直至模型收敛,得到训练好的消息推荐模型。
[0110]
步骤230、通过训练好的消息推荐模型在当前时间进行消息推荐。
[0111]
具体的,在得到训练好的消息推荐模型后,就可以将训练好的消息推荐模型部署到线上,对当前时间进行消息推荐,也就是进行在线实时消息推荐。
[0112]
在本技术的一个实施例中,在得到训练好的消息推荐模型后,还可以进一步对模型进行评估以确定训练好的消息推荐模型的质量好坏,具体过程包括:获取设定时段内的第二测试样本,并获取训练好的消息推荐模型针对第二测试样本的评估指标;若评估指标符合预设条件,则通过训练好的消息推荐模型在当前时间进行消息推荐。
[0113]
具体的,选择与第一测试样本相同时段内的第二测试样本(该第二测试样本包括样本标签),将该第二测试样本输入到训练好的消息推荐模型,得到消息推荐模型针对第二测试样本的输出数据(记为测试输出数据),将测试输出数据与第二测试样本数据的样本标签进行比较,得到消息推荐模型的评估指标。当评估指标符合预设条件,则认为该训练好的消息推荐模型合格,可以进行线上使用,进而通过该消息推荐模型在当前时间进行消息推荐。
[0114]
在本技术的与一个实施例中,消息推荐模型的评估指标可以是准确率、精确率、召回率、auc(area under curve,曲线之下的面积)值等。例如,假设消息推荐模型需要对“曝光的商品是否被用户点击”进行预测,消息推荐模型的输出数据是曝光的商品被用户点击
的概率(或置信度),标签为0,表示未点击;标签为1,表示已点击。在测试过程中,将消息推荐模型的输出数据大于0.5记为已点击,通过将测试输出数据与第二测试样本数据的样本标签进行比较,就可以确定消息推荐模型的预测是否正确,从而计算消息推荐模型的预测准确率作为评估指标。当评估指标符合预设条件(比如,预测准确率达到80%),则认为消息推荐模型合格。
[0115]
在本技术实施例提供的技术方案中,通过获取多个时间段的训练样本和设定时段内的第一测试样本,然后通过多个时间段的训练样本和第一测试样本对消息推荐模型进行联合训练;在联合训练的过程中,根据各个时间段的训练样本和第一测试样本之间的数据分布差异对各个时间段的训练样本进行预测,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数,直至消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;最后通过所述训练好的消息推荐模型在当前时间进行消息推荐;本技术利用多时期训练样本与测试样本进行联合训练,改进了传统推荐算法仅用单一时期训练样本进行训练而导致模型泛化能力差的问题,使得消息推荐模型不仅学习了训练样本与标签间的映射关系,还学习了不同时间段的训练样本与第一测试样本间的差异,从而可以为测试样本选择最优训练样本,消除样本差异带来的噪声,进而得到最佳消息推荐模型,提高了消息推荐模型的预测精度和泛化能力。
[0116]
应当注意,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0117]
以下介绍本技术的装置实施例,可以用于执行本技术上述实施例中的消息推荐方法。图6示意性地示出了本技术实施例提供的消息推荐装置的结构框图。如图6所示,本技术实施例提供的消息推荐装置包括:
[0118]
训练样本获取模块610,用于获取多个时间段的训练样本和设定时段内的第一测试样本,所述训练样本具有样本标签;
[0119]
模型训练模块620,用于通过所述多个时间段的训练样本和所述第一测试样本对消息推荐模型进行联合训练;在所述联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,直至所述消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;
[0120]
消息推荐模块630,用于通过所述训练好的消息推荐模型在当前时间进行消息推荐。
[0121]
在本技术的一个实施例中,训练样本获取模块610包括:
[0122]
历史数据获取单元,用于获取多个时间段的历史推荐业务数据,所述历史推荐业务数据为多维度数据;
[0123]
特征提取单元,用于对所述历史推荐业务数据的各个维度分别进行特征提取,得
到多个时间段的训练样本。
[0124]
在本技术的一个实施例中,特征提取单元具体用于:
[0125]
对所述历史推荐业务数据的各个维度分别进行特征提取,得到稀疏特征数据和稠密特征数据;
[0126]
对每个时间段的稀疏特征数据进行下采样处理,得到每个时间段的下采样特征数据;
[0127]
将每个时间段的下采样特征数据和对应时间段的稠密特征数据进行拼接,得到每个时间段的训练样本。
[0128]
在本技术的一个实施例中,模型训练模块620包括:
[0129]
数据差异计算单元,用于对于每个时间段的训练样本,将所述时间段的训练样本划分为多个样本数据集,计算各个样本数据集与所述第一测试样本之间的数据分布差异;
[0130]
归一化单元,用于对各个样本数据集的数据分布差异进行归一化处理,得到所述时间段的各个样本数据集的权重;
[0131]
注意力单元,用于基于注意力机制,通过所述时间段的各个样本数据集的权重对所述时间段的各个样本数据集进行加权处理,得到注意力数据;
[0132]
映射单元,用于通过预设激活函数对所述注意力数据进行映射处理,得到各个样本数据集对应的预测值。
[0133]
在本技术的一个实施例中,所述注意力单元具体用于:
[0134]
通过预设神经网络层对所述时间段的各个样本数据集进行特征提取,得到各个样本数据集对应的样本特征数据集;
[0135]
基于注意力机制对所述各个样本数据集对应的样本特征数据集进行处理,得到各个样本数据集对应的注意力特征;
[0136]
根据各个样本数据集对应的权重对各个样本数据集的注意力特征进行加权求和处理,得到注意力数据。
[0137]
在本技术的一个实施例中,模型训练模块620包括:
[0138]
损失计算单元,用于对所述消息推荐模型针对样本数据集对应的预测值和所述样本数据集的样本标签之间的损失进行最小化处理,得到数据损失;
[0139]
梯度计算单元,用于基于反向传播算法,根据所述数据损失确定所述消息推荐模型的模型参数的梯度;
[0140]
参数更新单元,用于基于梯度下降算法,根据所述模型参数的梯度更新所述模型参数。
[0141]
在本技术的一个实施例中,消息推荐模块630包括:
[0142]
模型评估单元,用于获取所述设定时段内的第二测试样本,并获取所述训练好的消息推荐模型针对所述第二测试样本的评估指标;
[0143]
消息推荐单元,用于若所述评估指标符合预设条件,则通过所述训练好的消息推荐模型在当前时间进行消息推荐。
[0144]
本技术各实施例中提供的消息推荐装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
[0145]
图7示意性地示出了用于实现本技术实施例的电子设备的计算机系统结构框图。
[0146]
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0147]
如图7所示,计算机系统700包括中央处理器701(central processing unit,cpu),其可以根据存储在只读存储器702(read-only memory,rom)中的程序或者从存储部分708加载到随机访问存储器703(random access memory,ram)中的程序而执行各种适当的动作和处理。在随机访问存储器703中,还存储有系统操作所需的各种程序和数据。中央处理器701、在只读存储器702以及随机访问存储器703通过总线704彼此相连。输入/输出接口705(input/output接口,即i/o接口)也连接至总线704。
[0148]
以下部件连接至输入/输出接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至输入/输出接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0149]
特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理器701执行时,执行本技术的系统中限定的各种功能。
[0150]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0151]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0152]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0153]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的方法。
[0154]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。
[0155]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
技术特征:1.一种消息推荐方法,其特征在于,包括:获取多个时间段的训练样本和设定时段内的第一测试样本,所述训练样本具有样本标签;通过所述多个时间段的训练样本和所述第一测试样本对消息推荐模型进行联合训练;在所述联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,直至所述消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;通过所述训练好的消息推荐模型在当前时间进行消息推荐。2.根据权利要求1所述的消息推荐方法,其特征在于,获取多个时间段的训练样本,包括:获取多个时间段的历史推荐业务数据,所述历史推荐业务数据为多维度数据;对所述历史推荐业务数据的各个维度分别进行特征提取,得到多个时间段的训练样本。3.根据权利要求2所述的消息推荐方法,其特征在于,对所述历史推荐业务数据的各个维度分别进行特征提取,得到多个时间段的训练样本,包括:对所述历史推荐业务数据的各个维度分别进行特征提取,得到稀疏特征数据和稠密特征数据;对每个时间段的稀疏特征数据进行下采样处理,得到每个时间段的下采样特征数据;将每个时间段的下采样特征数据和对应时间段的稠密特征数据进行拼接,得到每个时间段的训练样本。4.根据权利要求1所述的消息推荐方法,其特征在于,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重,包括:对于每个时间段的训练样本,将所述时间段的训练样本划分为多个样本数据集,计算各个样本数据集与所述第一测试样本之间的数据分布差异;对各个样本数据集的数据分布差异进行归一化处理,得到所述时间段的各个样本数据集的权重;相应的,根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,包括:基于注意力机制,通过所述时间段的各个样本数据集的权重对各个样本数据集进行加权处理,得到注意力数据;通过预设激活函数对所述注意力数据进行映射处理,得到各个样本数据集对应的预测值。5.根据权利要求4所述的消息推荐方法,其特征在于,基于注意力机制,通过所述时间段的各个样本数据集的权重对各个样本数据集进行加权处理,得到注意力数据,包括:通过预设神经网络层对所述时间段的各个样本数据集进行特征提取,得到各个样本数据集对应的样本特征数据集;基于注意力机制对所述各个样本数据集对应的样本特征数据集进行处理,得到各个样
本数据集对应的注意力特征;根据各个样本数据集的权重对各个样本数据集的注意力特征进行加权求和处理,得到注意力数据。6.根据权利要求4所述的消息推荐方法,其特征在于,根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,包括:对所述消息推荐模型针对样本数据集对应的预测值和所述样本数据集的样本标签之间的损失进行最小化处理,得到数据损失;基于反向传播算法,根据所述数据损失确定所述消息推荐模型的模型参数的梯度;基于梯度下降算法,根据所述模型参数的梯度更新所述模型参数。7.根据权利要求1-6任一项所述的消息推荐方法,其特征在于,通过所述训练好的消息推荐模型在当前时间进行消息推荐,包括:获取所述设定时段内的第二测试样本,并获取所述训练好的消息推荐模型针对所述第二测试样本的评估指标;若所述评估指标符合预设条件,则通过所述训练好的消息推荐模型在当前时间进行消息推荐。8.一种消息推荐装置,其特征在于,包括:训练样本获取模块,用于获取多个时间段的训练样本和设定时段内的第一测试样本,所述训练样本具有样本标签;模型训练模块,用于通过所述多个时间段的训练样本和所述第一测试样本对消息推荐模型进行联合训练;在所述联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异确定各个时间段的训练样本的权重;根据各个时间段的训练样本的权重对各个时间段的训练样本进行训练,得到各个时间段的训练样本的预测值,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新所述消息推荐模型的模型参数,直至所述消息推荐模型的训练满足收敛条件,得到训练好的消息推荐模型;消息推荐模块,用于通过所述训练好的消息推荐模型在当前时间进行消息推荐。9.一种计算机可读介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任意一项所述的消息推荐方法。10.一种电子设备,其特征在于,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器执行所述可执行指令使得所述电子设备执行权利要求1至7中任意一项所述的消息推荐方法。
技术总结本申请公开了一种消息推荐方法、装置、计算机可读介质及电子设备,所述方法包括:获取多个时间段的训练样本和设定时段内的第一测试样本;通过多个时间段的训练样本和第一测试样本对消息推荐模型进行联合训练;在联合训练的过程中,根据各个时间段的训练样本和所述第一测试样本之间的数据分布差异得到训练样本的权重,并根据该权重对训练样本进行联合训练,并根据各个时间段的训练样本的预测值和对应训练样本的样本标签之间的损失更新消息推荐模型的模型参数;通过训练好的消息推荐模型在当前时间进行消息推荐。本申请利用多时期训练样本与测试样本进行联合训练,以改进传统推荐算法仅用单一时期训练样本进行训练,导致模型泛化能力差的问题。型泛化能力差的问题。型泛化能力差的问题。
技术研发人员:郭枝虾 苏明兰 张超颖 李馨迟 杨明川
受保护的技术使用者:中国电信股份有限公司
技术研发日:2022.04.11
技术公布日:2022/7/5