掌桥专利:专业的专利平台
掌桥专利
首页

一种基于spark的异频时序推荐方法及系统

文献发布时间:2023-06-19 19:27:02


一种基于spark的异频时序推荐方法及系统

技术领域

本发明涉及一种基于spark的异频时序推荐方法及系统,属于推荐方法领域。

背景技术

传统的推荐方法有以下三种:(1)基于内容的推荐,首先抽取表示该项目的项目特征;然后利用用户过去感兴趣以及不感兴趣的项目特征数据学习该用户的偏好特征;最后通过比较用户的偏好特征和候选项目特征为用户推荐一组相关性最大的项目。(2)协同过滤推荐,利用用户或物品间的相似度以及历史行为数据以对目标用户进行推荐。(3)混合推荐,将多种推荐技术进行混合,使相互弥补缺点获得更好的推荐效果。

基于时序数据的推荐方法需要对数据进行逐个分析计算,计算量庞大,时效性较差。由于计算逻辑较为简单,现有方案一般采取单机计算的方式,至多采取多线程或多进程的方法在单主机上进行计算。当数据体量较大时,受限于服务器性能,无法对大体量的数据进行即时推荐。

公开号为CN114677233A的专利《信息推荐方法及装置、存储介质及电子设备》公开了:获取用户的历史时序行为数据集合,基于历史时序行为数据集合中的历史时序行为数据,得到用于表征用户长期稳定的兴趣偏好的用户长期偏好矩阵和用于表征用户时序行为之间的关系的用户行为关系矩阵,并基于历史时序行为数据集合、用户长期偏好矩阵和用户行为关系矩阵,得到用于表征用户真实偏好的用户特征表示,从而基于用户特征表示和每个候选信息的特征表示,计算每个候选信息与用户的相似度,对大于预设阈值的相似度所对应的候选信息进行推荐。

发明内容

为了克服现有技术中存在的问题,本发明设计了一种基于spark的异频时序推荐方法及系统,将时序数据集分发至计算集群进行计算,解决了时序数据推荐时效性的问题。

为了实现上述目的,本发明采用如下技术方案:

技术方案一

一种基于spark的异频时序推荐方法,包括以下步骤:

将时序数据集分发至集群;所述时序数据为环境监测数据;

集群计算时序数据集中两两时序数据之间的相似度;

选取与目标时序数据相似度最高的n个时序数据作为离线推荐结果。

进一步地,还包括:

获取新增时序数据集;

将新增时序数据集分发至集群;

集群计算新增时序数据集中两两时序数据之间的相似度、以及各时序数据的变化速度;

根据相似度和变化速度,选取多个新增时序数据作为在线推荐结果。

进一步地,所述根据相似度和变化速度选取多个时序数据作为在线推荐结果,具体为:

对时序数据的相似度和变化速度进行加权计算,取加权值最大的n个新增时序数据作为在线推荐结果;或,将与目标时序数的相似度作为第一排序依据,变化速度作为第二排序依据,对新增时序数据集进行排序,取前n个新增时序数据作为在线推荐结果。

进一步地,所述计算时序数据的变化速度,具体为:

对时序数据进行均值化变换;计算时序数据的变化量与时间长度的比值绝对值为变化速度。

进一步地,还包括:

集群中各计算节点计算接收到的时序数据的数量、平均值、方差并保存至分布式存储系统;各计算节点计算接收到的时序数据的P值、长期趋势、变化速度并保存至数据库。

进一步地,还包括,计算节点对收到的时序数据的采样频率进行统一化处理:

通过旋转门压缩算法对时序数据进行压缩,得到若干变化点和时间戳;预设频率,对所述变化点进行上采样;对上采样结果进行标准化处理。

技术方案二

一种基于spark的异频时序推荐系统,包括:

主节点,所述主节点用于将时序数据集分发至若干计算节点;

若干计算节点,所述计算节点用于计算时序数据集中两两时序数据之间的相似度;

推荐模块,所述推荐模块用于选取与目标时序数据相似度最高的n个时序数据作为推荐结果。

进一步地,还包括:

主节点获取新增时序数据集;

主节点将新增时序数据集分发至若干计算节点;

若干计算节点计算新增时序数据集中两两时序数据之间的相似度、以及各时序数据的变化速度;

推荐模块根据相似度和变化速度,选取多个新增时序数据作为在线推荐结果。

进一步地,所述根据相似度和变化速度选取多个时序数据作为在线推荐结果,具体为:

对时序数据的相似度和变化速度进行加权计算,取加权值最大的n个新增时序数据作为在线推荐结果;或,将与目标时序数的相似度作为第一排序依据,变化速度作为第二排序依据,对新增时序数据集进行排序,取前n个新增时序数据作为在线推荐结果。

进一步地,还包括:

各计算节点计算接收到的时序数据的数量、平均值、方差并保存至分布式存储系统;各计算节点计算接收到的时序数据的P值、长期趋势、变化速度并保存至数据库。

进一步地,还包括,计算节点对收到的时序数据的采样频率进行统一化处理:

通过旋转门压缩算法对时序数据进行压缩,得到若干变化点和时间戳;预设频率,对所述变化点进行上采样;对上采样结果进行标准化处理。

与现有技术相比本发明有以下特点和有益效果:

本发明将时序数据集分发至计算集群进行计算,解决了时序数据推荐时效性的问题的同时,即时完成对时序数据的长期/短期趋势及变化速度计算。

本发明结合历史数据进行增量判断,不需要全量加载数据进行增量推荐和数据分析,进一步提高推荐时效性。

现有技术根据数据之间的相似度进行推荐,推荐方式单一。本申请综合对比时序数据的相似性和短期如日、周、月内等数据的变化速度进行推荐,增强了推荐效果。

本发明对异频的时序数据统一采样频率,在后续的相似度及趋势计算中,可对不同类型、采样频率之间的数据进行横向比较。

附图说明

图1是本发明流程图。

具体实施方式

下面结合实施例对本发明进行更详细的描述。

实施例一

Spark集群中包括master节点与worker节点,其中master节点将任务拆分为可执行的任务集合tasks并发至各worker节点进行执行。worker节点中存在一个或多个executor进程,worker节点拥有一个线程池,每个线程负责一个具体的task任务。Spark集群计算完成的结果,保存在集群之外的数据库中。

离线推荐计算流程:

1、master节点利用sparkSQL全量读取若干异频的时序数据,并分发到所有参与计算的worker节点。所述异频的时序数据包括不限于环境、水文、气象监测数据,服务器运维监控数据,金融时序数据等。

2、worker节点利用MD5算法对接收到的时序数据设置唯一ID,并计算接收到的时序数据的数量、平均值、方差;将计算结果作为自定义的Spark模型参数保存至外部存储系统(如分布式文件系统hdfs)。

3、考虑到此时的时序数据时间跨度较长,可能具有季节性特征。worker节点通过季节性肯达尔法计算接收到的时序数据的长期趋势以及P值(P-Value,用于判断长期趋势/短期趋势计算中的H0假设是否成立),计算时序数据的变化速度。

4、worker节点对接收到的时序数据的采样频率进行统一化处理。处理完成后,worker节点以时序数据、时序数据ID、变化速度、P值、长期趋势的数据格式提交数据处理结果至数据库。数据库中将来自同一计算节点的时序数据ID分为一类并设置该类别与计算节点的对应关系。

5、master节点选取一个时序数据作为目标时序数据,其他时序数据作为对比数据,生成若干对比组合。移除对比组合中的重复组合后,将若干对比组合提交至数据库中。master节点再将若干对比组合按executor数量分发到集群上所有节点。在分发过程中,master节点根据所述对应关系,将时序数据发送至对应计算节点,使得时序数据ID对应数据尽可能的存在同一个节点,减少节点之间的数据交换。

6、worker节点计算接收到的各对比组合的皮尔逊相关系数、并通过DTW算法计算各对比组合的轨迹相似度。并以目标序列ID、对比序列ID、皮尔逊相关系数、轨迹相似度、数据采样时间的格式提交至数据库。

7、推荐系统从数据库中选取前N个与目标时序数据相似度最高的时序数据作为离线推荐结果推荐至用户。本实施例中,相似度取轨迹相似度和皮尔逊相关系数的平均值。

在线推荐流程:

1、从外部存储系统加载此前保存的Spark模型到Spark计算集群;从数据库提取所有时序数据的ID及数据采样时间;

2、获取新增时序数据;若新增时序数据数量达到数量阈值,则消费数据,具体如下:

各计算节点根据新增时序数据,更新Spark模型参数,具体为时序数据的数量、平均值、方差;更新后计算新增时序数据的短期趋势、P值、变化速度。短期趋势计算采用肯达尔检验法进行提取,变化速度则需先对时序数据进行均值化变换,消除局部变化带来的误判影响后,再以时序数据的变化量与时间长度的比值绝对值作为其变化速度。以时序数据ID、P值、变化速度、短期趋势的格式写入数据库;

各计算节点计算新增时序数据之间的轨迹相似度与皮尔逊相关系数,以目标序列ID、对比序列ID、皮尔逊相关系数、轨迹相似度、数据采样时间的格式,存储于数据库中。

3、根据数据采样时间,从数据库中选取前N个与目标时序数据相似度最高的新增时序数据作为在线推荐结果推荐至用户。

4、根据用户需求,定期进行离线计算,更新长期趋势,修正Spark模型参数。

实施例二

进一步地,对时序数据的相似度和变化速度进行加权计算,取加权值最大的n个新增时序数据作为短期相似趋势推荐至用户。

或,将与目标时序数的相似度作为第一排序依据,变化速度作为第二排序依据,对新增时序数据集进行递减排序,取前n个新增时序数据作为短期相似趋势推荐至用户。如时序数据A、时序数据B与目标时序数据的相似度一致,时序数据B的变化速度大于时序数据A,则B的排序在A之前。

实施例三

利用季节性肯达尔法或肯达尔法计算长期趋势,季节性肯达尔法是一种在肯达尔法上的改进方法,其主要对部分存在季节特征的数据进行处理。

季节性肯达尔检验法的零假设H

式中,X

对第i月:设第i月内的时序数据中观测数据值个数为n。比较历年各月数据,如果后面的值高于前面的值,记为正差值,否则记为负差值。由此得正差值个数p

E(S

式中,n为系列项数。

对前ρ月:

其中m

季节性肯达尔检验法的统计量为

显著性水平α的临界值为0.1和0.01。当α≤0.01时,肯达尔检验具有高度显著性;当0.01≤α≤0.1时,肯达尔检验具有显著性。当a计算结果满足上两条情况下,若t>0时,说明具有显著性上升趋势;当t<0时,说明具有显著性下降趋势;当t=0时,说明无明显变化趋势。

利用肯达尔法计算短期趋势:

肯达尔法不需要待检验的时序数据遵从一定的分布,并且一些异常值也不会影响趋势经验的结果。在肯达尔法检验中,原假设H

其中,X

当n≥8时,统计量S大致的服从正态分布,在不考虑序列存在等值数据点的情况下,其均值E(S)=0,方差Var(S)=n(n-1)(2n+5)/18。标准化后的检验统计量Z计算如下:

在双边趋势检验中,对于给定的置信水平(显著性水平)α,若|Z|≥Z1-α/2,则原假设H

实施例四

对时序数据的采样频率进行统一化处理,具体步骤如下:

(1)使用旋转门压缩算法(SDT)对时序数据进行压缩,从而保留时序数据的变化点及时间戳。

(2)按预设频率,对所述变化点进行上采样;如预设频率为小时,使用插值法,将变化点插值到时间戳上,从而统一时序数据的采样频率。

(3)对上采样结果进行标准化处理,移除量纲影响,结果值映射到[0-1]之间。

需要说明的是,上述提出的一种基于spark的异频时序对象的比对系统,还用于实现如上述图1所示的一种基于spark的异频时序推荐方法中各实施例对应的方法步骤,本申请在此不重复叙述。

需要说明的是,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以是两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件功能单元/模块的形式实现。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解应当理解,可以以硬件、软件、固件、中间件、代码或其任何恰当组合来实现这里描述的实施例。对于硬件实现,处理器可以在一个或多个下列单元中实现:专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、设计用于实现这里所描述功能的其他电子单元或其组合。对于软件实现,实施例的部分或全部流程可以通过计算机程序来指令相关的硬件来完成。实现时,可以将上述程序存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读介质可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当分析,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

相关技术
  • 一种基于时序决策模型的推荐方法
  • 一种基于Spark的旅游兴趣推荐系统及推荐方法
  • 一种基于Spark的心血管病药物推荐方法及系统
技术分类

06120115918303