A Recommendation Model Inference System Based on GPU Direct Storage Access Architecture
-
摘要:
新型深度学习推荐模型已广泛应用至现代推荐系统,其独有的特征——包含万亿嵌入参数的嵌入层,带来的大量不规则稀疏访问已成为模型预估的性能瓶颈. 然而,现有的推荐模型预估系统依赖CPU对内存、外存等存储资源上的嵌入参数进行访问,存在着CPU-GPU通信开销大和额外的内存拷贝2个问题,这增加了嵌入层的访存延迟,进而损害模型预估的性能. 提出了一种基于GPU直访存储架构的推荐模型预估系统GDRec.GDRec的核心思想是在嵌入参数的访问路径上移除CPU参与,由GPU通过零拷贝的方式高效直访内外存资源. 对于内存直访,GDRec利用统一计算设备架构(compute unified device architecture,CUDA)提供的统一虚拟地址特性,实现GPU 核心函数(kernel)对主机内存的细粒度访问,并引入访问合并与访问对齐2个机制充分优化访存性能;对于外存直访,GDRec实现了一个轻量的固态硬盘(solid state disk,SSD)驱动程序,允许GPU从SSD中直接读取数据至显存,避免内存上的额外拷贝,GDRec还利用GPU的并行性缩短提交I/O请求的时间. 在3个点击率预估数据集上的实验表明,GDRec在性能上优于高度优化后的基于CPU访存架构的系统NVIDIA HugeCTR,可以提升多达1.9倍的吞吐量.
Abstract:Emerging deep learning recommendation models (DLRM) have been widely used in modern recommendation systems. The unique embedding layer of DLRM, commonly with tens of trillions of parameters, induces massive irregular access to storage resources, which becomes the performance bottleneck of model inference. Existing inference systems rely on CPU access to embedding parameters on DRAM and SSD. However, we find that this architecture suffers from excessive CPU-GPU communication overhead and redundant memory copies, resulting in increased latency of embedding layers and limited inference performance. In this paper, we propose GDRec, a recommendation model inference system based on the architecture of GPU direct storage access. The core idea of GDRec is to eliminate the CPU from the access path of embedding parameters and let the GPU directly access storage resources with the paradigm of zero copy. For direct access to DRAM, GDRec retrofits the unified virtual addressing feature of CUDA, to allow GPU kernels to issue fine-grained access to host DRAM. GDRec further introduces two optimizations, access coalescing and access aligning, to fully unleash the performance of DRAM access. For direct access to SSD, GDRec implements a lightweight NVMe driver on GPU, allowing GPU to submit I/O commands to read data from SSD to GPU memory directly, without extra copies on DRAM. GDRec also leverages the massive parallelism of GPU to shorten the submission time of I/O commands. Experiments on three public datasets show that GDRec can improve inference throughput by 1.9 times, compared with a highly-optimized recommendation model inference system, NVIDIA HugeCTR.
-
天际线(Skyline)查询[1]作为多目标决策、兴趣点发现、推荐系统等领域关键问题的一种解决途径,在2001年被提出,自此受到研究学者的广泛关注与研究. 近些年,Skyline查询研究拓展到不确定数据Skyline查询[2]﹑数据流Skyline查询[3]﹑动态Skyline查询[4]﹑反Skyline查询[5] 、偏好Skyline查询等方面,其中偏好Skyline查询可以返回满足用户偏好需求的结果集. 针对因用户偏好不同导致属性的重要性不同问题,研究者们提出了新的支配关系与算法. 但已有研究主要集中在非道路网的用户偏好Skyline查询或者道路网单用户偏好Skyline查询方面,没有考虑道路网多用户偏好和权重的Top-k Skyline查询.
传统偏好Skyline查询算法主要存在3点局限性:1)偏好Skyline查询需要确定属性的重要程度,由于不同用户权重与偏好不同,因此不同属性的重要程度也不一致,而已有研究中较少有提出将用户偏好和权重综合考虑,得到对用户群统一的属性重要程度次序处理方法;2)传统偏好Skyline查询算法大多未考虑道路网环境下的距离维度,只考虑静态维度;3)传统偏好Skyline查询算法返回的结果集过大、无序,不能给用户提供有效的决策支持.
因此,针对道路网多用户偏好Top-k Skyline查询问题,本文提出满足多用户不同权重和偏好需求的查询方法.
本文的主要贡献有3点:
1)针对道路网存在大量数据点以及多查询用户场景,需要计算数据点到各个查询用户的道路网距离,从而产生的很大距离计算开销,为了提升距离计算效率,本文根据所提的Vor-R*-DHash索引结构以及数据点与查询用户群的空间位置关系,提前剪枝在距离维度被支配的大量数据点.
2)针对在道路网Top-k Skyline查询处理时未综合考虑多用户不同权重和偏好以及返回的结果集数量不可控的问题,本文首先提出整体属性权重值的概念,综合考虑用户权重和偏好;并进一步提出用户群权重偏好次序,并基于此次序提出一种新的支配,即K-准放松支配;接着根据偏好次序进行逐次放松支配,使返回结果集大小可控;同时当k值改变时,动态调整放松轮次即可获取候选结果集CS,而无需重新计算距离、偏好次序等,减少了查询计算开销.
3)针对Skyline查询返回结果集无序的问题,本文基于z-整体属性权重值,提出了选取Top-k个结果集的打分函数,对候选结果集CS打分排序,返回有序结果集.
1. 相关工作
Skyline查询主要分为集中式查询和分布式查询. 其中集中式查询主要分为使用索引结构和不使用索引结构. 使用索引结构的算法常用R-tree等索引结构,例如文献[6]利用最近邻(nearest neighbor,NN)算法和R-tree索引查找Skyline点,基于R-tree可以快速判断数据点是否为Skyline点,接着利用数据点进行子集合的划分,递归查找Skyline点. 不使用索引结构的Skyline查询算法主要有基于排序的SFS(sort-filter Skyline)算法[7]. 而Skyline查询在不断发展过程中又产生了许多变种问题,例如K-支配空间Skyline查询[8]﹑连续Skyline查询[9]﹑针对推荐系统的范围障碍空间连续Skyline查询[10]﹑概率Skyline查询[11]以及Top-k Skyline查询等[12-13].
在集中式计算环境下,文献[14]根据用户不同偏好提出了维度不确定的定义,根据维度特征划分数据,进行Skyline概率支配测试,同时利用阈值处理大规模数据集Skyline查询问题. 文献[15]提出一种高效偏序域Skyline查询处理方法,利用倒排索引进行Skyline查询. 在并行计算环境下,文献[16]提出了不完全数据集的偏好Skyline查询算法SPQ(Skyline preference query). 文献[17]根据用户的偏好,基于Voronoi图将数据对象划分到不同网格中,并行计算所有对象组合,获取动态Skyline结果. 文献[18]提出了MapReduce下Top-k Skyline偏好查询.
道路网Skyline查询近些年来也受到越来越多的关注. 道路网Skyline查询既考虑数据点的路网空间属性,又考虑非空间属性. 文献[19]提出了基于范围的移动对象连续Skyline查询处理方法,利用Voronoi图组织道路网中的数据点,通过所提的3种算法减少道路网产生的相交节点数和距离计算开销. 文献[20]提出了道路网环境下综合考虑空间距离和社交距离的Skyline组用户查询方法.
Top-k Skyline查询在多目标决策中往往更具优势,因为它可以控制返回的结果集数量. 文献[21]提出基于安全区域技术解决连续Top-k Skyline查询结果更新问题,提出了结合Top-k查询和Skyline查询的安全区域构建算法. 文献[22]提出了MapReduce环境下Top-k Skyline处理方法. 文献[23]将K-Skyband查询与Top-k Skyline查询结合处理大数据集的Top-k Skyline查询.
目前道路网环境下Top-k Skyline查询研究大多集中在单用户场景,较少考虑多用户偏好和权重不同的场景. 针对已有方法的不足,本文利用查询点与数据点的位置关系剪枝数据集,利用所提的K-准放松支配控制结果集数量;利用所提的打分函数返回有序结果集,在理论论证和分析基础上提出了道路网多用户偏好Top-k Skyline查询方法.
2. 主要定义
设道路网环境下数据集P={p1, p2,…, pn},查询用户群G={q1, q2,…, qm}.
定义1. 道路网距离支配. 给定查询用户群G、数据点p1、数据点p2,数据点之间的距离为Dist,当且仅当Dist(p1, qi)≤Dist(p2, qi),1≤i≤m;且存在Dist(p1,qi)<Dist(p2, qi),1≤i≤m,称p1道路网距离支配p2,记作p1►p2. 本文距离如不特殊说明,则为道路网距离.
定义2. 整体属性权重. 给定查询用户群G,用户权重w={w1,w2,…,wm},用户qi的查询关键字keys={C1,C2},C1为优先考虑的属性集合,C2为一般偏好的属性集合,任意维度dj的整体属性权重Wj如式(1):
Wj=m∑i=1si⋅wi, (1) 其中si代表属性dj对于用户qi的重要性得分.
在属性的重要性程度计分时,将属性偏好分为3类:优先考虑﹑一般偏好和未考虑. 不同类别分数不同,例如C1中的属性被赋予2分,C2中的属性被赋予1分,未考虑的属性被赋予0分.
定义3. 用户群权重偏好次序. 指针对查询用户群属性的有序集合 GP={d1, d2, …, di},其中di代表任意属性,GP中属性对用户群的重要性程度呈非递增排列. 用户群权重偏好次序综合考虑用户的偏好和权重.
定义4. K-准放松支配(KPRD). 设P为数据集,数据维度空间为D,dj为任意维度,总维度数为r,θ=(θ1,θ2,…,θK)是D上K个维度的无差异阈值. 数据点pi,pt∈P,pi K-准放松支配pt,记作piϾpt,当且仅当:
{|{j|pi[dj]−pt[dj]>θj}|=0,|{j|pt[dj]−pi[dj]>0}|<|{j|pi[dj]−pt[dj]>0}|, (2) 其中1≤j≤K.
定义5. 道路网多用户偏好Top-k Skyline查询. 给定道路网路段集R、查询用户群G、数据集P、用户的查询关键字集合keys和用户权重集合w,道路网多用户偏好Top-k Skyline查询返回P的一个子集. 该子集中数据点在道路网的距离维度和静态维度都不能被P中任意其他数据点支配,并且是根据用户群偏好和权重排序的Top-k个数据点. 本文将道路网多用户偏好Top-k Skyline查询方法记作MUP-TKS.
3. 道路网多用户偏好Top-k Skyline查询
本文提出的道路网多用户偏好Top-k Skyline查询方法主要分为3个部分:距离较优集选取﹑K-准放松支配和Top-k个数据点选取.
3.1 道路网距离较优集选取方法
定义6. Mindist距离[24]. r维欧氏空间中,点p到同一空间内某矩形N的最小距离为Mindist(N, p).
定义7.Edist距离. 设查询用户群的最小外接矩形(minimum bounding rectangle,MBR)为Q,数据点p的MBR为N,则min{Mindist(p, Q)}为(Q, N)最小欧氏距离,记作Edistmin;max{Mindist(p, Q)}为(Q, N)最大欧氏距离,记作Edistmax.
定义8.Ndist距离. 设查询用户群的MBR为Q,数据点p的MBR为N,有min{Ndist(p, Q)}为(Q, N)最小网络距离,记作Ndistmin;max{Ndist(p, Q)}为(Q, N)最大网络距离,记作Ndistmax,其中p为N中的任意数据点,Ndist(p,Q)为p到Q的网络距离.
定理1. 设查询用户群的MBR为Q,道路网中数据点构成的2个中间节点分别为N1,N2,若DE1=Edistmin(Q, N2),DE2=Edistmax(Q, N1),DN1=Ndistmax(Q, N1),并且DE1>DE2,DE1>DN1,则N1►N2,且N2中任意数据点都被N1中数据点距离支配.
证明. 假设DN2=Ndistmin(Q, N2),因为欧氏距离值一定小于等于道路网距离值,所以当DE1>DE2且DE1>DN1时一定有DN2≥DE1,可得DN2>DN1,即N2中数据点到Q的最小网络距离大于N1中数据点到Q的最大网络距离,进而可得N2中任意数据点到Q的网络距离都大于N1中任意数据点到Q的网络距离. 因此N1►N2,且N2中任意数据点被N1中任意数据点道路网距离支配.证毕.
剪枝规则1. 设数据点构成的MBR分别为N1,N2,查询用户群的MBR为Q,如果满足:Edistmax(Q, N1)≤Edistmin(Q, N2),并且Ndistmax(Q, N1)<Edistmin(Q, N2),则节点N2可被剪枝.
定义9. 道路网最大距离的最小值. 给定数据点p1,p2,查询用户群G,数据点p到查询点q的道路网距离为Ndist(p, q). 若有DN1=max{Ndist(p1, qi)},DN2=max{Ndist(p2, qi)}(1≤i≤m),并且DN1<DN2,则当前道路网最大距离的最小值为DN1,记作DN_MaxMin.对应的数据点为p1.
定理2. 若节点N的Edistmin(Q, N)>DN_MaxMin,则节点N可被剪枝.
证明. 因为Edistmin(Q, N)>max{Ndist(p, qi)}(1≤i≤m),所以Ndistmin(Q, N)>max{Ndist(p, qi)},即p►N,且N中数据点也被p距离支配.证毕.
剪枝规则2. 若Edistmin(Q, N)≥DN_MaxMin,则节点N被支配,即N和N中数据点{p1, p2,···, pi}被剪枝.
如图1所示,数据点p1,p2到查询用户群{q1, q2, q3}的最大网络距离分别为DN1,DN2,有DN1>DN2,则DN_MaxMin=DN2. 数据点{p3,p4,p5,p6,p7,p8}构成的MBR为N1;若Edistmin(Q, N1)>DN_MaxMin,可得N1中数据点到各查询用户的网络距离大于DN_MaxMin,因为Edistmin(Q, N1)>DN_MaxMin,且有min{Ndist(p2, qi)}≥Edistmin(Q,N1)(1≤i≤3),所以p2►N1,N1可被剪枝.
定理3. 设DE为数据点pi到查询用户qj的欧氏距离,若min{DE(pi, qj)}>DN_MaxMin(1≤j≤m),则pi被剪枝.
证明. 假设p1为DN_MaxMin对应的数据点,若min{DE(pi,qj)}>DN_MaxMin,则有Ndist(p,qj)>DN_MaxMin(1≤j≤m),即数据点p1►p,p可被剪枝.证毕.
剪枝规则3. 假设数据点p1为DN_MaxMin对应的数据点,若存在DN_MaxMin<min{DE(pi, qj)}(1≤j≤m),则p1►pi,可将pi从候选集中删除,其中pi为任意不为p1的数据点.
为了减少计算,在剪枝前基于路网数据点的网络Voronoi图构建Vor-R*-DHash索引结构,如图2所示.
Vor-R*-DHash索引结构构造过程有3步:
1)构建路网所有数据点的网络Voronoi图.
2)创建R*-tree.从R*-tree的根部开始,从上至下、从左至右给每个节点编号,从0开始编号.
3)构建2级HashMap结构,第1级HashMap为first_hash、key为R*-tree中每个节点编号;第2级HashMap为sec_hash、key为后续剪枝处理需要的值,包括isNode(非数据点的节点)、MinE(节点到Q的最小欧氏距离值)、MaxE(节点到Q的最大欧氏距离值 )、MinN(节点到Q的最小网络距离值)、MaxN(节点到Q的最大网络距离值)、{DN1, DN2,…, DNi}(数据点到各查询用户的网络距离)、{DE1, DE2,…, DEi}(数据点到各查询用户的欧氏距离).
2级key对应的value值初始都为空,若数据点根据剪枝规则提前被剪枝,则这些值无需计算.DEi,DNi的值也是后续需要使用才被计算,并存入sec_hash.
基于剪枝规则1~3和Vor-R*-DHash索引结构,进一步给出距离较优集选取方法,如算法1所示.
算法1. 距离较优集选取方法 G_DBC.
输入:查询用户群G,道路网路段集R,数据集P;
输出:距离维度不被支配的距离较优集DBC.
① 以P中数据点、道路网路段集R构建 Vor- R*-DHash索引;
② 构建查询用户群的最小外包矩形Q;
③ 初始化DBC←∅;
④ 根据索引找到距离查询用户最近的点point;
⑤ 将point加入DBC中;
⑥ 计算数据点到各查询用户的网络距离 Ndist(p, qi)、欧氏距离DE(p, qi);
⑦ 将数据点网络距离、欧氏距离存入sec_hash;
⑧ 找到数据点到查询用户的网络距离最大值 的最小值;
⑨ DN_MaxMin←min{Ndist(p,qi)}; /*将最小值 赋给DN_MaxMin*/
⑩ 将数据点父节点Ni加入队列queue中;
⑪ 计算Ni到Q的最小、最大欧氏距离和最 小、 最大网络距离,存至sec_hash;
⑫ N1←min{MaxN}; /*将当前支配能力最强的 节点赋值给N1*/
⑬ for node in queue do
⑭ if node的孩子节点都被访问过 then
⑮ 将node的父节点加入queue中;/*向上 一层访问*/
⑯ end if
⑰ if node的孩子节点N为非叶子节点 then
⑱ 计算N到Q的欧氏距离DE1;
⑲ if DE1 > DN_MaxMin then
⑳ Cut N;/*将N剪枝,剪枝规则2*/
㉑ else if MaxE(N1) < MinE(N) 且 MaxN(N1)<MinE(N) then
㉒ Cut N;/*剪枝规则1*/
㉓ else
㉔ 将N加入队列queue;
㉕ 计算N到Q的最小、最大网络距离, 并 存至sec_hash;
㉖ 更新N1←min{MaxN};/*当前支配能力强 的节点赋给N1*/
㉗ end if
㉘ end if
㉙ if node的孩子节点N为叶子节点 then
㉚ 计算数据点到各查询用户欧氏距离 DE(p,qi);
㉛ if min{DE(p,qi)} > DN_MaxMin then
㉜ Cut N;/*剪枝规则3*/
㉝ else
㉞ 计算N到各查询用户网络距离DN;
㉟ if min{DN} > DN_MaxMin then
㊱ Cut N;
㊲ else
㊳ 将N与DBC中数据点支配比较;
㊴ if N被支配 then
㊵ Delete N;
㊶ else
㊷ 将N加入DBC中;
㊸ 更新DN_MaxMin←min{DN};
㊹ end if
㊺ end if
㊻ end if
㊼ end if
㊽ end for
㊾ return DBC.
算法1首先构建Vor-R*-DHash索引和查询用户群最小外接矩形Q,可快速得到距离查询点最近的数据点point,计算并保存sec_hash所需数据. 将point加入距离较优集DBC,并初始化DN_MaxMin. 接着将point父节点加入队列queue中,计算并保存sec_hash所需数据,并初始化N1. 每次取出队头节点处理,依据剪枝规则1~3进行节点的剪枝或者将节点加入DBC,并判断是否需要更新N1,DN_MaxMin等值,直至队列为空,循环结束. 最后返回距离较优集DBC.
3.2 数据集的放松支配过程
3.2.1 获取用户群权重偏好次序
首先初始化整体属性权重集合.W={W1,W2,…,Wi}={0,0,…,0};接着计算每个属性的整体属性权重值得到W;最后对整体属性权重值不为0的属性降序排列,得到属性的重要性次序,即用户群权重偏好次序.
在获取用户群权重偏好次序时,为了减小计算开销,利用HMap1,HMap2分别保存优先考虑的属性和一般偏好的属性. 当用户发起查询时,将C1中属性作为键,对应的用户权重作为值保存到HMap1;将C2中属性作为键,对应的用户权重作为值保存到HMap2.
进一步给出获取用户群权重偏好次序算法CDW,如算法2所示.
算法2. 获取用户群权重偏好次序算法 CDW.
输入:用户群G,用户查询关键字keys,用户权重w,维度空间D;
输出:用户群权重偏好次序GP.
① 初始化W为0; /*大小为数据集维度数*/
② 根据keys,w创建HMap1,HMap2;
③ for dj ∈D do
④ 基于HMap1、HMap2和式(1)得到Wj ;
⑤ end for
⑥ 根据W降序得到用户群权重偏好次序GP;
⑦ return GP. /*返回用户群权重偏好次序*/
3.2.2 基于用户群权重偏好次序的K-准放松支配
获取用户群偏好次序后,基于该次序进行放松支配处理. 本文中K为整体属性权重值不为0的维度数. 放松支配过程的处理对象为DBC与静态Skyline集取并集后的集合S. 经K-准放松支配后得到数量可控的候选结果集CS.
定理4. 任意2个数据点pi,pj∈P,若第i(i>0)轮在K个维度上piϾpj,则数据点pi必定在前K–i维支配数据点pj.
证明. 若在第i轮piϾpj,可知该轮的无差异阈值为(0,0,…,0,θK−i+1,…,θK),进而可得前K–i维使用的无差异阈值为(0,0,…,0),所以前K–i维为严格支配比较,即数据点pi必定在前K–i维支配数据点pj.证毕.
定理5. 数据集P经过第i(i>1)轮放松支配后所得结果集Si一定是第i–1轮放松支配后所得结果集Si−1的子集.
证明. 设第i轮放松的维度为第(K–i+1)~K维,第i–1轮放松的维度为第(K–i+2)~K维,其余维度使用严格支配. 可知第i轮的无差异阈值为(0,0,…,0,θK−i+1,θK−i+2,…,θK),第i–1轮的无差异阈值为(0,0,…,0,θK−i+2,…,θK),进而可知第i–1轮在前K–i+1个维度为严格支配比较,即在前K–i+1个维度的无差异阈值为(0,0,…,0). 第i轮不同于第i–1轮之处在于对第K–i+1维进行了放松支配,即在前K–i+1个维度无差异阈值为(0,0,…,0,θK−i+1),所以有Si⊆Si−1.证毕.
由定理4、定理5可直接得出定理6.
定理6. 给定数据集S,结果集数量随着每一轮放松而呈单调非递增趋势,即
|KPRD(i−1,D,S)|⩽|KPRD(i,D,S)| . (3) 为使返回的结果集更符合用户群偏好,并保证数量可控,基于定理4~6进行逐次放松支配. 逐次放松支配过程中,θ是D上K个维度的无差异阈值,θ =(θ1, θ2, …, θK). 假定当前放松轮次为第i轮(1≤i≤K),无差异阈值θ =(0,0,…,0,θK−i+1,…,θK). 位于di前面的维度重要性都要高于di,因此该轮放松支配维度d1~di−1都使用严格支配比较. 放松支配从对用户群而言最不重要的属性开始,并预先将数据点按照用户群权重偏好次序非递增排序,距离维度值用数据点到查询用户群网络距离的最大值表示.
基于以上讨论,进一步给出基于用户群权重偏好次序的K-准放松支配算法KPRD,如算法3所示.
算法3. 基于用户群权重偏好次序的K-准放松支配算法KPRD.
输入:用户群G,无差异阈值θ,并集S,数据维度空间D,k值,用户查询关键字keys,用户权重w;
输出:候选结果集CS.
① GP←call CDW(G, keys, w, D);/*调用算法2 获取用户群权重偏好次序GP*/
② K←|GP|; /*整体属性权重值大于0的 维度数*/
③ 根据GP调整S中数据点;
④ 初始化CurS←S; /*CurS为每轮放松支配后 的结果集*/
⑤ 初始化oldCount←|S|; /*保存上一轮结果集 个数*/
⑥ 初始化curCount ←|CurS|;/*保存本轮结果集 个数*/
⑦ for j = K to 1 do /*进行最多K轮放松支配*/
⑧ for every pi,pj ∈ CurS do
⑨ if piϾpj then
⑩ 将pj从CurS删除;
⑪ curCount = curCount −1;
⑫ end if
⑬ end for
⑭ if oldCount ≥ k 且 curCount < k then
⑮ CS←S;
⑯ return CS;/*返回上一轮的结果集*/
⑰ else
⑱ 将CurS结果集保存至文件;
⑲ S←CurS;/*更新S*/
⑳ oldCount←|S|;/*更新oldCount*/
㉑ end if
㉒ end for
㉓ CS←CurS;
㉔ return CS.
3.3 Top-k个数据点选取方法
通过放松支配处理后可有效控制返回用户群的结果集大小,本节进一步给出Top-k个数据点选取策略,使返回结果集有序. 利用z-整体属性权重值的打分函数选取Top-k个数据点,处理对象为候选结果集CS.
定义10. 单调打分函数F[25]. 数据集中数据点作为输入域将数据点映射到实数范围.F由r个单调函数构成,F={f1, f2, …, fr}. 对于数据集中任意数据点,有F=r∑j=1fj(p[dj]),其中fj(p[dj])为数据点在dj维度的单调函数.
定理7. 假设数据集P的单调打分函数为F,若数据集中任意一个元组有最高的分数,那么它一定是Skyline点.
证明. 以反证法进行证明. 假设有p1,p2∈P,p1的得分F(p1)为数据集的最高得分,F(p1)>F(p2),p1不是Skyline点,p2支配p1,p1[dj]≤p2[dj](1≤j≤r),则可得r∑j=1fj(p1[dj])⩽r∑j=1fj(p2[dj]),即F(p1)≤F(p2),与假设矛盾.证毕.
定理8. 数据集P根据任意单调打分函数所得数据点顺序是Skyline支配的拓扑顺序.
证明. 以反证法进行证明. 假设存在2个数据点p1,p2∈P,单调打分函数为F,p1支配p2,F(p1)<F(p2),根据定理7可知,p1支配p2,则有F(p1)≥F(p2),与假设矛盾. 所以如果F(p2)>F(p1),可能有p2支配p1,但可以确定p1不可能支配p2. 如果F(p1)=F(p2),则p1支配p2或p2支配p1(这两者是等价的,会根据属性的映射关系排序),或者p1和p2之间不具备支配关系. 因此依据打分函数F所得数据点顺序是按照Skyline支配关系的一个拓扑顺序.证毕.
定义11. 线性打分函数[25]. 给定线性打分函数L,一般化形式为L(p)=r∑j=1ωj⋅p[dj],其中ωj为实常数,p[dj]为数据点在dj维度的取值.
定义12. z-整体属性权重值. 给定数据集P,数据点pi∈P,pi在dj维度的z-整体属性权重值为
φi,j=(Vi,j−μ)σ⋅Wj⋅ζj, (4) 其中,(Vi,j−μ)σ为数据点pi在维度dj的z值,Wj为dj的整体属性权重值,ζj为dj的维度优劣值,ζj=1或ζj=−1. 由定义10~12可知,fj(p[dj])=φi,j=ωjz,ωj=Wjζj.
定理9. 数据点任意维度的fj(p[dj])是单调的.
证明. 因为ωj=Wjζj,在打分阶段Wj为实常数,所以可得ωj为实常数,且随着数据点维度值变大,它的z值也变大,因此数据点的任意维度fj(p[dj])是单调的.证毕.
定义13. 基于z-整体属性权重值的打分函数. 数据点pi各维度z-整体属性值之和为它的得分,记作F(pi):
F(pi)=r∑j=1φi,j. (5) 定理10. F(pi)是单调打分函数.
证明. 因为有F(pi)=r∑j=1fj(p[dj]),根据定理9可知数据点的任意维度fj(p[dj]) 随着维度值变大单调递增,它们具备相同的单调性,因此F(pi)也是单调的.证毕.
进一步给出Top-k个数据点选取方法,如算法4所示.
算法4.Top-k个数据点选取方法TK_DC.
输入:候选结果集CS,整体属性权重集合W,维度优劣集合ζ;
输出:Top-k Skyline结果集.
① for pi∈CS do
② 计算数据点的z-整体属性权重值;/*根据 式(4)*/
③ 计算数据点得分;/*根据式(5) */
④ end for
⑤ 根据F(pi)降序排序;
⑥ return Top-k个数据点.
算法4主要对经过算法3处理后的候选结果集CS打分,并对行②③计算CS中各个数据点的得分,基于行⑤⑥数据点的得分排序,输出Top-k Skyline结果集给用户群.
综合距离较优集选取﹑K-准放松支配和Top-k个数据点选取的处理过程,进一步给出算法5 MUP-TKS的算法.
算法5. 道路网多用户偏好Top-k Skyline查询算法MUP-TKS.
输入:数据集P,道路网路段集R,用户群G,用户查询关键字keys,用户权重w,无差异阈值θ,k,维度优劣集合ζ;
输出:Top-k Skyline结果集.
① 预先计算保存数据集的静态Skyline 集;
② 距离较优集选取方法G_DBC;/*调用算法1*/
③ 对距离较优集与静态Skyline集求并集S;
④ K-准放松支配算法KPRD; /*调用算法 3*/
⑤ Top-k 个数据点选取方法TK_DC. /*调用算 法4*/
4. 实验比较与分析
本节主要对MUP-TKS进行实验以及性能评估. 实验对比算法为道路网单用户偏好Skyline算法UP-BPA[26]、K支配空间偏好Skyline算法KSJQ[23]以及基于时间道路网多用户偏好Skyline算法DSAS[27].UP-BPA算法适用于道路网单用户,为了更好地与本文所提MUP-TKS进行对比,将其扩展,对查询用户群的每个用户分别运行该算法;再对子结果集取并集,得到候选结果集CS;最后对候选结果集基于z-值的打分函数打分,得到Top-k个数据点,扩展后的算法称为EUP-BPA.将KSJQ算法扩展,对每个用户单独执行该算法,用户偏好对应它的K个子空间;对每个用户的结果集取并集后得到候选结果集;对候选结果集CS基于z-值的打分函数打分,得到Top-k个Skyline结果集,扩展后的算法称为EKSJQ.将DSAS算法扩展,对满足不同用户需求的数据点基于z-值打分函数打分,按照数据点得分从高至低返回Top-k个Skyline结果集,扩展后的算法称为EDSAS.
4.1 数据集及实验环境设置
实验使用真实道路网数据集. 道路网数据集
1 是北美2.5×107 km2范围内的路段信息,它包含175813个节点和179179条边. 兴趣点数据集2 来自北美酒店及登记信息. 查询用户采用随机生成的方式. 本文使用Vor-R*-DHash索引结构组织数据集. 实验参数取值范围如表1所示,每个用户最大关注维度为4.每个实验采取单一变量原则,其余变量为默认值,实验结果取30次实验运行的平均值.表 1 实验参数设置Table 1. Experimental Parameter Setting参数 取值范围 用户数量 5,10,15,20,25,30,35 数据集规模 1×104,2×104,3×104,4×104,5×104 数据维度 5,7,9,11,13,15,17 无差异阈值(标准差) 0.1倍,0.5倍,1倍,2倍,10倍 获取数据点数量k 2,4,6,8,10 注:加粗数值表示参数默认取值. 实验环境为:Windows 10(64b),CoreTM i6-5200U CPU @2.20 GHz 2.19 GHz处理器,12 GB运行内存. 在IntelliJ IDEA开发平台上使用Java实现本文所提的算法MUP-TKS和对比算法EUP-BPA,EKSJQ,EDSAS.
4.2 算法对比实验
1)用户数量对算法性能的影响
为了分析用户数量对算法性能的影响,本实验对不同用户数量下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察算法在不同用户数量下的CPU运行时间、候选结果集CS数量的变化情况.
图3展示了4种算法在不同用户数量下CPU运行时间变化情况.由图3可知,随着用户数量的增加,4种算法的CPU运行时间都在增加. 因为用户数量增加导致不同用户的偏好情况增加,从而需要更多时间处理用户偏好. MUP-TKS的CPU运行时间增长趋势没有其他3种算法的增长趋势大,主要原因是MUP-TKS将多用户的偏好转换成用户群权重偏好次序,对数据集按照该次序预排序,再进行K-准放松支配,使用户数量增加对CPU运行时间的影响减小.
图4展示了4种算法随着用户数量的变化,候选结果集CS数量的变化情况. 由图4可知随着用户数量的增加,CS的数量变大. 但MUP-TKS,EKSJQ,EDSAS算法的变化趋势远没有EUP-BPA算法的变化趋势大,主要因为EUP-BPA算法需要对每个用户进行偏好Skyline查询,再合并各用户的偏好Skyline结果集.
2)数据规模对算法性能的影响
为了分析数据规模对MUP-TKS性能的影响,本实验对不同数据规模下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察4种算法在不同数据规模下CPU运行时间、CS数量的对比情况.
由图5可知,随着数据集规模变大,CPU运行时间不断增加,因为当数据集规模变大时,需要比较的元组数量增加. 而MUP-TKS的增长趋势比其他3种算法小,主要因为MUP-TKS利用剪枝策略和Vor-R*-DHash索引提前剪枝大量不可能成为Skyline的数据点,减少了元组比较次数.
3)k值对算法性能的影响
图6展示了4种算法随着k值变化CPU运行时间变化的情况. 随着k值变化,MUP-TKS的CPU运行时间没有太大变化,因为MUP-TKS在每一轮放松支配后会保存结果集,当k值变化时,可直接找到对应符合大小要求轮次的CS打分,即可得到Top-k Skyline结果集,该过程时间消耗很小. 而EKSJQ,EUP-BPA算法都需要重新计算,时间消耗较大.
图7展示了4种算法随着k值变化元组比较次数的变化情况. 可以发现MUP-TKS随着k值增大,元组比较次数减少,因为当k值增大时,放松支配的轮次减少. 而随着k值增大,EKSJQ,EUP-BPA算法的元组比较次数增多,因为需要进行更多的支配比较找到Top-k个数据点. 随着k值增大,EDSAS算法的元组比较次数基本没有变化.
4)无差异阈值对算法性能的影响
本实验分析无差异阈值对MUP-TKS性能的影响. 图8展示了MUP-TKS在不同无差异阈值下CPU运行时间的变化情况. 由图8可知,若只考虑第1轮放松时间,无差异阈值变化对第1轮放松的CPU响应时间影响不大,因为不同无差异阈值的初始数据集大小都是相同的,处理相同数据集规模的时间差异不大. 而算法总运行时间随着阈值增大而减小,因为无差异阈值增大后,放松支配时会删减更多被支配的元组.
5. 总 结
本文针对现实生活中道路网多用户场景的偏好Top-k Skyline 查询问题,进行深入分析与研究. 作为道路网上单用户偏好Skyline查询问题的补充,提出了一种基于道路网环境下多用户偏好Top-k Skyline查询方法. 该方法利用剪枝规则和索引减少了距离计算开销,并利用用户群权重偏好次序进行放松支配,使结果集可控. 实验结果表明,本文方法能有效解决道路网多用户偏好查询问题,返回的结果集可以满足多用户偏好与权重需求,可以提供有效参考价值. 下一步研究重点主要集中在对多查询用户移动情况下偏好 Top-k Skyline 查询问题的处理.
作者贡献声明:李松提出了方法思路和技术方案;宾婷亮和郝晓红负责算法优化、完成部分实验并撰写论文;张丽平完成部分实验;郝忠孝提出指导意见并修改论文.
-
表 1 实验平台配置信息
Table 1 Configuration Information of Experiment Platform
项目 配置 CPU Intel® Xeon® Silver 4314 ×2 Memory Samsung 32 GB ×6 SSD Intel Optane P5800X OS Ubuntu22.04,Linux5.15.0 GPU NVIDIA Tesla A30 表 2 测试用数据集
Table 2 Datasets for Test
数据集 嵌入表数 样本数×108 ID数×108 模型大小/ GB Avazu 22 0.4 0.5 5.8 Criteo-Kaggle 26 0.5 0.3 4.1 Criteo-TB 26 44 9 461 -
[1] 维基百科. 新浪微博 [EB/OL]. [2023-03-11].https://zh.wikipedia.org/wiki/%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A Wikipedia. Sina Weibo [EB/OL]. [2023-03-11].https://zh.wikipedia.org/wiki/%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A (in Chinese)
[2] Xie Minhui, Ren Kai, Lu Youyou, et al. Kraken: Memory-efficient continual learning for large-scale real-time recommendations [C/OL] // Proc of Int Conf for High Performance Computing, Networking, Storage and Analysis. Piscataway, NJ: IEEE, 2020[2023-03-11].https://ieeexplore.ieee.org/document/9355295
[3] Gupta U, Wu C J, Wang Xiaodong, et al. The architectural implications of Facebook’s DNN-based personalized recommendation[C] // Proc of the 26th Int Symp on High Performance Computer Architecture (HPCA). Piscataway, NJ: IEEE, 2020: 488−501
[4] Naumov M, Mudigere D, Shi H J M, et al. Deep learning recommendation model for personalization and recommendation systems[J]. arXiv preprint, arXiv: 1906. 00091, 2019
[5] Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems[C] // Proc of the 1st Workshop on Deep Learning for Recommender Systems. New York: ACM, 2016: 7−10
[6] Shan Ying, Hoens T R, Jiao Jian, et al. Deep crossing: Web-scale modeling without manually crafted combinatorial features[C] // Proc of the 22nd ACM SIGKDD Int Conf on Knowledge Discovery and Data Mining. New York: ACM, 2016: 255−262
[7] Zhao Weijie, Xie Deping, Jia Ronglai, et al. Distributed hierarchical GPU parameter server for massive scale deep learning ads systems [C/OL] // Proc of the 3rd Conf on Machine Learning and Systems. 2020: 412-428[2023-03-11].https://proceedings.mlsys.org/paper_files/paper/2020/hash/6e426f4c16c6677a605375ae2e4877d5-Abstract.html
[8] Kurniawan D H, Wang Ruipu, Zulkifli K S, et al. EVSTORE: Storage and caching capabilities for scaling embedding tables in deep recommendation systems [C] // Proc of the 28th ACM Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2023: 281–294
[9] Xie Minhui, Lu Youyou, Wang Qing, et al. PetPS: Supporting huge embedding models with persistent memory[C] // Proc of the 49th Int Conf on Very Large Data Bases. New York: ACM, 2023: 1013−1022
[10] Eisenman A, Naumov M, Gardner D, et al. Bandana: Using non-volatile memory for storing deep learning models [C/OL] // Proc of the 2nd Conf on Machine Learning and Systems. 2019: 40−52[2023-03-11].https://proceedings.mlsys.org/paper_files/paper/2019/hash/d59a1dc497cf2773637256f50f492723-Abstract.html
[11] Wei Yingcan, Langer M, Yu Fan, et al. A GPU-specialized inference parameter server for large-scale deep recommendation models[C] // Proc of the 16th ACM Conf on Recommender Systems. New York: ACM, 2022: 408−419
[12] NVIDIA. Virtual memory management [EB/OL]. [2023-03-11].https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__VA.html
[13] Intel. Storage performance development kit [EB/OL]. [2023-03-11].https://spdk.io
[14] 刘知远,孙茂松,林衍凯,等. 知识表示学习研究进展[J]. 计算机研究与发展,2016,53(2):247−261 Liu Zhiyuan, Sun Maosong, Lin Yankai, et al. Knowledge representation learning: A review[J]. Journal of Computer Research and Development, 2016, 53(2): 247−261 (in Chinese)
[15] Guo Huifeng, Tang Ruiming, Ye Yunming, et al. DeepFM: A factorization-machine based neural network for CTR prediction[J]. arXiv preprint, arXiv: 1703. 04247, 2017
[16] Wang Ruoxi, Fu Bin, Fu Gang, et al. Deep & cross network for ad click predictions [C/OL] // Proc of the 8th Int Workshop on Data Mining for Online Advertising. New York: ACM, 2017[2023-03-11].https://dl.acm.org/doi/10.1145/3124749.3124754
[17] Zhou Guorui, Zhu Xiaoqiang, Song Chenru, et al. Deep interest network for click-through rate prediction[C] // Proc of the 24th ACM SIGKDD Int Conf on Knowledge Discovery & Data Mining. New York: ACM, 2018: 1059−1068
[18] Zhou Guorui, Mou Na, Fan Ying, et al. Deep interest evolution network for click-through rate prediction[C] // Proc of the 32nd AAAI Conf on Artificial Intelligence. Piscataway, NJ: IEEE, 2019: 5941−5948
[19] Jiang Wenqi, He Zhenhao, Zhang Shuai, et al. FleetRec: Large-scale recommendation inference on hybrid GPU-FPGA clusters[C] // Proc of the 27th ACM SIGKDD Conf on Knowledge Discovery & Data Mining. New York: ACM, 2021: 3097−3105
[20] Lian Xiangru, Yuan Binhang, Zhu Xuefeng, et al. Persia: A hybrid system scaling deep learning based recommenders up to 100 trillion parameters[J]. arXiv preprint, arXiv: 2111. 05897, 2021
[21] Ardestani E K, Kim C, Lee S J, et al. Supporting massive DLRM inference through software defined memory[C] // Proc of the 42nd IEEE Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2022: 302−312
[22] Wan Hu, Sun Xuan, Cui Yufei, et al. FlashEmbedding: Storing embedding tables in SSD for large-scale recommender systems[C] // Proc of the 12th ACM SIGOPS Asia-Pacific Workshop on Systems. New York: ACM, 2021: 9−16
[23] Wilkening M, Gupta U, Hsia S, et al. RecSSD: Near data processing for solid state drive based recommendation inference[C] // Proc of the 26th ACM Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2021: 717−729
[24] Zhao M, Agarwal N, Basant A, et al. Understanding data storage and ingestion for large-scale deep recommendation model training: Industrial product[C] // Proc of the 49th Annual Int Symp on Computer Architecture. New York: ACM, 2022: 1042−1057
[25] Lee Y, Seo S H, Choi H, et al. MERCI: Efficient embedding reduction on commodity hardware via sub-query memoization[C] // Proc of the 26th ACM Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2021: 302−313
[26] Facebook. Facebook/RocksDB: A library that provides an embeddable, persistent key-value store for fast storage [EB/OL]. [2023-03-11].https://github.com/facebook/rocksdb
[27] Xie Minhui, Lu Youyou, Lin Jiazhen, et al. Fleche: An efficient GPU embedding cache for personalized recommendations[C] // Proc of the 17th European Conf on Computer Systems. New York: ACM, 2022: 402−416
[28] Jiang Wenqi, He Zhenhao, Zhang Shuai, et al. MicroRec: Efficient recommendation inference by hardware and data structure solutions [C/OL]. Proc of the 4th Conf on Machine Learning and Systems. 2021: 845−859[2023-03-11].https://proceedings.mlsys.org/paper_files/paper/2021/hash/9e9a5486cb2f8e44d5b5fedd2a9e5fcd-Abstract.html
[29] Ke Liu, Gupta U, Cho B Y, et al. RecNMP: Accelerating personalized recommendation with near-memory processing[C] // Proc of the 47th ACM/IEEE Annual Int Symp on Computer Architecture (ISCA). Piscataway, NJ: IEEE 2020: 790−803
[30] Kwon Y, Lee Y, Rhu M. TensorDIMM: A practical near-memory processing architecture for embeddings and tensor operations in deep learning[C] // Proc of the 52nd Annual IEEE/ACM Int Symp on Microarchitecture. New York: ACM, 2019: 740−753
[31] Asgari B, Hadidi R, Cao J, et al. FAFNIR: Accelerating sparse gathering by using efficient near-memory intelligent reduction[C] // Proc of the 27th IEEE Int Symp on High-Performance Computer Architecture (HPCA). Piscataway, NJ: IEEE 2021: 908−920
[32] Min S W, Mailthody V S, Qureshi Z, et al. EMOGI: Efficient memory-access for out-of-memory graph-traversal in GPUs[J]. arXiv preprint, arXiv: 2006. 06890, 2020
[33] Min S W, Wu Kun, Huang Sitao, et al. Large graph convolutional network training with GPU-oriented data communication architecture[J]. arXiv preprint, arXiv: 2103. 03330, 2021
[34] Qureshi Z, Mailthody V S, Gelado I, et al. BaM: A case for enabling fine-grain high throughput GPU-orchestrated access to storage[J]. arXiv preprint, arXiv: 2203. 04910, 2022
-
期刊类型引用(12)
1. 徐享希,李炯彬,郭志远. 车联网网络安全挑战与评估技术分析. 质量与认证. 2025(02): 83-86+91 . 百度学术
2. 郭健忠,王灿,谢斌,闵锐. 面向车联网DoS攻击的混合入侵检测系统. 计算机系统应用. 2025(03): 85-93 . 百度学术
3. 赵建斌,杜彦辉. 浅析车联网漏洞挖掘技术. 警察技术. 2025(02): 25-29 . 百度学术
4. 李俊吉,张佳琦,高改梅,杨莉. 基于信誉机制的车联网共识算法. 计算机工程. 2025(04): 217-226 . 百度学术
5. 黄金洲,杭波,王峰,徐德刚. 车联网技术在襄阳智慧交通建设中的应用. 智能城市. 2024(01): 20-23 . 百度学术
6. 李昱. 容许风险与自动驾驶场景中的注意义务. 现代法学. 2024(04): 161-174 . 百度学术
7. 谢勇,胡秋燕,李仁发,谢国琪,肖甫. 基于Uptane的汽车软件在线升级优化框架. 计算机研究与发展. 2024(09): 2145-2155 . 本站查看
8. 洪榛,冯王磊,温震宇,吴迪,李涛涛,伍一鸣,王聪,纪守领. 基于梯度回溯的联邦学习搭便车攻击检测. 计算机研究与发展. 2024(09): 2185-2198 . 本站查看
9. 李可,马赛,戴朋林,任婧,范平志. 基于多目标深度强化学习的车车通信无线资源分配算法. 计算机研究与发展. 2024(09): 2229-2245 . 本站查看
10. 顾芳铭,况博裕,许亚倩,付安民. 面向自动驾驶感知系统的对抗样本攻击研究综述. 信息安全研究. 2024(09): 786-794 . 百度学术
11. 刘雪娇,赵祥,夏莹杰,曹天聪. 空地协同场景下具有隐私保护的高效异构认证方案. 浙江大学学报(工学版). 2024(10): 1981-1991 . 百度学术
12. 权仕鑫,孙溶辰,刘留,孙志国. 车联网融合通信技术的场景仿真与分析. 应用科技. 2024(05): 190-196 . 百度学术
其他类型引用(11)