1.本发明属于无线通信领域,涉及一种基于模型蒸馏的边缘缓存方法。
背景技术:2.随着通讯技术的迅猛发展,电影、直播、短视频等娱乐活动逐渐成为人们日常生活中不可或缺的一部分,这也使得移动数据流量的使用逐年递增。传统方法将所有资源集中存储在云中心,用户端请求的内容从云中心经边缘基站分发给用户,但这种方式在电影和短视频等点播场景中会大幅增加网络响应时延和链路拥塞。为了解决上述困难,边缘缓存技术应运而生。边缘缓存技术即将云中心的一部分内容提前缓存在具有存储能力的边缘基站、用户设备或者车辆上,这样不仅可以减少回程链路的流量负载,降低费用,而且可以降低传输时延,提升用户体验。
3.在大数据海量内容的前提下,提前从云中心大量的资源中筛选出一部分内容缓存在边缘基站是边缘缓存技术面临的巨大挑战。边缘缓存技术面向的服务对象是用户,根据边缘基站覆盖下用户的群组特征进行缓存成为研究的一个热点。但显然,面对无时无刻不在变化的用户群体和用户请求,挖掘群组用户的特征显得尤为困难。边缘服务器缓存的对象是内容,根据内容的一系列特征,如内容的更新时间、点击率、观看时长等进行缓存也能在一定程度上减轻云中心的负载压力。因此,不少研究者从内容入手,着重于分析和挖掘群组中内容的特点进而进行缓存策略的设计。
4.但是相比于云中心,边缘服务器的数据量较少、计算能力较弱,并不能像云中心一样对大量的数据和复杂的模型进行训练。另一方面,用户的兴趣是在不断变化的,在云中心分析用户兴趣则需要大量的时间,而在边缘基站部署一个轻量级的模型则可以快速分析该基站覆盖下的个性化用户偏好。最后,对于个性化的用户偏好,如何融合成群组的兴趣偏好也是一大挑战。
5.所以,亟需在边缘服务器部署轻量级模型预测对用户的动态兴趣进行分析和预测,再根据用户的个性化偏好得到用户的群组偏好,优化缓存内容,提升边缘服务器的服务质量。
技术实现要素:6.有鉴于此,本发明的目的在于针对短视频的边缘缓存场景中,由于边缘服务器的计算能力较弱、数据量较少导致缓存命中率较低的问题,提供一种基于模型蒸馏的边缘缓存方法,在云中心端训练教师模型,再利用模型蒸馏技术训练边缘服务器端的学生模型,预测用户偏好,提高边缘服务器的命中率和服务质量。
7.为达到上述目的,本发明提供如下技术方案:
8.一种基于模型蒸馏的边缘缓存方法,首先将边缘服务器采集到的用户端数据汇聚到云中心,对数据进行预处理并设计教师模型训练预测用户对内容的偏好;然后,在边缘服务器端部署学生模型,通过共享教师模型的参数学习该基站覆盖下的局部用户偏好。最后,
根据得到的用户偏好,结合群组用户的活跃度,制定群组缓存策略,优化缓存命中率。具体包括以下步骤:
9.s1:输入数据采集与预处理:用户端采集到的数据通常是杂乱无章的,对数据进行清洗后,主要是由两部分特征组成,即连续特征和离散特征,在边缘服务器和云中心分别对这两类特征使用不同的编码方式编码,方便后续教师模型和学生模型的训练;
10.s2:教师模型训练:将步骤s1输出的云中心预处理后的数据输入云中心部署的教师模型进行训练;
11.s3:学生模型训练:将步骤s1输出的边缘基站预处理的数据输入学生模型进行训练,结合教师模型共享的全连接网络层加快训练速度,使用教师模型和学生模型的蒸馏损失加速学生模型的收敛;
12.s4:群组缓存策略:根据步骤s3中学生模型预测得到的用户的个性化偏好,结合群组用户的活跃度融合成群组用户兴趣偏好,根据边缘服务器的缓存容量选取用户偏好最高的top-k的内容进行缓存;
13.s5:优化缓存结果:根据缓存策略,优化缓存的命中率。
14.进一步,所述步骤s1具体包括以下步骤:
15.s11:从输入层输入的用户特征eu和内容特征ec会包含很多离散特征,如用户的性别、职业、设备型号、内容的类别,包括预测目标用户的个性化偏好tb等,可以使用独热编码对离散特征进行编码,假设任一经过独热编码的离散特征记为fd。
16.fd=[d1,d2,...,di,d
||d||
]
[0017][0018]
其中d表示离散特征fd的类别集合,从而将一个一维的离散特征编码成一个只含有0和1的||d||维向量;输入层经过独热编码后的特征记为fd:
[0019]
fd=f(eu,ec,tb)
[0020]
其中f(
·
)表示离散特征的独热编码;
[0021]
s12:对于采集到的连续特征,如年龄、观看时长、观看完整性、用户行为序列等,使用特征嵌入进行编码,得到低维稠密嵌入特征y=[y1,y2,y3...,yk];
[0022][0023]
其中,表示过度矩阵的参数,表示输入的稀疏特征,k和m表示参数矩阵的大小,且k<m,表示偏置向量,从而将高维的稀疏特征转化成低维的稠密向量;输入层经过嵌入编码后的特征记为fy:
[0024]fy
=g(eu,ec,tc)
[0025]
其中g(
·
)表示连续特征的嵌入编码。
[0026]
进一步,所述步骤s2具体包括以下步骤:
[0027]
s21:门控循环单元gru:由于用户在一段时间内的兴趣是随时间动态变化的,使用gru来来对用户的行为序列进行建模。相比于循环神经网络,gru在用户行为长序列建模中表现更好。gru模型由更新门和重置门组成,更新门决定用户行为序列中有多少以前的信息需要保留并传递给下一层,重置门确定应忽略多少以前的信息;gru模型表示如下:
[0028]zt
=σ(wz(fd+fy)+n
zht-1
+bz)
[0029]rt
=σ(wr(fd+fy)+n
rht-1
+br)
[0030][0031][0032]
其中,z
t
,r
t
,h
t
分别表示更新门、重置门、候选隐藏状态向量、当前时间步长的隐藏状态向量,σ是sigmoid激活函数,wz,wr,wh和nz,nr,nh是训练参数,bz,br,bh表示偏差,
⊙
表示哈达玛乘积;
[0033]
s22:多头自注意力机制:用户的请求是多种多样的,为了从用户行为序列中提取出用户的主要兴趣,使用多头自注意力机制对用户长序列进行分析。传统的注意力机制在分析用户重要兴趣时可能会因为序列的其他噪声信息,进而对用户重要性去提取产生误差。多头自注意力机制则是对目标序列进行多次分析和信息提取,再将输出的不同结果进行集成,增加对用户主要兴趣定位的准确度:
[0034]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0035]
multihead(q,k,v)=concat(head1,head2,
…
,headh)wo[0036]
其中q=[h1,h2,
…
,h
t
]表示lstm的输出序列,k=v分别表示输出序列的键和值,headi表示多头自注意力中的第i个头,concat(
·
)表示拼接操作,w
iq
,w
ik
,w
iv
和wo表示过度矩阵的训练参数,multihead
t
(q,k,v)表示教师模型多头自注意力的输出;
[0037]
s23:全连接神经网络:由于多头自注意力输出的矩阵属于高维稀疏矩阵,且为了将教师模型的训练参数与学生模型进行共享,因此在多头自注意力输出后加入全连接的神经网络层,并且教师模型的全连接神经网络和学生模型的全连接神经网络是相同结构的:
[0038][0039][0040]
……
[0041][0042]
其中表示教师模型第j层神经网络的训练参数,表示教师模型第j层神经网络的偏置项,表示教师模型第j层神经网络的输出;
[0043]
s24:损失函数设置:对于教师模型,因为预测的用户偏好属于分类问题,因此使用对数交叉熵损失函数进行拟合:
[0044]
[0045][0046]
其中y
t
是教师模型的输出,σ表示激活函数,用户偏好是分类问题,使用softmax激活函数,n表示训练集的数据量,表示训练集的数据,f
t
(
·
)表示教师模型。
[0047]
进一步,所述步骤s3具体包括:
[0048]
s31:教师模型参数共享:边缘服务器端和云中心端相比,数据量较小且计算能力较弱,为了加快学生模型的训练,将教师模型的全连接神经网络层的参数与学生模型共享,这样不仅可以加快学生模型的训练速度,而且可以结合教师模型的特征,使学生模型的训练效果更好。
[0049][0050]
……
[0051][0052]
其中表示学生模型第j层神经网络的训练参数,表示学生模型第j层神经网络的偏置项,multiheads(q,k,v)表示学生模型的多头自注意力的输出,表示学生模型第j层神经网络的输出;
[0053]
s32:模型蒸馏:相比于复杂的教师模型,轻量级的学生模型更适合部署在计算能力较弱的边缘基站。模型蒸馏主要通过教师模型和学生模型之间的参数共享和损失蒸馏,缩短学生模型的训练时间;学生模型预测模型预测的仍然是群组用户的个性化偏好,因此使用的损失函数仍然是对数交叉熵损失。模型蒸馏在学生模型的损失蒸馏函数如下:
[0054][0055][0056][0057]
其中ys表示学生模型的预测输出,fs(
·
)表示学生模型,ls表示学生模型的对数交叉熵损失,l
t/s
表示学生模型的损失蒸馏。
[0058]
进一步,所述步骤s4具体包括:
[0059]
s41:根据模型蒸馏得到每个基站覆盖下学生模型输出的用户偏好;
[0060]
s42:结合群组用户的活跃度制定缓存标准并排序,选择top-k的内容进行缓存。
[0061]
本发明的有益效果在于:本发明针对边缘缓存场景中,由于边缘服务器的计算能力较弱、数据量较少导致缓存命中率较低的问题,提供一种基于模型蒸馏的边缘缓存方法,在云中心端训练教师模型,再利用模型蒸馏技术训练边缘服务器端的学生模型,预测用户偏好,提高边缘服务器的命中率和服务质量。
[0062]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并
且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0063]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0064]
图1为本发明的场景图;
[0065]
图2为本发明的系统流程图;
[0066]
图3中(a)为本发明中模型蒸馏中教师模型图,(b)为本发明中模型蒸馏中学生模型图;
[0067]
图4为本发明中模型蒸馏训练流程图。
具体实施方式
[0068]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0069]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0070]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0071]
请参阅图1~图4,本发明所述的基于多任务训练的边缘缓存优化算法,具体包含以下步骤:
[0072]
步骤1:输入数据采集与预处理:用户端采集到的数据通常是杂乱无章的,对数据进行清洗后,主要是由两部分特征组成,即连续特征和离散特征,在边缘服务器和云中心分别对这两类特种使用不同的编码方式编码,方便后续教师模型和学生模型的训练。所述步骤1具体包括以下步骤:
[0073]
步骤1.1:首先,从输入层输入的用户特征eu和内容特征ec会包含很多离散特征,如用户的性别、职业、设备型号、内容的类别,包括预测目标用户的个性化偏好tb等,可以使用独热编码对离散特征进行编码。假设任一经过独热编码的离散特征记为fd。
[0074]
fd=[d1,d2,...,di,d
||d||
]
[0075][0076]
其中d表示离散特征fd的类别集合。这样就将一个一维的离散特征编码成了一个只含有0和1的||d||维向量。输入层经过独热编码后的特征记为fd[0077]
fd=f(eu,ec,tb)
[0078]
其中f(
·
)表示离散特征的独热编码。
[0079]
步骤1.2:对于采集到的连续特征,如年龄、观看时长、观看完整性、用户行为序列等,使用特征嵌入进行编码,得到的低维稠密嵌入特征y=[y1,y2,y3...,yk]。
[0080][0081]
其中,表示过度矩阵的参数,表示输入的稀疏特征,k和m表示参数矩阵的大小,且k<m,表示偏置向量,这样,就将高维的稀疏特征转化成了低维的稠密向量。输入层经过嵌入编码后的特征记为fy[0082]fy
=g(eu,ec,tc)
[0083]
其中g(
·
)表示连续特征的嵌入编码。
[0084]
步骤2:教师模型训练:将步骤1输出的云中心预处理后的数据输入云中心部署的教师模型进行训练。所述步骤2具体包括以下步骤:
[0085]
步骤2.1:门控循环单元(gru):由于用户在一段时间内的兴趣是随时间动态变化的,我们使用gru来来对用户的行为序列进行建模。相比于循环神经网络,gru在用户行为长序列建模中表现更好,。gru模型由更新门和重置门组成。更新门决定用户行为序列中有多少以前的信息需要保留并传递给下一层。重置门确定应忽略多少以前的信息。gru模型可表示如下:
[0086]zt
=σ(wz(fd+fy)+n
zht-1
+bz)
[0087]rt
=σ(wr(fd+fy)+n
rht-1
+br)
[0088][0089][0090]
其中,z
t
,r
t
,h
t
分别表示更新门、重置门、候选隐藏状态向量、当前时间步长的隐藏状态向量,σ是sigmoid激活函数,wz,wr,wh和nz,nr,nh是训练参数,,bz,br,bh表示偏差,
⊙
表示哈达玛乘积。
[0091]
步骤2.2:多头自注意力机制:用户的请求是多种多样的,为了从用户行为序列中提取出用户的主要兴趣,我们使用多头自注意力机制对用户长序列进行分析。传统的注意力机制在分析用户重要兴趣时可能会因为序列的其他噪声信息,进而对用户重要性去提取产生误差。多头自注意力机制则是对目标序列进行多次分析和信息提取,再将输出的不同
结果进行集成,增加对用户主要兴趣定位的准确度。
[0092]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0093]
multihead(q,k,v)=concat(head1,head2,
…
,headh)wo[0094]
其中q=[h1,h2,
…
,h
t
]表示lstm的输出序列,k=v分别表示输出序列的键和值,headi表示多头自注意力中的第i个头,concat(
·
)表示拼接操作,w
iq
,w
ik
,w
iv
和wo表示过度矩阵的训练参数,multihead
t
(q,k,v)表示教师模型多头自注意力的输出。
[0095]
步骤2.3:全连接神经网络:由于多头自注意力输出的矩阵属于高维稀疏矩阵,且为了将教师模型的训练参数与学生模型进行共享,因此在多头自注意力输出后加入了全连接的神经网络层,并且教师模型的全连接神经网络和学生模型的全连接神经网络是相同结构的。
[0096][0097]
……
[0098]
其中表示教师模型第j层神经网络的训练参数,表示教师模型第j层神经网络的偏置项,表示教师模型第j层神经网络的输出。
[0099]
步骤2.4:损失函数设置:对于教师模型,因为预测的用户偏好属于分类问题,因此使用对数交叉熵损失函数进行拟合。
[0100][0101][0102]
其中y
t
是教师模型的输出,σ表示激活函数,用户偏好是分类问题,使用softmax激活函数,n表示训练集的数据量,表示训练集的数据,f
t
(
·
)表示教师模型。
[0103]
s3:学生模型训练:将s1输出的边缘基站预处理的数据输入学生模型进行训练,结合教师模型共享的全连接网络层加快训练速度,使用教师模型和学生模型的蒸馏损失加速学生模型的收敛。所述步骤3具体包括:
[0104]
步骤3.1:教师模型参数共享:边缘服务器端和云中心端相比,数据量较小且计算能力较弱,为了加快学生模型的训练,我们将教师模型的全连接神经网络层的参数与学生模型共享,这样不仅可以加快学生模型的训练速度,而且可以结合教师模型的特征,使学生模型的训练效果更好。
[0105][0106][0107]
……
[0108][0109]
其中表示学生模型第j层神经网络的训练参数,表示学生模型第j层神经网
络的偏置项,multiheads(q,k,v)表示学生模型的多头自注意力的输出,表示学生模型第j层神经网络的输出。
[0110]
步骤3.2:模型蒸馏:相比于复杂的教师模型,轻量级的学生模型更适合部署在计算能力较弱的边缘基站。模型蒸馏主要通过教师模型和学生模型之间的参数共享和损失蒸馏,缩短学生模型的训练时间。学生模型预测模型预测的仍然是群组用户的个性化偏好,因此使用的损失函数仍然是对数交叉熵损失。模型蒸馏在学生模型的损失蒸馏函数如下:
[0111][0112][0113][0114]
其中ys表示学生模型的预测输出,fs(
·
)表示学生模型,ls表示学生模型的对数交叉熵损失,l
t/s
表示学生模型的损失蒸馏。
[0115]
步骤4:群组缓存策略:根据步骤3中学生模型预测得到的用户的个性化偏好之后,群组活跃度和群组偏好融合指标作为内容缓存的依据并进行排序,即可求解内容放置策略β:
[0116][0117][0118]
其中acu表示群组用户中用户u的活跃度,u表示基站覆盖下的群组用户,表示训练集中用户u的数据量,将β降序排列并选取top-k的内容进行缓存
[0119]
步骤5:优化缓存结果:根据缓存策略,优化缓存的命中率。
[0120]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。