CN115202748A - 数据读取方法、装置及电子设备 - Google Patents
数据读取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115202748A CN115202748A CN202210653784.2A CN202210653784A CN115202748A CN 115202748 A CN115202748 A CN 115202748A CN 202210653784 A CN202210653784 A CN 202210653784A CN 115202748 A CN115202748 A CN 115202748A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- reading
- page
- target application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种数据读取方法,所述方法包括:获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,页面截图是对目标应用的显示页面进行截图得到的;基于多张页面截图和用户行为数据,确定目标应用在下一次要读取的预读数据;从第一服务器中下载预读数据,并将预读数据存储至本地,以使目标应用的下一次读请求命中预读数据时,从本地读取预读数据;通过本申请提供的数据读取方法,可以提高目标应用的数据读取效率、缩短每次目标应用进行数据读取的时长。
Description
技术领域
本申请涉及通信处理技术领域,特别是涉及一种数据读取方法、装置及电子设备。
背景技术
随着各类应用的普及,用户一般会在终端下载各类应用以进行使用,例如,在手机上会安装很多APP。
然而,用户在使用各类应用时,一些情况下,应用读取数据时会存在读取时间较长的问题,导致用户在页面中要等待很长的时间才能看到自己想要的内容。例如,在用户下载了一款游戏APP后,用户玩游戏的过程中经常需要等待较长时间才能进入一个游戏场景、或使用一些游戏道具和技能等,因此经常遇到游戏卡顿的问题。
发明内容
鉴于上述问题,提出了本申请实施例,以便克服上述问题或者至少部分地解决上述问题。
为了解决上述问题,本申请的第一方面,提供一种数据读取方法,所述方法包括:
获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,所述页面截图是对所述目标应用的显示页面进行截图得到的;
基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据;
从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
可选地,所述用户行为数据包括多条读数据序列,所述方法还包括:
基于多张所述页面截图各自的时间以及多条所述读数据序列各自的时间,对多张所述页面截图和多条所述读数据序列进行对齐;
所述用户行为数据中包括多条读数据序列,基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
基于对齐的每张页面截图和对应的读数据序列,确定每张所述页面截图分别与多条所述读数据序列之间的注意力得分;
基于所述注意力得分,确定所述目标应用在下一次要读取的预读数据。
可选地,基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
将多个所述页面截图和所述用户行为数据输入至预测模型,得到所述目标应用在下一次要读取的预读数据;
所述预测模型是以多个联合训练样本为输入、以每个联合训练样本对应的实际读数据样本为真值,对目标神经网络进行训练得到的;
其中,每个所述联合训练样本包括多张页面截图样本和用户行为数据样本,所述实际读数据样本为所述目标应用所真实读取的数据。
可选地,所述方法还包括:
在所述目标应用第i次读数据时,获取第i次实际读取的实际读数据序列,以及第i次对应的预读数据序列;其中,i为大于等于1的整数;
在所述实际读数据序列与所述预读数据序列之间的差异超过目标差异的情况下,获取确定所述第i次对应的预读数据序列时,所依据的目标用户行为数据和目标页面截图;
基于所述目标用户行为数据、所述目标页面截图和所述实际读数据序列,对所述预测模型进行更新。
可选地,所述方法还包括:
将所述第i次对应的目标用户行为数据和目标页面截图作为增量样本,加入到增量样本池;
基于所述目标用户行为数据、所述目标页面截图和所述实际读数据序列,对所述预测模型进行更新,包括:
周期性从所述增量样本池中获取当前周期内新增的增量样本;
以所述当前周期内新增的增量样本为输入、以对应的实际读数据序列为真值,对所述预测模型进行更新。
可选地,所述用户行为数据样本包括多个读数据序列样本,所述预测模型是通过以下方式训练得到的:
获取多个所述页面截图样本各自对应的第一特征向量以及所述多个读数据序列样本各自对应的第二特征向量;
将所述第一特征向量和所述第二特征向量进行拼接后,得到联合向量;
基于所述联合向量,获得所述目标神经网络输出的预读数据序列;
基于所述预读数据序列和所述实际读数据样本,对所述目标神经网络的参数进行多次更新,得到所述预测模型。
可选地,所述方法还包括:
获取运行所述目标应用的终端的当前性能配置参数;
基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
在所述当前性能配置参数满足目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述终端中配置的所述预测模型,以得到所述下一次要读取的预读数据;
在所述当前性能配置参数不满足所述目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述第二服务器,以得到所述下一次要读取的预读数据。
可选地,所述方法包括:
预先在未安装所述目标应用时,获取所述目标应用的启动运行包和启动镜像包;其中,所述启动镜像包包括所述目标应用的启动数据;
通过所述启动运行包启动所述目标应用后,响应于所述目标应用的读请求,从所述启动镜像包和/或所述第一服务器中读取所述读请求对应的数据;其中,所述第一服务器中包括所述目标应用的全部原始数据。
可选地,本申请实施例还公开了一种数据读取装置,所述装置包括:
数据获取模块,用于获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,所述页面截图是对所述目标应用的显示页面进行截图得到的;
数据预测模块,用于基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据;
下载模块,用于从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如第一方面所述的数据读取方法。
本申请实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本申请第一方面所述的数据读取方法。
本申请实施例还公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面所述的数据读取方法。
采用本申请实施例的数据读取方法,可以获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;并基于多张页面截图和用户行为数据,确定目标应用在下一次要读取的预读数据;从第一服务器中下载预读数据,并将预读数据存储至本地缓存,以使目标应用的下一次读请求命中预读数据时,从本地缓存读取预读数据。
采用本申请实施例的数据读取方法,具有以下方面的优点:
一方面,由于基于页面截图和用户行为数据得到了用户下一次要读取的预读数据,并提前从第一服务器中下载预读数据后存储到终端本地,从而使得目标应用在下一次读数据时,可以直接从本地中读数据,相比于从第一服务器下载所需数据,从本地读数据会大大缩短读取路径,由此大大提高了目标应用的数据读取效率,缩短数据读取时长,避免了目标应用在使用过程中卡顿的问题。
另一方面,由于页面截图是对目标应用的显示页面进行截图得到的,用户行为数据可以反映用户使用目标应用时进行的读行为,而显示页面一般是用户当前所观看的界面,其与用户的读行为存在关联性。例如,在游戏APP中,用户在一个游戏场景页面中上下左右滑动时,可以通过显示页面的截图记录用户在游戏场景中的观看行为,而用户行为数据一般是进行的场景切换、道具购买置换等行为,其与在游戏场景中的观看行为具有紧密的关联关系。因此,在基于页面截图和用户行为数据预测用户下一次要读取的预读数据时,可以建立用户的页面观看行为和数据读行为之间的关联,基于这一关联可以准确预测用户下一次要读取的数据,从而提高了下一次读请求命中预读数据的概率,进而保证每次读数据的快速读取。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的一种数据读取方法所运行的软硬件环境图;
图2是本申请实施例中的一种数据读取方法的步骤流程图;
图3是本申请实施例中的确定预读数据的步骤流程图;
图4是本申请实施例中的模型训练的整体流程示意图;
图5是本申请实施例中对预测模型进行自我迭代更新的流程示意图;
图6a是本申请实施例中服务器模式下的软硬件环境图;
图6b是本申请实施例中客户端模式下的软硬件环境图;
图7是本申请实施例中的一种数据读取装置的结构框架示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例可以应用于终端的各种操作系统中,所述终端包括PC端和移动终端,操作系统包括PC端的操作系统如Windows,Linux,Unix,以及虚拟机仿真系统等,还包括移动终端的操作系统如安卓、IOS等。
本发明实施例中的目标应用可以是指软件安装包和数据包较大的应用程序,如3D游戏、PS等应用程序;其中,目标应用可以是PC端的应用程序,也可以是移动终端的应用程序(Application,APP);下面以移动终端为例,对本发明实施例的方法和系统进行说明。
相关技术中,用户在使用各类应用时,一些情况下,应用读取数据时会存在读取时间较长的问题。有鉴于此,本申请为解决上述技术问题,提出了一种数据预读方案,具体而言,可以对目标应用在当前时刻之前的显示页面进行截图得到多张页面截图,之后,基于多张页面截图和当前时刻之前的用户行为数据,确定目标应用在下一次要读取的预读数据;以提前从第一服务器中下载预读数据并存储到终端本地,从而缩短目标应用下一次读取数据的时长,提高了数据读取效率。
在此基础上,在一些实施场景中,针对数据包较大的目标应用,又提出了更进一步的提高目标应用的使用流畅性的改进方案,具体而言,该改进方案可以加快目标应用的下载、安装和启动速度,并保证目标应用的运行,具体如下所述:
对数据包较大的目标应用,下载目标应用和安装目标应用的时长都较长,而使用目标应用时,所需带宽资源较大、对终端的性能要求较高,这样对于数据包较大的目标应用,用户初次使用时的等待时间非常长,而使用过程中对终端的性能、网络带宽资源的要求也较高。
有鉴于此,提出了一种可以实现目标应用边下载边使用的改进方案,具体地,可以预先在未安装目标应用时,获取目标应用的启动运行包和启动镜像包;通过启动运行包启动目标应用后,响应于目标应用的读请求,从启动镜像包和/或第一服务器中读取读请求对应的数据;其中,第一服务器中包括目标应用的全部原始数据。
其中,启动运行包是用于启动目标应用的,启动运行包中包含启动目标应用的最基本的文件,在终端利用启动运行包运行目标应用时,启动运行包完成目标应用在安装过程中基本的组件安装,以及配置目标应用与终端的交互动作;因此,启动运行包中所含的数据量非常小,使得终端下载启动运行包的效率大大提高。
其中,启动镜像包包括目标应用的启动数据,终端在获取启动运行包的同时,获取该启动镜像包,则当目标应用启动时,可以直接在本地获取目标应用启动所需的数据,这大大减少了目标应用启动的时间。
当目标应用运行过程中,需要读数据时,则可以从启动镜像包和/或第一服务器中获取读请求对应的数据;其中,在启动镜像包中包含读请求对应的数据时,则可以直接从启动镜像包中读取出数据;在启动镜像包中不包含读请求对应的数据时,则可以从第一服务器中读取对应的数据;在启动镜像包中包含读请求对应的部分数据时,则可以从第一服务器和启动镜像包中共同读取出所需的全部数据。
采用此种实施方式时,目标应用的供应商可以将目标应用的原始数据按照其在目标应用中所起的功能,将目标应用的原始数据制作为启动运行包、启动镜像包,原始数据中除启动运行包外的数据打包为原始镜像包,并可以将启动运行包、启动镜像包、原始镜像包上传至第一服务器,从而用户在下载并安装目标应用时,可以先下载启动运行包、启动镜像包,由于启动运行包、启动镜像包的数据量小,下载速度快,从而可以帮助用户在终端上很快实现目标应用的启动,在目标应用启动后,可以从启动镜像包和/或第一服务器(原始镜像包)中获取读请求所需的数据,从而帮助目标应用的正常运行。
由此,可以提高目标应用的运行速度,使得用户尽快使用目标应用,例如,在游戏场景中,面临一款数据包极大的游戏APP,用户在点击下载游戏APP时,可以实现游戏APP的快速启动,当用户开始玩游戏APP时,在玩游戏的过程中,可以通过已在本地的启动镜像包和在第一服务器中的原始镜像包支持游戏过程中的数据获取,从而在不影响用户玩游戏的情况下,还可以大大降低用户的等待时长。
其中,在将上述所述的数据预读方案与该改进方案进行结合使用时,一方面,不仅可以帮助用户快速启动和快速使用目标应用,在使用过程中,由于采取了数据预读机制,从而提高了数据读取速度,显示页面的显示流畅性高。
另一方面,由于在终端中存储的是目标应用的启动运行包和启动镜像包,以及目标应用使用过程中才从第一服务器下载对应的预读数据,相比于将目标应用的全部数据都存储到终端,可以降低对终端的存储资源的占用,保证终端的性能。
再一方面,由于提前从第一服务器读取出预读数据存储至终端本地,则随着目标应用的使用,终端本地存储的数据会愈加丰富,则直接从本地读取数据的概率越高,从而随着目标应用的深入使用,响应速度也越来越快,用户使用流畅性更高。
下面,对本申请的数据读取方法所应用的软硬件环境、如何进行数据预读进行充分说明。
参照图1所示,示出了本申请的一种软硬件环境示意图,如图1所示,包括终端、第一服务器和第二服务器,其中,第一服务器上存储有目标应用运行所需的全部原始数据(原始镜像包),第二服务器用于为目标应用确定下一次要读取的预读数据。其中,在终端上配置有与目标应用对应的预读模块、文件管理模块和应用程序截图模块。
其中,文件管理模块与目标应用之间具有数据通路,可以获取目标应用的用户行为数据;应用程序截图模块用于获取显示页面的页面截图,预读模块分别与文件管理模块和应用程序截图模块具有各自的数据通路,可以接收文件管理模块发送的用户行为数据以及应用程序截图模块发送的多张页面截图。
在一种实施方式中,文件管理模块将用户行为数据发送给预读模块,应用程序截图模块将多张页面截图也发送给预读模块,预读模块可以将用户行为数据和多张页面截图打包后发送给第二服务器,由第二服务器基于用户行为数据和页面截图确定出目标应用下一次要读的预读数据,之后将预读数据的标识反馈给预读模块;接着,预读模块从第一服务器中下载预读数据。
其中,预读模块可以通过多个接口与第一服务器通信连接,以依次通过多个接口从第一服务器中获取确定出的预读数据;其中,多个接口可以包括内容分发网络CDN接口、点对点传输P2P接口和源站接口。
其中,文件管理模块可以是在通过启动运行包启动目标应用时所初始化的,应用程序截图模块获取页面截图的过程可以如下所述:
一种方式是;直接对目标应用的显示页面按照预设频率进行截图,从而得到多张页面截图。
另一种方式是:利用终端的操作系统配置的截图抓取组件进行显示页面的截图,之后,通过与终端的显存之间的调用接口,获取显存的显示缓冲区中被截图后得到的图像帧,将获取到的图像帧作为页面截图。
其中,以3D游戏为例,应用程序截图模块可以调用Nvidia Game Stream接口从GPU显存与当前3D游戏对应的显示缓冲区中抽取相关图像帧,如游戏运行的帧率一般为60-120fps,则可以按一定采样间隔抽取图像帧,从而得到多张页面截图。
需要说明的是,本申请可以对显示页面的截图进行预处理,从而得到所需的页面截图,预处理可以包括对截图的方向、尺寸的调整、以及标记上该截图的时间戳。在调整截图的方向时,可以将截图的方向调整为正向,在调整截图的尺寸时,可以将截图压缩到目标尺寸。
当然,在又一些实施例中,对显示页面的截图进行预处理还可以包括:对截图中不属于目标应用的显示页面的边缘进行剪裁,此种情况适合截图机制是全屏幕截图的情况,如一些操作系统配置的截图软件是对显示屏的显示画面进行全屏截图,如此,截图中不可避免地会包括除目标应用的显示页面之外的其他画面。
例如,在游戏APP中,若用户未全屏显示游戏页面,则一些截图机制下,会对终端的全屏截图,则截图中会包括操作系统的任务栏和桌面上未被游戏页面覆盖的画面。
相应地,为避免截图中包含除目标应用的显示页面外的画面,可以截取截图中属于目标应用的显示页面的图像区域,以去除截图中不属于目标应用的显示页面的边缘画面,进而将该截取出的图像区域作为本申请所述的页面截图。
下面,对本申请的数据读取方法进行详细介绍。
参照图2所示,示出了一种实施例中数据读取方法的步骤流程图,如图2所示,具体可以包括以下步骤:
步骤S201:获取目标应用在当前时刻之前的多张页面截图以及用户行为数据。
其中,页面截图是对目标应用的显示页面进行截图得到的。
本申请实施例中,可以对目标应用的显示页面进行截图,具体地,可以每隔预设时间,如100-200ms,对显示页面进行截图一次,从而得到页面截图。其中,如何对显示页面截图得到页面截图的过程可以参照上述所述,在此不再赘述。
其中,多张页面截图可以是在当前时刻之前的预设时段内,对目标应用的显示页面进行多次截图得到的,相应地,用户行为数据也可以是在当前时刻之前的预设时段内的行为数据。预设时段可以设置为10s。
其中,用户行为数据可以记录用户在目标应用中的操作行为,包括但不限于数据读取日志,数据读取日志用于记录在预设时段内每次所读取的数据、以及读取每个数据的读取时间,具体而言,数据读取日志可以包括多条数据读取记录,每条数据读取记录可以包括每次所读取的数据的标识、以及每次读取的读取时间,读取时间可以是读取时刻对应的时间戳。
相应地,在每张页面截图中也可以包括页面截图对应的时间戳,该时间戳可以表征截图显示页面时的时刻,例如,在12点12分34秒100毫秒对显示页面进行了一次截图,则可以将截图的时刻对应的时间戳记录在该次截图得到的页面截图中。
当然,由于用户行为数据不仅仅包括数据读取记录,还可以包括用户在页面之间的跳转行为数据、数据写入行为数据等,而跳转行为数据可以反映用户在何时进行了页面跳转、跳转前后的显示页面,由于显示页面一般对应一个后台的资源数据(资源数据经过处理后变为可显示的页面数据,从而构成显示页面),再结合页面截图对应的时间戳,可以知道用户在各个显示页面的停留时长,从而也可以得到用户在预设时段内所感兴趣的资源数据,进而帮助预测用户下一次所要读取的数据。
步骤S202:基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据。
本实施例中,通过读取时刻对应的时间戳和截图时刻对应的时间戳,可以将数据读取日志中的每条数据读取记录与页面截图进行对照,从而得到每个页面截图与数据读取记录之间的关联关系,通过这一关联关系,可以建立起用户在目标应用中所观看的显示页面,与用户在观看某个显示页面时所进行的数据读行为之间的关联。
例如,以游戏APP为例,多个页面截图可以表征用户在游戏中观看了哪些游戏场景,数据读取记录可以表征用户读取了哪些数据,而关联关系则可以表征用户在观看游戏场景的过程中读取了哪些数据。
当然,在一些情况下,一个页面截图可能并没有可对应的数据读取记录,则此种情况下,可以设置该页面截图对应固定标识的数据读取记录,如对应标识为“00-00-00”的数据记录,以使每个页面截图均对应有数据读取记录,从而使得关联关系被补齐。
这样,基于页面截图和数据读取记录之间的关联关系,可以确定用户在显示页面中有没有读取数据、以及读取了哪些数据,同时,依据页面截图和数据读取记录的时间先后顺序,又可以确定显示页面之间的转移轨迹以及数据读取记录之间的转移轨迹,由此,可以获得显示页面的概率转移矩阵,以及用户行为数据的概率转移矩阵,这两个概率转移矩阵可以反映出用户在目标应用中进行的读行为的规律,从而基于这两个概率转移矩阵,可以预测用户在下一次要读取的预读数据。具体可以理解为:基于页面截图以及行为数据,可以获取用户在预设时段内所感兴趣的资源数据,这样,可以结合用户感兴趣的资源数据,预测用户下一次要读取的预读数据。
步骤S203:从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
本实施例中,确定出的预读数据可以表示为预读数据的标识,如预读数据的ID,从而可以基于这一预读数据的标识,从第一服务器中下载预读数据,并将预读数据存储至本地,例如,存储至终端的外存中,当然,也可以存储至终端的内存中。这样,在目标应用的下一次读请求命中预读数据时,便可以直接从本地读取预读数据,从而大大缩短数据读取路径,实现了数据的快速读取。
当然,若预读数据中仅包括下一次读请求所需的部分数据,则针对下一次读请求中未命中预读数据的剩余数据,可以从第一服务器中下载,之后,将从第一服务器中下载的剩余数据和预读数据中被命中的数据,封装为数据包反馈给目标应用。此种情况下,由于从第一服务器中只实时下载了部分数据,因此,待实时下载的数据量相对减小,读数据的实时效率也能得到提升。
当然,在一些实施方式中,可以将从第一服务器中下载预读数据的时长限制在目标时长内,若目标时长内未下载到预读数据,则不再进行预读数据的下载,一般而言,目标时长可以基于用户每相邻两次读取数据的间隔时长确定,如可以是每相邻两次读取数据的平均间隔时长。这样,可以避免在未成功读取到预读数据的情况下,目标应用发起了下一次读请求时,预读和实际读取之间的冲突,从而可以单独响应目标应用的下一次读请求,保证目标应用的数据读取效率。
采用本申请实施例的技术方案,一方面,由于提前从第一服务器中获取预读数据存储到终端本地中,从而使得目标应用在下一次读数据时,可以直接从终端本地中读数据,相比于从第一服务器下载所需数据,从本地读数据会大大缩短读取路径,由此大大缩短数据读取时长,提高了目标应用的数据读取效率,避免了目标应用在使用过程中卡顿的问题,提高了目标应用的使用流畅性。另一方面,基于页面截图和用户行为数据得到了用户下一次要读取的预读数据,可以建立用户的页面观看行为和数据读取行为之间的关联,基于这一关联可以准确预测用户下一次要读取的数据,从而提高了下一次读请求命中预读数据的概率,进而保证每次读请求均可以被快速响应。
在一种实施方式中,参照图3所示,示出了确定预读数据的步骤流程图,其中,如上所述,用户行为数据可以包括数据读取日志,数据读取日志可以包括多条数据读取记录,由于数据读取记录可以包括所读取的数据的标识,如数据的ID,而每一次读取的数据一般并不仅仅是一个数据,而可能是多个数据,由此,每条数据读取记录表现为一个ID序列,因此,则一条数据读取记录可以称为一条读数据序列,多条数据读取记录则是多条读数据序列。
示例地,在一次数据读取中,需要读取ID为“01”、“02”和“03”的数据,则数据读取记录便表现为“01-02-03”的ID序列。
如上所述,需要确定页面截图与多条读数据序列之间的关联关系,实际中,为使得用户对显示页面的观看行为和数据读取行为进行准确映射,可以先将多张页面截图和多条读数据序列进行对齐,即一张页面截图可以映射一条读数据序列,以将用户观看行为和数据读取行为进行准确映射。
具体地,可以基于多张页面截图各自的时间以及多条读数据序列各自的时间,对多张页面截图和多条读数据序列进行对齐。
具体实施时,对每张页面截图而言,可以依据该页面截图对应的时间戳,将与该时间戳匹配的读数据序列作为与该页面截图对齐的读数据序列。
例如,页面截图1对应的时刻是34秒200毫秒,则可以将读取时刻在34秒200毫秒附近的读数据序列与该页面截图1对齐,其中,读取时刻在34秒200毫秒附近可以理解为是:读取时刻与34秒200毫秒之间的时间差在目标时间差范围内。即,对齐时,与该页面截图对应的时间戳匹配的读数据序列是指:读取时刻对应的时间戳与页面截图对应的时间戳之间的时间差在目标时间差范围内的读数据序列。
在一种实施方式中,在进行页面截图和读数据序列的对齐处理之前,可以先对读数据序列进行预处理,如,对因网络/系统异常而导致的重传的读数据序列进行去重。其中,在进行对齐时,若一个页面截图无匹配的读数据序列,则可以针对该页面截图的时刻,补全缺失的读数据序列。
如图3所示,确定预读数据的过程具体可以包括以下步骤:
步骤S301:基于对齐的每张页面截图和对应的读数据序列,确定每张所述页面截图分别与多条所述读数据序列之间的注意力得分。
本实施例中,由于每张页面截图都有与之对齐的读数据序列,则为了准确反映显示页面的跳转对读数据的影响,可以确定每张页面截图分别与多条读数据序列之间的注意力得分,即可以确定每张页面截图分别与每条读数据序列之间的注意力得分,该注意得分用于表征当前用户所观看的显示页面与前后所读取数据的关联程度。如此,可以基于具有时间先后顺序的观看行为和数据读取行为,更好地表达用户所观看的显示页面与所读数据之间的关联程度,即得到用户所观看的显示页面对用户读取数据的影响。
在一种可选的实施方式中,可以通过BERT(BidirectionalEncoderRepresentations fromTransformer)模型确定每张页面截图分别与多条读数据序列之间的注意力得分。
步骤S302:基于所述注意力得分,确定所述目标应用在下一次要读取的预读数据。
本实施例中,由于注意力得分用于表征当前用户所观看的显示页面与前后所读取的数据之间的关联程度,由此,可以基于每个页面截图各自对应的多个注意力得分(每个读数据序列对应有一个注意力得分),构建显示页面的概率转移矩阵,以及读数据序列的概率转移矩阵,从而基于概率转移矩阵,确定用户下一次要读取的预读数据。
其中,概率转移矩阵应用于本申请中,可以用于反映读数据行为从一种状态向另一种状态转移的动态过程的概率分布,即学习用户读数据行为的规律,该规律表现为一个概率转移矩阵,从而可以预测出下一次要读取的预读数据。
进一步的解释为:由于多个页面截图记录了用户的观看行为,包含了丰富的场景区域、显示页面与资源数据分布的关联关系等信息;而在目标应用的设计中,场景区域、功能页面与相关组件的资源数据分布基本上是一一对应的关系,因此,通过页面截图确定用户当前所在的场景区域后,可推断出对应目标应用的哪一部分资源数据正在被访问,再结合用户行为数据,可以猜测到从当前的场景区域(显示页面)跳转到相关的其他场景区域(其他显示页面)的组合概率排序,进而得到用户下一步要访问的资源数据的概率排序,基于该概率排序,即可确定出用户下一次要读取的预读数据。
需要说明的是,图3所示的预读数据的确定过程指示了:本申请基于页面截图和读数据序列确定预读数据的实质内涵,而采用此实质内涵的一切具体技术实现方式均可以认为落入了本申请的保护范围。
其中,基于图3所示的确定预读数据的实质内涵,提出了一种可选的技术实现方式,在该方式中,可以基于机器学习的思想,构建一个用于确定预读数据的预测模型,该预测模型可以是基于相应的训练样本对目标神经网络进行训练得到的;这样,可以直接将页面截图和读数据序列输入至该预测模型,确定下一次要读取的预读数据。
其中,训练得到预测模型所使用的训练样本可以包括多个联合训练样本,每个联合训练样本包括多张页面截图样本和用户行为数据样本,实际读数据样本为目标应用所真实读取的数据;当然,实际读数据样本在训练过程中起到真值的作用,以该真值作为监督学习的目标构建损失函数,从而可以在训练的过程中,该损失值可以不断下降,进而不断更新目标神经网络的参数,以使目标神经网络不断收敛,从而得到预测模型。
在通过训练目标神经网络构建预测模型的情况下,可以通过大量的训练样本训练出预测性能较强的预测模型,从而提高预测模型确定预读数据的准确性。
参照图4所示,示出了本申请的模型训练的整体流程示意图,如图4所示,目标神经网络包括第一特征提取模块、第二特征提取模块、拼接模块以及预测模块。其中,图4以预测模块为Transformer模型为例进行了示意,结合图4所述,该预测模型的训练过程如下:
首先,用户行为数据样本包括多个读数据序列样本,将多个页面截图样本输入至第一特征提取模块,获取多个页面截图样本各自对应的第一特征向量;并将多个读数据序列样本输入至第二特征提取模块,获取多个读数据序列样本各自对应的第二特征向量;
接着,将第一特征向量和第二特征向量进行拼接后得到的联合向量输入至预测模块,获得预测模块输出的预读数据序列;其中,拼接模块用于对第一特征向量和第二特征向量进行拼接。
之后,基于预读数据序列和实际读数据样本,对目标神经网络的参数进行多次更新,得到预测模型。
本实施例中,第一特征提取模块用于提取页面截图样本的特征,从而构成特征图,其中,第一特征提取模块可以包括多个依次连接的卷积层,通过多个卷积层,可以对页面截图进行不同尺度的特征提取,从而得到特征图,进而将特征图转换为特征向量,得到第一特征向量。
其中,第二特征提取模块可以用于对每条读数据序列样本进行指定格式的向量化处理,进而得到第二特征向量。
接着,将第一特征向量和对应的第二特征向量进行拼接后得到联合向量。然后,将多个时序连续的联合向量输入至预测模块,其中,预测模块可以是Transformer模型,Transformer模型当中大量用到了多头Self-Attention(自注意力)机制,Transformer模型采用的算法是一个基于注意力机制的时序算法,由此预测模型可以基于时序连续的联合向量,学习到目标应用的显示页面与所读数据之间的关联程度。
在获得预测模块输出的预读数据序列时,可以基于该预读数据序列和实际读数据样本所包括的实际读数据序列,构建损失函数求得目标神经网络的损失值,从而基于损失值,对目标神经网络的参数进行更新。
由此,经过多轮训练后,在损失值小于目标损失值,并且LOSS曲线符合预期变化的情况下,可以表征目标神经网络收敛,从而将得到的预测模型部署到线上应用。
采用此种实施方式时,由于通过大量训练样本不断地训练预测模型,可以提高预测模型对预读数据的预测准确率,则在训练得到预测模型后,可以将多个页面截图和用户行为数据中的读数据序列输入至预测模型,得到目标应用在下一次要读取的预读数据。
具体实施时,先将读数据序列与页面截图进行时间戳对齐,将对齐处理后的多个页面截图以及多个读数据序列分别输入至第一特征提取模块、第二特征提取模块,输出得到第一特征向量、第二特征向量,再经过拼接模块将多个时序连续的第一特征向量与第二特征向量进行拼接,得到多个时序连续的联合向量,最后,将多个时序连续的联合向量输入至预测模型,以得到目标应用在下一次要读取的预读数据。
当然,在基于预测模型确定预读数据时,预测模型的预测性能与训练样本的丰富程度有关,训练样本越丰富,则预测模型的泛化能力、鲁棒性更好。如此,可以在目标应用的使用过程中,不断收集训练样本对预测模型进行动态更新,以提升预测模型的预测准确度。
相应地,在一种实施方式中,可以构建“自我”驱动的预测模型迭代机制,通过该机制,可以促使预测模型进入自动迭代的循环中,随着使用目标应用的用户量越来越大,搜集的训练样本越来越多,则预测模型的预测能力将越来越准,且只需要少许的人工介入便可以使得预测模型完成自我更新迭代。
参照图5所示,示出了对预测模型进行自我迭代更新的流程示意图。结合图5所示,在具体实施时,可以在目标应用第i次读数据时,获取第i次实际读取的实际读数据序列,以及第i次对应的预读数据序列;并在第i次实际读数据序列与第i-1次输出的预读数据序列(第i-1次输出的预读数据序列实际是预测出的第i次要读的数据序列)之间的差异超过目标差异的情况下,获取确定第i-1次对应的预读数据序列时所依据的目标用户行为数据和目标页面截图;之后,基于目标用户行为数据、目标页面截图和实际读数据序列,对预测模型进行更新。其中,i为大于等于1的整数。
本实施方式中,第i次读数据可以是指目标应用的任一次读请求,即目标应用在每一次发出读请求需要读数据时,可以通过读请求确定目标应用实际要读取的数据,该实际要读取的数据即为实际读数据序列,如上所述,具体可以表现为一条ID序列。其中,该次要读取的数据的标识可以携带在读请求中,进而通过解析读请求,便可以获取第i次要读取的实际读数据序列。
由于在每一次读请求之前,都提前预测了该次读请求对应的预读数据,即预读数据序列,这样,可以确定第i次读请求所要读取的实际读数据序列与对应的预读数据序列之间的差异。
例如,在目标应用第5次发出读请求时,该读请求要读取的实际读数据序列为“01-02-03-06-08”,而在之前,第4次预测的读请求所要读取的预读数据序列(与第5次实际读数据序列进行对比)为“01-03-04-07-08”,则可以确定“01-02-03-06-08”与“01-03-04-07-08”之间的差异。
其中,所要读取的实际读数据序列与对应的预读数据序列之间的差异可以包括读数据序列的不一致,以及读数据序列的读取顺序的不一致。
其中,实际读数据序列与对应的预读数据序列之间的差异,可以用错误率表征,相应地,目标差异可以用目标错误率表示。具体而言,可以表示为实际读数据序列与预读数据序列之间不一致的数据的占比,如“01-02-03-06-08”与“01-03-04-07-08”之间,不一致的数据有三个,占比为60%,则错误率为60%。
其中,当差异大于目标差异的情况下,表示对第i次预读的预测准确性不高,则可以将预测第i次要读的数据所使用的页面截图和用户行为数据重新输入至预测模型,并以第i次实际读取的实际读数据序列为真值,对预测模型进行训练,以更新预测模型的参数,使预测模型可以对预测不准确的样本进行重新学习。
采用此种实施方式时,可以在预测模型上线使用过程中,利用线上实时获取的用户行为数据和页面截图,对预测模型进行动态更新,从而可以使得预测模型不断学习当前用户群体的行为,以在目标应用被用户群体持续使用的过程中,始终保证预读数据的预测准确率。
在一种实施方式中,可以将第i次对应的目标用户行为数据、目标页面截图作为增量样本,加入到增量样本池;之后,周期性从增量样本池中获取当前周期内新增的增量样本;并以当前周期内新增的增量样本为训练样本、以对应的实际读数据序列为真值,对预测模型进行更新。
基于上述所述,由于可以在预测模型上线使用过程中,利用线上实时获取的用户行为数据和页面截图,对预测模型进行动态更新;具体实施时,可以周期性对预测模型进行更新,这样,可以在每确定预读数据序列和对应的实际读数据序列之间的差异大于目标差异时,就将对应的目标用户行为数据和目标页面截图作为增量样本加入到增量样本池。
其中,可以为增量样本池构建对应的索引表,索引表中可以记录当前周期内新增的增量样本的索引,如此,可以在每需要更新预测模型时,通过索引表确定当前周期内新增的增量样本,并以当前周期内新增的增量样本为训练样本,对预测模型进行更新。
例如,每周更新一次预测模型,则在新的一周到来时,如每个星期天到来时,可以将该星期内从星期一至当前时间新增的增量样本调出,输入至预测模型,并通过上述的训练过程,对预测模型进行持续训练,从而得到更新后的预测模型。
又例如,每周更新一次预测模型,则在新的一周到来时,如每个星期天到来时,可以将该星期内从星期一至当前时间新增的增量样本调出,合并到一个全量训练样本集合中,该全量训练样本集合是从当前时间点至半年或一年前的时间点的所有增量样本集合,或者可以是已存在的一个基础训练样本集合加上一段时间内的增量样本集合,然后,将全量训练样本集合中的训练样本输入至预测模型,并通过上述的训练过程,对预测模型进行持续训练,从而得到更新后的预测模型;相比前一种训练方式,该训练方法可以最大化降低模型在特定场景下的衰退率,提高泛化能力。
这样,可以运用更新后的预测模型进行目标应用的预读数据预测。
当然,在一些实施方式中,还可以对预测模型进行评测,具体可以如相关技术中对模型进行评测的过程,如构建评测数据集,将评测数据集输入至预测模型进行推理,并基于预测模型输出的预测结果(预读数据序列),判断预测结果是否符合目标指标,如果符合,则可以确定预测模型可以上线运行。
相应地,在每次利用增量样本对预测模型进行更新的情况下,对更新后的预测模型进行评测,以确定更新后的预测模型在目标指标上是否更好,若是,则可以将更新后的预测模型作为最新版本的模型上线运行,若否,则不发布最新版本的预测模型,而让更新前的预测模型继续保持进行线上运行。
其中,目标指标可以包括预测的平均准确率、召回率、预测范围覆盖度等。
结合图1所示的软硬件环境图,在采用预测模型确定预读数据的情况下,预测模型可以部署在第二服务器上,或者也可以部署在运行目标应用的终端上。其中,通过第二服务器上的预测模型确定预读数据的模式可以称为服务器模式,通过终端上的预测模型确定预读数据的模式可以称为客户端模式。
需要说明的是,在客户端模式下,由于终端自身确定预读数据,因此无需将页面截图和用户行为数据发送给第二服务器,避免了对网络资源的占用和对网络带宽的依赖,从而避免了远程的预读数据确定,可以提高预读数据确定的效率。而在服务器模式下,由于服务器的算力大于终端,可以避免对终端上的算力资源的占用,从而降低对终端的性能消耗,保障了终端的续航。
参照图6a和图6b所示,图6a示出了服务器模式下的软硬件环境图,图6b示出了客户端模式下的软硬件环境图。从图6a和图6b可看出,除包括预测模型外,还包括与确定预读数据有关的第一组件601以及与预测模型迭代更新有关的第二组件602;
其中,参照图6a和图6b所示,第一组件601可以包括数据包分离组件、日志过滤组件、对齐组件和预处理组件。第二组件602可以包括增量样本挖掘组件、数据库组件、更新组件和评测组件。
如图6a所示,在服务器模式下,上述的第一组件601、第二组件602和预测模型均部署在第二服务器中,如图6b所示,在客户端模式下,上述的第一组件601和预测模型部署在终端上,而第二组件602部署在第二服务器上。
其中,终端依据自身的性能配置参数选择进入服务器模式或进入客户端模式,当然,终端也可以依据自身被使用过程中的性能配置参数,在服务器模式和客户端模式之间进行模式切换。
具体实施时,可以获取运行目标应用的终端的当前性能配置参数,并在当前性能配置参数满足目标条件的情况下,将多张页面截图和用户行为数据发送给终端中配置的预测模型,以得到下一次要读取的预读数据;在当前性能配置参数不满足目标条件的情况下,将多张页面截图和用户行为数据发送给第二服务器,以得到下一次要读取的预读数据。
本实施例中,性能配置参数可以反映终端的硬件配置、软件配置和操作系统的配置,从而整体上反映终端的性能,当然,终端的性能随着不断地运行其他的应用和存储数据的增多,而会动态的变化,因此,通过当前性能配置参数可以反映终端的软硬件承载容量被当前的应用和存储数据所消耗的情况。
其中,目标条件可以是操作系统为目标版本的操作系统、终端的CPU占用率低于目标占用率、终端的内存的剩余容量不低于目标容量等多个条件的任一一种或多种条件的组合。其中,目标条件包含的内容越多,则终端的性能配置参数需要达到更高要求才能利用终端上配置的预测模型进行预读数据的预测。
当然,在一些实施例中,可以在安装目标应用时,根据终端的当前性能配置参数,确定是否在终端部署预测模型。例如,在当前性能配置参数满足目标条件的情况下,则可以在终端部署预测模型,反之,则不在终端部署预测模型。
相应地,在目标应用的使用过程中,由于也可以根据终端的当前性能配置参数,在客户端模式和服务器模式下动态切换,则达到了对预读数据的预测与终端自身的算力相适配的效果。
其中,对图6a和图6b所示中的第一组件和第二组件进行分别介绍:
在第一组件中,数据包分离组件的输出端连接日志过滤组件和对齐组件,日志过滤组件的输出端连接对齐组件的输入端,对齐组件的输出端连接预处理组件的输入端,而预处理组件的输出端用于向预测模型输入预处理后的页面截图和用户行为数据。
在第二组件中,包括增量样本挖掘组件、数据库组件、更新组件和评测组件,其中,增量样本挖掘组件的输入端可以与对齐组件的输出端和预测模型的输出端连接,用于接收对齐组件输出的读数据序列和页面截图,以及接收预测模型确定出的预读数据,如上一次确定出的预读数据,以便与本次对齐组件输出的读数据序列进行差异比较。
增量样本挖掘组件的输出端与数据库组件连接,用于将对齐组件输出的读数据序列和页面截图,以及预测模型确定出的预读数据存放至数据库;更新组件与数据库连接,用于在数据库中具有新增的增量样本时,读取出新增的增量样本,并利用新增的增量样本对预测模型进行更新;评测组件用于评测预测模型。
其中,第二组件602部署在第二服务器中,通过第二组件602对第二服务器中的预测模型进行更新,且经评测确定目标指标转好时,便可以将预测模型下发给终端,以使终端部署最新版本的预测模型。
需要说明的是,在服务器模式下,自目标应用至预处理组件的通路上,是以短视频的形式传输页面截图,即将多个页面截图编码为视频后在通路上传输至预处理组件,之后,通过预处理组件解码得到多张页面截图。
下面,结合图6a所示,以在移动终端中使用游戏APP为例,对本申请的数据读取方法的整体过程进行介绍:
S1:在游戏运行时对当前场景的显示页面按照预设频率进行采样,调用NvidiaGame Stream接口从GPU显存的显示缓冲区中获取当前缓存的图像帧,并对每个抽取的图像帧进行简单的方向、尺寸调整和标记时间戳,并将处理后的图像帧编码为视频,之后将视频截断为10-30s的短视频A发送给预读模块,如此,短视频A内的图像帧即为预读所需的页面截图。
S2:文件管理模块获取目标应用的读数据日志,读数据日志中包括多条读数据序列,每条读数据序列具有各自对应的时间戳,发送给预读模块。
S3:预读模块根据短视频A的时间范围(起始时间戳→结束时间戳),从读数据日志中找到匹配该时间段的读数据序列,然后打包成一个日志包A,发送给第二服务器中的数据包分离组件。
S4:数据包分离组件将日志包A分离出一个短视频A和若干个读数据序列;并将短视频A发送给对齐模块,将若干个读数据序列发送给日志过滤组件;
S5:日志过滤组件检查收到的若干个读数据序列中重复的读数据序列,并去重;补全某个时间段缺失的读数据序列之后,将处理后的读数据序列发送给对齐组件。
S6:对齐组件再次将短视频A中每个图像帧的时间与读数据序列的时间进行对齐,将对齐的短视频A与读数据序列打包成数据组B,并将数据组B的副本发送给增量样本挖掘组件,将数据组B发送给预处理组件。
S7:预处理组件,将收到的数据组B分离为短视频A与读数据序列,并将短视频A解码,得到若干页面截图;以及,基于读数据序列的时间戳找到匹配的页面截图,实现读数据序列和页面截图的再次对齐。
然后,将多个页面截图和各自对应的读数据序列传送给预测模型进行推理,得到预测模型输出的目标应用在下一次要读的预读数据的标识。
S8:第二服务器将下一次要读的预读数据的标识反馈给预读模块。
S9:预读模块基于下一次要读的预读数据的标识封装一个数据下载请求,将数据下载请求发送给第一服务器。
S10:预读模块接收第一服务器回传的预读数据,并将该预读数据存放至终端的外存中。
S11:在目标应用下一次读请求到来时,确定读请求所需的数据,若读请求所需的数据已经存放至外存中,则从外存中读取;若读请求所需的数据只部分存在于外存中,则针对未存在于外存中的剩余数据构建新的数据下载请求,以从第一服务器中获取该剩余数据。
其中,对于预测模型的更新可以详见上述实施例的描述即可,在此不再进行示例性描述。
基于相同的发明构思,本申请还提供了一种数据读取装置,参照图7所示,示出了数据读取装置的框架示意图,如图7所示,包括以下模块:
数据获取模块701,用于获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,所述页面截图是对所述目标应用的显示页面进行截图得到的;
数据预测模块702,用于基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据;
下载模块703,用于从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
可选地,所述用户行为数据包括多条读数据序列,所述装置还包括:
对齐模块,用于基于多张所述页面截图各自的时间以及多条所述读数据序列各自的时间,对多张所述页面截图和多条所述读数据序列进行对齐;
所述用户行为数据中包括多条读数据序列,数据预测模块702,包括:
注意力得分确定单元,用于基于对齐的每张页面截图和对应的读数据序列,确定每张所述页面截图分别与多条所述读数据序列之间的注意力得分;
预测单元,用于基于所述注意力得分,确定所述目标应用在下一次要读取的预读数据。
可选地,数据预测模块702,包括:
输入单元,用于将多个所述页面截图和所述用户行为数据输入至预测模型,得到所述目标应用在下一次要读取的预读数据;
所述预测模型是以多个联合训练样本为输入、以每个联合训练样本对应的实际读数据样本为真值,对目标神经网络进行训练得到的;
其中,每个所述联合训练样本包括多张页面截图样本和用户行为数据样本,所述实际读数据样本为所述目标应用所真实读取的数据。
可选地,所述装置还包括:
第一数据序列获取模块,用于在所述目标应用第i次读数据时,获取第i次实际读取的实际读数据序列,以及第i次对应的预读数据序列;其中,i为大于等于1的整数;
第二数据序列获取模块,用于在所述实际读数据序列与所述预读数据序列之间的差异超过目标差异的情况下,获取确定所述第i次对应的预读数据序列时,所依据的目标用户行为数据和目标页面截图;
模型更新模块,用于基于所述目标用户行为数据、所述目标页面截图和所述实际读数据序列,对所述预测模型进行更新。
可选地,所述装置还包括:
样本添加模块,用于将所述第i次对应的目标用户行为数据和目标页面截图作为增量样本,加入到增量样本池;
所述模型更新模块,包括:
样本更新单元,用于周期性从所述增量样本池中获取当前周期内新增的增量样本;
模型更新单元,用以所述当前周期内新增的增量样本为输入、以对应的实际读数据序列为真值,对所述预测模型进行更新。
可选地,所述用户行为数据样本包括多个读数据序列样本,所述预测模型是通过以下方式训练得到的:
获取多个所述页面截图样本各自对应的第一特征向量以及所述多个读数据序列样本各自对应的第二特征向量;
将所述第一特征向量和所述第二特征向量进行拼接后,得到联合向量;
基于所述联合向量,获得所述目标神经网络输出的预读数据序列;
基于所述预读数据序列和所述实际读数据样本,对所述目标神经网络的参数进行多次更新,得到所述预测模型。
可选地,所述装置还包括:
配置参数获取模块,用于获取运行所述目标应用的终端的当前性能配置参数;
数据预测模块702,包括:
第一预测模式单元,用于在所述当前性能配置参数满足目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述终端中配置的所述预测模型,以得到所述下一次要读取的预读数据;
第二预测模式单元,用于在所述当前性能配置参数不满足所述目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述第二服务器,以得到所述下一次要读取的预读数据。
可选地,所述装置还包括:
数据包获取模块,用于预先在未安装所述目标应用时,获取所述目标应用的启动运行包和启动镜像包;其中,所述启动镜像包包括所述目标应用的启动数据;
应用启动模块,用于通过所述启动运行包启动所述目标应用后,响应于所述目标应用的读请求,从所述启动镜像包和/或所述第一服务器中读取所述读请求对应的数据;其中,所述第一服务器中包括所述目标应用的全部原始数据。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本申请实施例还公开了一种电子设备,包括存储器1101、处理器1102及存储在存储器1101上并可在处理器1102上运行的计算机程序,所述处理器1102执行时实现如所述的数据读取方法、装置、设备及介质。
本申请实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本申请所述的数据读取方法、装置、设备及介质。
本申请实施例还公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的数据读取方法、装置、设备及介质。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据读取方法、装置、设备、介质及产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据读取方法,其特征在于,所述方法包括:
获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,所述页面截图是对所述目标应用的显示页面进行截图得到的;
基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据;
从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
2.根据权利要求1所述的方法,其特征在于,所述用户行为数据包括多条读数据序列,所述方法还包括:
基于多张所述页面截图各自的时间以及多条所述读数据序列各自的时间,对多张所述页面截图和多条所述读数据序列进行对齐;
所述用户行为数据中包括多条读数据序列,基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
基于对齐的每张页面截图和对应的读数据序列,确定每张所述页面截图分别与多条所述读数据序列之间的注意力得分;
基于所述注意力得分,确定所述目标应用在下一次要读取的预读数据。
3.根据权利要求1或2所述的方法,其特征在于,基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
将多个所述页面截图和所述用户行为数据输入至预测模型,得到所述目标应用在下一次要读取的预读数据;
所述预测模型是以多个联合训练样本为输入、以每个联合训练样本对应的实际读数据样本为真值,对目标神经网络进行训练得到的;
其中,每个所述联合训练样本包括多张页面截图样本和用户行为数据样本,所述实际读数据样本为所述目标应用所真实读取的数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标应用第i次读数据时,获取第i次实际读取的实际读数据序列,以及第i次对应的预读数据序列;其中,i为大于等于1的整数;
在所述实际读数据序列与所述预读数据序列之间的差异超过目标差异的情况下,获取确定所述第i次对应的预读数据序列时,所依据的目标用户行为数据和目标页面截图;
基于所述目标用户行为数据、所述目标页面截图和所述实际读数据序列,对所述预测模型进行更新。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述第i次对应的目标用户行为数据和目标页面截图作为增量样本,加入到增量样本池;
基于所述目标用户行为数据、所述目标页面截图和所述实际读数据序列,对所述预测模型进行更新,包括:
周期性从所述增量样本池中获取当前周期内新增的增量样本;
以所述当前周期内新增的增量样本为输入、以对应的实际读数据序列为真值,对所述预测模型进行更新。
6.根据权利要求3所述的方法,其特征在于,所述用户行为数据样本包括多个读数据序列样本,所述预测模型是通过以下方式训练得到的:
获取多个所述页面截图样本各自对应的第一特征向量以及所述多个读数据序列样本各自对应的第二特征向量;
将所述第一特征向量和所述第二特征向量进行拼接后,得到联合向量;
基于所述联合向量,获得所述目标神经网络输出的预读数据序列;
基于所述预读数据序列和所述实际读数据样本,对所述目标神经网络的参数进行多次更新,得到所述预测模型。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取运行所述目标应用的终端的当前性能配置参数;
基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据,包括:
在所述当前性能配置参数满足目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述终端中配置的所述预测模型,以得到所述下一次要读取的预读数据;
在所述当前性能配置参数不满足所述目标条件的情况下,将所述多张所述页面截图和所述用户行为数据发送给所述第二服务器,以得到所述下一次要读取的预读数据。
8.根据权利要求1-7任一所述的方法,其特征在于,所述方法包括:
预先在未安装所述目标应用时,获取所述目标应用的启动运行包和启动镜像包;其中,所述启动镜像包包括所述目标应用的启动数据;
通过所述启动运行包启动所述目标应用后,响应于所述目标应用的读请求,从所述启动镜像包和/或所述第一服务器中读取所述读请求对应的数据;其中,所述第一服务器中包括所述目标应用的全部原始数据。
9.一种数据读取装置,其特征在于,所述装置包括:
数据获取模块,用于获取目标应用在当前时刻之前的多张页面截图以及用户行为数据;其中,所述页面截图是对所述目标应用的显示页面进行截图得到的;
数据预测模块,用于基于多张所述页面截图和所述用户行为数据,确定所述目标应用在下一次要读取的预读数据;
下载模块,用于从第一服务器中下载所述预读数据,并将所述预读数据存储至本地,以使所述目标应用的下一次读请求命中所述预读数据时,从所述本地读取所述预读数据。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如权利要求1-8任一项所述的数据读取方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210653784.2A CN115202748A (zh) | 2022-06-10 | 2022-06-10 | 数据读取方法、装置及电子设备 |
PCT/CN2022/130597 WO2023236444A1 (zh) | 2022-06-10 | 2022-11-08 | 数据读取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210653784.2A CN115202748A (zh) | 2022-06-10 | 2022-06-10 | 数据读取方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202748A true CN115202748A (zh) | 2022-10-18 |
Family
ID=83575303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210653784.2A Pending CN115202748A (zh) | 2022-06-10 | 2022-06-10 | 数据读取方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115202748A (zh) |
WO (1) | WO2023236444A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236444A1 (zh) * | 2022-06-10 | 2023-12-14 | 杨正 | 数据读取方法、装置及电子设备 |
CN117435112A (zh) * | 2023-12-20 | 2024-01-23 | 摩尔线程智能科技(成都)有限责任公司 | 数据处理方法、系统及装置、电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472801B (zh) * | 2023-12-28 | 2024-03-01 | 苏州元脑智能科技有限公司 | 显存带宽优化方法、装置、系统及bmc系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814868B (zh) * | 2018-12-13 | 2022-07-08 | 深圳壹账通智能科技有限公司 | 网络传输模拟方法、装置、计算机设备及存储介质 |
US11768700B2 (en) * | 2020-04-02 | 2023-09-26 | Citrix Systems, Inc. | Contextual application switch based on user behaviors |
CN111666497B (zh) * | 2020-06-16 | 2023-06-06 | 腾讯科技(上海)有限公司 | 应用程序的加载方法、装置、电子设备及可读存储介质 |
CN111729305B (zh) * | 2020-06-23 | 2024-02-09 | 网易(杭州)网络有限公司 | 地图场景预加载方法、模型训练方法、设备及存储介质 |
CN115202748A (zh) * | 2022-06-10 | 2022-10-18 | 杨正 | 数据读取方法、装置及电子设备 |
-
2022
- 2022-06-10 CN CN202210653784.2A patent/CN115202748A/zh active Pending
- 2022-11-08 WO PCT/CN2022/130597 patent/WO2023236444A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236444A1 (zh) * | 2022-06-10 | 2023-12-14 | 杨正 | 数据读取方法、装置及电子设备 |
CN117435112A (zh) * | 2023-12-20 | 2024-01-23 | 摩尔线程智能科技(成都)有限责任公司 | 数据处理方法、系统及装置、电子设备和存储介质 |
CN117435112B (zh) * | 2023-12-20 | 2024-04-05 | 摩尔线程智能科技(成都)有限责任公司 | 数据处理方法、系统及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023236444A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115202748A (zh) | 数据读取方法、装置及电子设备 | |
CN110784759B (zh) | 弹幕信息处理方法、装置、电子设备及存储介质 | |
CN111632373B (zh) | 一种启动游戏的方法、装置及计算机可读存储介质 | |
US20200275133A1 (en) | Computerized system and method for automatic highlight detection from live streaming media and rendering within a specialized media player | |
CN108965397A (zh) | 云端视频编辑方法及装置、编辑设备及存储介质 | |
US20080288380A1 (en) | Method and System for Providing Streamed Game Software on Portable Terminal | |
CN103905835A (zh) | 一种视频播放器的进度预览方法、装置和系统 | |
CN110780789B (zh) | 游戏应用启动方法和装置、存储介质及电子装置 | |
CN111031400B (zh) | 弹幕呈现方法和系统 | |
CN110507992B (zh) | 一种虚拟场景中的技术支持方法、装置、设备及存储介质 | |
CN111510789B (zh) | 视频播放方法、系统、计算机设备及计算机可读存储介质 | |
EP4345591A1 (en) | Prop processing method and apparatus, and device and medium | |
CN111031376B (zh) | 基于微信小程序的弹幕处理方法和系统 | |
CN111031399B (zh) | 弹幕处理方法和系统 | |
CN112104909A (zh) | 互动视频播放方法、装置、计算机设备及可读存储介质 | |
US20230039406A1 (en) | Video data obtaining method and apparatus, electronic device, and storage medium | |
CN112732265B (zh) | 一种数据处理方法和相关装置 | |
JP6896724B2 (ja) | Acrテレビ・モニタリング・システムにおける作業負荷管理を改善するためのシステムおよび方法 | |
CN109999490B (zh) | 一种降低联网云应用延迟的方法及系统 | |
CN113505076A (zh) | 文件覆盖检测方法及装置 | |
CN113626402A (zh) | 日志数据的获取方法和装置、电子设备和存储介质 | |
CN112560809A (zh) | 一种实时展示识别效果的方法及装置 | |
CN111447490A (zh) | 流媒体文件处理方法及装置 | |
CN111026558B (zh) | 基于微信小程序的弹幕处理方法和系统 | |
CN105141663B (zh) | 一种用户行为信息采集方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |