Nothing Special   »   [go: up one dir, main page]

CN114168601B - 一种面向移动端的数据流处理方法及设备 - Google Patents

一种面向移动端的数据流处理方法及设备 Download PDF

Info

Publication number
CN114168601B
CN114168601B CN202210126305.1A CN202210126305A CN114168601B CN 114168601 B CN114168601 B CN 114168601B CN 202210126305 A CN202210126305 A CN 202210126305A CN 114168601 B CN114168601 B CN 114168601B
Authority
CN
China
Prior art keywords
event
node
task
target
data processing
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.)
Active
Application number
CN202210126305.1A
Other languages
English (en)
Other versions
CN114168601A (zh
Inventor
吕承飞
吴飞
黄丛宇
牛超越
顾仁杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202210126305.1A priority Critical patent/CN114168601B/zh
Publication of CN114168601A publication Critical patent/CN114168601A/zh
Application granted granted Critical
Publication of CN114168601B publication Critical patent/CN114168601B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种面向移动端的数据流处理方法及设备。在本申请实施例中提供一种用于端侧的数据流处理方案,该方案可以直接部署在端侧运行,该方案采用任务树的方式对目标应用的数据处理任务及其触发事件序列进行组织管理,针对目标应用运行过程中发生的当前目标事件,通过查询任务树的方式以将当前目标事件与任务树上事件节点或叶子节点进行匹配,并根据匹配结果决策是否触发执行数据处理任务。由此,结合任务树可以自动、快速、准确地识别部署在端侧的数据处理任务的触发条件是否被满足,保证端侧的数据处理任务的自动、准确以及快速执行。

Description

一种面向移动端的数据流处理方法及设备
技术领域
本申请涉及人工智能技术领域,尤其涉及一种面向移动端的数据流处理方法及设备。
背景技术
机器学习(Machine Learning,ML)任务是指依赖机器学习模型完成的任务。随着机器学习技术的不断成熟,依赖机器学习任务的应用场景越来越多。例如,在电商应用中,会依赖机器学习任务进行个性化商品推荐;在直播应用中,会依赖机器学习任务进行人脸或物体识别,等等。随着云计算技术的发展,机器学习任务通常被部署在云侧,可借助云计算资源的优势,节约端侧资源。
以电商应用依赖的用于个性化商品推荐的机器学习任务为例,可由机器学习工程师预先针对该个性化推荐问题完成样本数据的采集和算法设计,然后在云侧使用机器学习框架,如TensorFlow或PyTorch训练机器学习模型,进而生成至少包含该机器学习模型的用于个性化商品推荐的机器学习任务。在线上应用过程中,电商应用可将用户产生的操作数据上传至云侧,在云侧运行该机器学习任务,以实现根据用户的这些操作数据为用户进行个性化商品推荐的目的。
但是,随着移动设备算力的提升,如果能够将机器学习任务部署在端侧,实现端侧智能化,可大大提高模型推理效率。端侧智能化的实现不仅需要适用于端侧的机器学习任务,还需要一种适用于端侧的数据流处理方案,以便于为运行于端侧的机器学习任务提供数据支持,例如解决机器学习任务的数据输入问题等。
发明内容
本申请的多个方面提供一种面向移动端的数据流处理方法、设备及存储介质,用以保证端侧的数据处理任务的自动、准确以及快速执行。
本申请实施例提供一种面向移动端的数据流处理方法,应用于安装有目标应用的移动设备,该方法包括:预先生成目标应用对应的任务树,任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应;当目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点;将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
本申请实施例还提供一种面向移动端的数据流处理装置,包括:生成模块,用于预先生成目标应用对应的任务树,任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应;获取模块,用于在目标应用产生当前目标事件发生时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点;匹配模块,用于将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;执行模块,用于对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器耦合至存储器,用于执行计算机程序以用于执行面向移动端的数据流处理方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机存储介质,当计算机程序被处理器执行时,致使处理器能够实现面向移动端的数据流处理方法中的步骤。
本申请实施例提供一种用于端侧的数据流处理方案,该方案可以直接部署在端侧运行,该方案采用任务树的方式对目标应用的数据处理任务及其触发事件序列进行组织管理,针对目标应用运行过程中发生的当前目标事件,通过查询任务树的方式以将当前目标事件与任务树上事件节点或叶子节点进行匹配,并根据匹配结果决策是否触发执行数据处理任务。由此,结合任务树可以自动、快速、准确地识别部署在端侧的数据处理任务的触发条件是否被满足,保证端侧的数据处理任务的自动、准确以及快速执行。进一步可选的,执行数据处理任务产生的数据处理结果既可以在端侧进行使用,还可以上传至云侧进行使用,进而能够让数据以合理的方式在端侧和/或云侧进行计算和使用,节省不必要的上传和云侧计算、存储消耗。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种面向移动端的数据流处理方法的流程示意图;
图1b为本申请实施例提供的一种计算容器的结构示意图;
图2为本申请实施例提供的支持海量移动设备的任务部署所适用的一种系统架构图;
图3为本申请实施例提供的一种数据流处理框架的结构示意图;
图4为本申请实施例提供的一种面向移动端的数据流处理装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术在端侧部署机器学习任务以实现端侧智能化时,面临需要提供适用于端侧的数据流处理方案的问题。鉴于该技术问题,在本申请实施例中,对运行于端侧的应用程序产生用户行为数据的特点进行了分析。端侧的移动设备可以面向用户提供不同功能的应用程序(App),以供用户使用。用户在操作App的过程中,移动设备可以采集到用户行为数据,为了便于理解,将移动设备采集到的用户行为数据称为端侧用户行为数据。端侧用户行为数据具有如下特点:(1)产出频率高。随着作用于App的用户操作不断增多,不断产出与点击、滑动、浏览等用户操作相关的用户行为数据。例如,在1分钟内作用于购物类App上的用户操作可以产出数十条相关的用户行为数据。(2)时序性强,用户操作具有确定的时间先后顺序,因此随之产出的用户行为数据也具有明显的时序特征,且几乎不存在数据错位。(3)数据量小。移动设备采集到的用户行为数据仅来自于使用该移动设备的用户,数据用户行为数据的条数较少,且单条行为数据通常只有几十或者上百字节,数据量小。
鉴于端侧用户行为数据具体产出频率高和时序性强等数据特征,使得端侧用户行为数据不适合上传至云侧进行处理。这是因为,将端侧用户行为数据上传至云侧处理,不仅难以保证原有的时序性,难以实时处理端侧用户行为数据,还有可能因上传过程中端侧和云侧之间的网络延迟对时序性的破坏而引入额外资源开销。另外,端侧用户行为数据上传至云侧进行处理,还可能存在以下若干问题:1、数据隐私问题;2、云侧处理大量移动设备上传的海量数据需要消耗大量算力;3、受端侧和云侧之间的网络延迟的限制,云侧难以实时感知用户意图、难以实时响应用户兴趣变化。
然而,时序性强和数据量小使得在移动设备本地处理端侧用户行为数据具有天然的优势,不仅能够保证端侧用户行为数据具有良好的时序性,还能以较小的资源开销处理端侧用户行为数据。于是,考虑到移动设备的算力、存储等都已经有明显的提升,结合端侧用户行为数据的特点,提出了一种新的用于端侧的数据流处理方案。该方案可以直接部署在端侧运行,该方案采用任务树的方式对目标应用的数据处理任务及其触发事件序列进行组织管理,针对目标应用运行过程中发生的当前目标事件,通过查询任务树的方式将当前目标事件与任务树上事件节点或叶子节点进行匹配,并根据匹配结果决策是否触发执行数据处理任务,以在端侧完成与数据处理任务相关的数据流(或事件流)处理。由此,结合任务树可以自动、快速、准确地在端侧识别数据处理任务的触发条件是否被满足,保证数据处理任务的自动、准确以及快速执行。
进一步可选的,执行数据处理任务产生的数据处理结果既可以在端侧供机器学习模型进行使用,还可以上传至云侧供机器学习模型进行使用,进而能够让数据以合理的方式在端侧和/或云侧进行计算和使用,节省不必要的上传和云侧计算、存储消耗。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请实施例提供的一种面向移动端的数据流处理方法的流程示意图。该方法可应用于安装有目标应用的移动设备,该方法可以包括以下步骤:
101、预先生成目标应用对应的任务树,该任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应。
102、当目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括两类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点。
103、将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点。
104、对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
在本实施例中,移动设备上部署有目标应用,目标应用泛指各种依赖机器学习任务的应用,例如可以是购物类应用、视频类应用、直播类应用、游戏类应用、语言处理类应用等等。举例说明:对于购物类应用可基于机器学习任务进行个性化商品推荐、首页商品推荐等,视频类应用可基于机器学习任务进行个性化视频推荐、视频剪辑、视频分类、特定内容检测等,直播类应用可基于机器学习任务进行人脸识别、人脸3D建模、语音处理等。
本实施例给出一种机器学习任务的定义和其实现结构,机器学习任务的真实表达可以认为是一段程序代码,机器学习任务的实现结构可以包括前处理任务、机器学习模型和前处理任务。前处理任务用于对待输入至机器学习模型的输入数据进行预处理,例如,在计算机视觉场景,前处理任务需要执行以下数据预处理:图像旋转、图像放大、图像缩小等。机器学习模型是一个由一段数据表达的函数,数据记录了函数结构和函数参数。机器学习模型在经过训练(参数优化)后可以识别特定类型的模式,其具体作用是实现从一个样本到样本标签的映射。前处理任务用于对机器学习模型的输出数据进行后处理,例如,机器学习模型的输出多个分类结果及其概率,根据多个分类结果的概率从多个分类结果中选择符合要求的最终分类结果进行输出。
在本实施例中,目标应用对应有数据处理任务,数据处理任务是指对数据进行处理的任务,数据处理任务的数据处理对象可以是端侧用户行为数据,该端侧用户行为数据可以采用埋点技术进行采集。例如,在目标应用关联的程序代码中植入一个或多个埋点API(Application Programming Interface,应用程序接口),调用埋点API采集相应的端侧用户行为数据。数据处理任务的数据处理对象也可以是机器学习模型运行过程中产生的过程数据,执行数据处理任务对过程数据进行处理,并将处理后的过程数据返回至机器学习模型,以供机器学习模型继续进行推理。例如,对机器学习模型产生的图像特征数据进行图像上采样或下采样处理,并将图像上采样或下采样处理的图像特征数据提供给机器学习模型,以供机器学习模型继续进行推理。当然,本实施例对数据处理对象不做限制。
值得注意的是,本实施例的数据处理任务可以是机器学习任务中的前处理任务,或者是后处理任务,或者同时包含前处理任务和后处理任务。另外,本实施例的数据处理任务还可以和与其关联的机器学习模型一并形成机器学习任务,该机器学习任务可以被部署在移动设备上,也可以被部署在云端。也就是说,本实施例的数据处理任务也可以是机器学习任务。经过数据处理任务处理后的数据可以在移动设备本地进行后续处理,也可以上传至云侧进行后续处理,对此本实施例不做限制。具体可视数据处理任务的部署位置而定。在一可选实施例中,如果机器学习任务被部署在云端,则数据处理任务以及经过数据处理任务处理后的数据的后续处理都需要在云侧执行;如果机器学习任务被部署在移动设备侧,则数据处理任务以及经过数据处理任务处理后的数据的后续处理都需要在移动设备侧执行。
在本申请一可选实施例中,可以由云侧根据目标应用支持的功能确定移动设备需要执行哪些数据处理任务,并将移动设备所需执行的数据处理任务部署至移动设备。数据处理任务可以来自于云侧的动态部署,也可以是预置在目标应用中。可选地,云侧是指位于云侧的各种资源设备,例如云服务器。例如,目标应用支持AI人脸识别功能,数据处理任务可以是对采集到的人脸图像进行诸如图像旋转、图像放大、图像缩小或图像特征提取等图像预处理的相关任务。经过图像预处理后的人脸图像相关数据作为提供AI人脸识别功能的机器学习模型的输入数据,以支持提供AI人脸识别功能的机器学习模型执行AI人脸识别功能。又例如,目标应用支持AI语音识别功能,数据处理任务可以是对采集到的语音信号进行诸如预加重、分帧、加窗等语音预处理操的相关任务。经过语音预处理后的语音数据作为提供AI语音识别功能的机器学习模型的输入数据,以支持提供AI语音识别功能的机器学习模型执行AI语音识别功能。
实际应用中,可以由云侧根据目标应用支持的功能确定移动设备需要执行哪些数据处理任务,并将移动设备所需执行的数据处理任务部署至移动设备。或者,也可以由移动设备基于目标应用支持的功能确定自身需要执行哪些数据处理任务,并请求云侧提供所需的数据处理任务并进行部署。当然,在移动设备上部署数据处理任务的方式不做限制。另外,需要说明的是,数据处理任务可以部署在移动设备上,也可以部署在云侧。无论数据处理任务部署在哪里,移动设备端都可以按照本申请实施例提供的数据流处理方法来确定数据处理任务是否被触发执行。具体地,在数据处理任务部署在移动设备上的情况下,则在步骤104中,可以直接触发执行叶子节点关联的至少一个数据处理任务;在数据处理任务被部署在云侧服务器上的情况下,则在步骤104中,可以将从根节点到叶子节点经过的事件节点匹配到的目标事件的信息上报至云侧服务器,由云侧服务器执行该叶子节点关联的至少一个数据处理任务。
在本实施例中,数据处理任务中可以包括但不限于:计算实体和任务配置信息。其中,计算实体包括用于实现数据处理技术逻辑的程序代码,该计算实体例如可以采用Python语言或C语言编写。例如,数据处理任务为图像预处理任务,则计算实体是可以执行图像预处理功能的程序代码。任务配置信息记录数据处理任务相关的配置信息,例如包括但不限于:任务名称、任务标识、存储地址、触发条件、等等。任务名称或任务标识均可以唯一标识数据处理任务,存储地址是指经过数据存储任务处理后的数据的存储地址。
在本实施例中,数据处理任务的触发条件可以是有一个或多个触发事件ID(Identity/Identifier的缩写,身份标识)组成的触发事件序列,触发事件ID在触发事件序列中的位置表明对应的触发事件发生的先后顺序。应理解,当移动设备检测到按序出现了触发事件序列中全部的触发事件时,满足数据处理任务的触发条件,数据处理任务被触发,移动设备需要执行数据处理任务。当然,若没有按序出现触发事件序列中全部的触发事件不满足数据处理任务的触发条件,数据处理任务不会被触发,移动设备不需要执行数据处理任务。需要说明的是,数据处理任务与其对应的触发事件序列相关,可选地,触发事件序列可作为数据处理任务的部分或全部输入,也就是数据处理任务需要处理的部分或全部数据对象。
在本实施例中,触发事件可以是基础事件。基础事件是指随着移动设备中用户操作产生的原始事件,基础事件基于用户操作不同例如可以但不限于分类成以下几种类别:与页面进入(page enter)操作对应的页面进入事件、与页面退出(page exit)操作对应的页面退出事件、与页面滑动(page scroll)操作对应的滚动事件、与控件点击(click)操作对应的点击事件、与曝光(exposure)操作对应的曝光事件。需要说明的是,曝光操作是指随着用户的其他交互操作(如页面进入、页面滑动、控件点击),某些特定内容(如商品、广告横幅)在移动设备的屏幕上展示给了用户(此时便认为用户看到了该特定内容)。“特定内容出现在屏幕中”也可称为是“用户看到该特定内容”,此时会被记录为一次该特定内容的曝光事件。
在本实施例中,基础事件可以通过对用户在操作移动设备上的App产生的用户行为数据进行分析得到。基础事件的事件信息包括但不限于:事件ID、页面ID、时间戳、事件内容。其中,事件ID用于区分不同类型的基础事件,不同事件ID对应不同的基础事件。例如,事件ID采用数字的形式表示,事件ID分别为1(对应页面进入事件)、2(对应页面退出事件)、3(对应页面滚动事件)、4(对应点击事件)、5(对应曝光事件)。当然,事件ID采用数字的形式表示仅为示例,本实施例对事件ID的表示形式不做限制。
页面ID是指发生事件ID对应的基础事件所关联的页面的ID。例如,目标应用为购物类APP,该购物类APP例如包括首页面、购物车页面或系统消息页面等。当用户在首页面、购物车页面或系统消息页面上进行与基础事件相关的操作时,这些页面即为与基础事件关联的页面。
在本实施例中,用户使用移动设备上的APP过程产生一系列的基础事件按照时间先后顺序组成基础事件流(Basic Events)。在基础事件流的基础上还可构造页面事件流。页面事件流的构造过程如下:在新的基础事件进入基础事件流之后,根据新的基础事件的事件ID确定新的基础事件是否属于页面进入事件,在新的基础事件属于页面进入事件的情况下,确定出现新的页面事件,获取新的基础事件的事件ID和该新的基础事件所属页面的ID(简称页面ID),按照{页面 ID:[事件 ID]}的形式构建新的页面事件的信息,并加入页面事件流。其中,根据{页面 ID:[事件 ID]}可以获知页面 ID对应的页面上发生过事件ID对应的基础事件。页面事件流包括按照时间先后顺序产生的多个页面事件,不同页面事件所属页面ID不同,也即每个页面事件是一个页面ID标识的页面事件,一个页面事件可以包括一个或多个基础事件。
值得注意的是,每当出现新的基础事件进入基础事件流,可以判断该新的基础事件的页面ID与最晚加入至页面事件流的页面事件对应的页面ID是否一致,若一致,则新的基础事件的事件ID继续更新到最晚加入至页面事件流的页面事件的信息当中。随着加入同一页面事件的基础事件越来越多,同一页面ID下关联多个基础事件的事件ID,例如{页面ID:[事件ID,...,事件ID]}表示同一页面ID下关联的多个基础事件的事件ID。值得注意的是,在同一页面上检测到页面退出事件时,该页面ID对应的页面事件结束。同时,同一页面事件下属的基础事件包括从进入页面到退出页面之间的各个基础事件。
举例来说,在基于当前的用户行为数据检测到当前有基础事件d发生时,且基础事件d是页面进入事件,且获取基础事件d所在页面的页面ID,假设页面ID为D,构建出{D:d}页面事件加入至页面事件流中。基础事件d'到达后,基础事件d所在的页面ID仍然为页面D,则更新已构建的{D:d}页面事件为{D:d,d'}。
在本实施例中,移动设备上目标应用的各类数据处理需求会对应多个不同的数据处理任务,每个数据处理任务对应触发事件序列,为了便于高效管理数据处理任务的触发,可以采用树结构对移动设备上目标应用的各个数据处理任务及其对应的触发事件序列进行组织管理。为了便于理解和区分,将基于目标应用的各个数据处理任务及其对应的触发事件序列构建出的树结构作为任务树。该任务树包括根节点、事件节点和叶子节点,从根节点到叶子节点的路径上经过一个或多个事件节点。一个任务树只有一个根节点,事件节点和叶子节点的数量可以是一个或多个。任务树中任意一条“根节点-若干个事件节点-叶子节点”组成的路径唯一对应一个触发条件或触发事件序列,每个触发条件对应路径上的每个事件节点关联该触发条件中的一个触发事件,事件节点的节点标识包括触发事件的标识信息;根节点的节点标识用于标记触发条件的开始,根节点可以认为是触发条件对应的开始节点;叶子节点的节点标识用于标记触发条件的结束,叶子节点可以认为是触发条件对应的结束节点,叶子节点上关联存储满足触发条件的数据处理任务,叶子节点上关联的数据处理任务可以是一个或多个。进一步的,针对存在一个或多个相同的触发事件的不同触发条件,从根节点到子树根节点的路径上的事件节点为不同触发条件的共有的事件节点。在一可选实施例中,任务树可以采用字典树、二叉树和哈夫曼树,但不限于此。
实际应用中,随着时间推移,因数据处理需求发生改变可能需要更新已有数据处理任务的触发条件,或者,出现新的数据处理需求需要为目标应用部署新的数据处理任务。于是,进一步可选的,支持对已经构建出的目标应用的任务树进行更新。针对已有数据处理任务的触发条件发生更新时,根据更新后的触发条件更新任务树。针对新的数据处理任务被部署给目标应用时,获取新的数据处理任务对应的触发事件序列,作为待匹配的触发事件序列,并将待匹配的触发事件序列中的触发事件按序与任务树上各事件节点对应的触发事件进行匹配;若匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,将新的数据处理任务与目标路径对应的叶子节点进行关联;若未匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,以最后一个匹配成功的事件节点为子树的根节点,为待匹配的触发事件序列中未匹配中的触发事件构建子树,并将新的数据处理任务与子树的叶子节点进行关联。
具体而言,在将待匹配的触发事件序列中的触发事件按序与任务树上的各事件节点对应的触发事件进行匹配之前, 在待匹配的触发事件序列的首部和尾部分别添加起始标记和结束标记,起始标记用于对应任务树的根节点,结束标记用于对应任务树上的叶子节点,位于起始标记和结束标记之间的触发事件用于对应任务树上的事件节点。
值得注意的是,位于待匹配的触发事件序列中第一个触发事件之前的位置称作首部,该首部用于添加根节点对应的起始标记;位于待匹配的触发事件序列中最后一个触发事件之后的位置称作尾部,该尾部用于添加叶子节点对应的结束标记。
针对已添加起始标记和结束标记的待匹配的触发事件序列,可以采用诸如深度优先搜索(Depth First Search,DFS)或者广度优先搜索((Breadth First Search,BFS)等图形搜索算法对任务树进行搜索,以识别任务树是否存在与待匹配的触发事件序列中的触发事件按序对应的目标路径,该目标路径是指从根节点到叶子节点经过的若干个事件节点形成的路径。值得注意的是,在搜索任务树时,从任务树的根节点出发,依次遍历任务树上各条路径上的事件节点,以确定是否存在与待匹配的触发事件序列中的触发事件按序对应的目标路径。若存在目标路径,则说明新的数据处理任务的触发条件与已经部署的数据处理任务的触发条件相同,针对这种情况无需在任务树上添加新的子树。若不存在目标路径,则说明新的数据处理任务与已经部署的数据处理任务的触发条件不同,针对这种情况需要在任务树上添加新的子树。子树的根节点是任务树上最后一个与待匹配的触发事件序列中触发事件匹配成功的事件节点,将待匹配的触发事件序列位于最后一个与任务树匹配成功的触发事件之后的触发事件依次作为子树的一个事件节点对应的触发事件,并为子树添加叶子节点,叶子节点关联新的数据处理任务,至此完成子树的创建。
在本实施例中,预先根据已部署给目标应用的数据处理任务创建生成任务树,任务树上每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应。示例性的,在触发事件为基础事件时,对应的事件节点的节点标识为基础事件的事件ID;在触发事件为页面事件时,对应的事件节点的节点标识为页面事件的页面ID;于是,从根节点到叶子节点依次经过的事件节点对应的事件ID或页面ID形成触发事件序列,也即形成数据处理任务的触发条件。
在本实施例中,在目标应用的运行过程中,可采集用户使用目标应用过程中的用户行为数据,并分析用户行为数据以确定是否发生基础事件和/或页面事件等当前目标事件。实际应用中,用户在目标应用运行过程中发起的交互操作产生的基础事件可能是页面进入事件,也可能是除页面进入事件之外的其他基础事件,在基础事件是页面进入事件时,当前发生一件新的页面事件。于是,进一步可选的,为了及时准确识别当前目标事件,在一可选实现方式中,响应用户在目标应用运行过程中发起的交互操作,获取交互操作产生的基础事件,将基础事件添加至基础事件流中,并将基础事件作为当前目标事件,基础事件为预设事件类型中的一类事件;和/或判断基础事件是否为页面进入事件;若基础事件为页面进入事件,则根据基础事件的标识和基础事件所属页面的标识构建页面事件,并将页面事件作为当前目标事件。其中,预设事件类型根据实际需求设置,例如为页面进入事件、页面退出事件、页面滚动事件、点击事件、曝光事件中一种或多种。
在本实施例中,若发生目标事件,则进一步判断目标事件是否为触发执行数据处理任务的一个触发事件,以便保证数据处理任务的高效触发。具体而言,在目标应用运行过程中发生目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点。其中,第一类事件节点不能为空,是必须要有的候选事件节点,第二类事件节点的数量可以为0。在一可选实施例中,可以采用静态节点列表存储第一类事件节点和采用动态节点列表存储第二类事件节点,于是,可以获取静态节点列表和动态节点列表以实现获取用于当前目标事件的候选事件节点。值得注意的是,随着时间推移,不同时间点的上一目标事件有所不同,于是,动态节点列表随着时间发生动态变化,存储的是不同时间点对应的上一目标事件在任务树匹配到的事件节点的下一级事件节点。 而一般任务树的根节点的下一级事件节点不发生变化,于是静态节点列表一般不随着时间发生动态变化,保持固定状态。
在本实施例中,获取到候选事件节点之后,将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点。在候选事件节点来源于静态节点列表或者动态节点列表时,则在将当前目标事件与候选事件节点对应的触发事件进行匹配时,可以依次遍历静态节点列表和动态节点列表中的各事件节点;将当前遍历到的事件节点对应的触发事件与当前目标事件进行匹配,若两者匹配,则将当前遍历到的事件节点作为当前目标事件匹配到的目标事件节点。
在本实施例中,目标事件节点的数量可以为一个或多个。对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。对每个目标事件节点,若目标事件节点的下一级节点中包括事件节点,则将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点,以得到用于下一目标事件的候选事件节点。
值得注意的是,在目标事件节点的下一级节点为叶子节点时,说明该叶子节点关联的数据处理任务的触发条件被满足,此时可以进行数据处理任务执行阶段。当然,在目标事件节点的下一级节点为事件节点时,说明尚未满足数据处理任务的触发条件,尚不能执行数据处理任务。针对下一级节点为事件节点的情形,在检测到的当前目标事件与候选事件节点匹配结束之后,需要更新动态节点列表。于是,在一可选实现方式中,每当匹配到一个目标事件节点,对于该目标事件节点的每个下一级节点,判断该下一级节点是否为叶子节点;若该下一级节点为叶子节点,则输出该叶子节点关联的至少一个数据处理任务,以触发至少一个数据处理任务的执行操作;若该下一级节点为事件节点,则将该事件节点添加至动态缓存中;相应地,将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点,包括:在遍历完静态节点列表和动态节点列表中的所有事件节点之后,将动态缓存中的事件节点赋值给动态节点列表,并清空动态缓存。
在本实施例中,在任一叶子节点关联的数据处理任务的触发条件被满足时,根据该触发条件对应的从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
进一步可选的,根据数据处理任务的部署位置,可在移动设备侧或云侧服务器上部署计算容器,利用计算容器执行数据处理任务。其中,该计算容器是跨平台、且支持多端部署、端云一致部署的物理计算引擎,该计算容器可以基于张量计算引擎实现,可选地,张量计算引擎可以是但不限于MNN引擎。其中,MNN引擎的后端(Backends)开发者可以手动编写多份代码适配各个平台硬件来实现跨平台特性,对于机器学习任务开发者在使用时仅需编写一份机器学习任务的代码即可在计算容器支持的各移动设备、云侧服务器上跨平台执行。于是,在一可选实现方式中,根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务的一种实现方式是:将从根节点到叶子节点经过的事件节点匹配到的目标事件的信息作为第一输入数据,并执行库函数从指定历史目标事件的信息中获取第二输入数据;将第一输入数据和第二输入数据形成输入数据序列输入计算容器,计算容器是跨平台的物理计算引擎且部署于移动设备侧;在计算容器内,执行至少一个数据处理任务中的计算实体对输入数据序列进行数据处理并输出数据处理结果。需要说明的是,在数据处理任务是机器学习任务中的前处理任务或后处理任务的情况下,计算容器除了执行数据处理任务之外,还可以负责对机器学习任务中的机器学习模型进行模型推理。在本申请实施例中,并不限定计算容器的具体实现结构,可选的可以采用图1b所示实施例提供的支持端云一致部署的计算容器;该计算容器可以屏蔽各种移动设备之间以及移动设备与云侧设备之间的硬件差异,既可以部署在各种移动设备上,也可以部署在云侧设备上。如图1b所示,该计算容器自上而下包括机器学习任务所依赖的用于动态编程语言的虚拟机(或者称为动态编程语言解释器)、机器学习库和张量计算引擎,并根据触发事件序列,基于虚拟机、机器学习库和张量计算引擎执行机器学习任务;其中,机器学习任务是采用动态编程语言基于机器学习库中的库函数编写的,
机器学习库是基于张量计算引擎提供的模型算子构建的,张量计算引擎提供的模型算子对应多种后端(backends)适配层,用于适配多种硬件资源,以使该张量计算引擎所属计算容器支持跨平台部署。其中,张量计算引擎具有几何计算、半自动搜索等功能,后端适配层是使张量计算引擎适配不同硬件资源的指令集架构的软件层,可选地,可适配的硬件平台指令集架构包括但不限于但不限于:各版本的ARM指令集架构、OpenCL、Vulkan、Metal、X86 AVX、CUDA等。计算容器依赖于其所在云侧设备或移动设备的操作系统和硬件资源进行运行。
进一步可选地,机器学习任务是采用Python语言编写的,相应地,上述虚拟机是用于Python语言的虚拟机,但不限于此。机器学习任务也可以采用JavaScript、Ruby等语言编写,相应地,上述虚拟机是用于JavaScript、Ruby语言的虚拟机。本实施例中的虚拟机实际上是一种用于动态编程语言的解释器。
进一步可选地,本实施例的机器学习任务至少包括模型算法任务,即需要机器学习模型完成的任务,基于此,本申请实施例提供的计算容器执行机器学习任务的过程可以是:在触发事件序列到达时,执行上述动态编程语言解释器,以将机器学习任务解释为多条机器指令,多条机器指令包括与机器学习任务中的模型算法任务对应的第一机器指令;依次执行多条机器指令,在执行到第一机器指令时,调用目标库函数中的第一库函数并执行第一库函数,第一库函数是第一机器指令调用的库函数,用以实现机器学习任务中的模型算法任务;以及在第一库函数涉及张量计算的情况下,调用张量计算引擎,在预先为所述模型算法任务适配出的目标硬件资源上,执行与第一库函数对应的目标模型算子以完成张量计算,其中,目标模型算子是张量计算引擎提供的模型算子中与第一库函数对应的模型算子。
进一步可选地,本实施例的机器学习任务还包括与模型算法任务适配的前处理和/或后处理任务,则上述多条机器指令还包括与机器学习任务中的前处理和/或后处理任务对应的第二机器指令。基于此,计算容器执行机器学习任务的过程还包括:在执行到第二机器指令时,调用动态编程语言解释器提供的第二库函数并执行第二库函数,以完成前处理和/或后处理任务,第二库函数是第二机器指令调用的库函数,用以实现机器学习任务中的前处理和/或后处理任务。
进一步可选地,图1b所示计算容器还用于对外提供基于静态或动态编程语言实现的标准API集合,该标准API集合中的API可通过动态编程语言进行调用,标准API集合包括动态编程语言解释器自带的第一类API和机器学习库透过动态编程语言解释器提供的第二类AP I,以供编写机器学习任务;其中,第一类API用于实现机器学习任务中的前处理逻辑和/或后处理逻辑,第二类API用于实现机器学习任务中的模型算法。换句话说,机器学习任务可以使用第一类API实现前处理和/或后处理任务,并使用第二类API实现模型算法任务。基于此,计算容器执行机器学习任务的过程包括:在触发事件序列到达时,执行动态编程语言解释器,以将机器学习任务解释为多条机器指令;在依次执行多条机器指令的过程中,在执行到与机器学习任务使用的第一类API对应的第二机器指令时,可调用上述动态编程语言解释器提供的第二库函数对触发事件序列进行前处理和/或对模型计算产生的结果数据进行后处理,以及在执行到与机器学习任务使用的第二类API对应的第一机器指令时,调用上述机器学习库中的第一库函数对前处理产生的结果数据进行模型计算;进一步,在第一库函数涉及张量计算的情况下,在预先为所述模型算法任务适配出的目标硬件资源上,执行与所述第一库函数对应的目标模型算子以完成张量计算并在完成模型算法任务之后向上返回模型算法任务产生的结果数据。在一可选实施例中,张量计算引擎为MNN引擎,其中,MNN引擎是一个轻量级的深度学习端侧推理引擎,旨在解决深度神经网络模型在端侧推理运行问题,包含深度神经网络模型的优化、转换和推理,具有高通用性和高性能的特点,支持多种训练框架的模型,常用深度学习算子,多种系统,以及卷积计算方式计算优化等。相应地,机器学习库包括以下至少一种:基于MNN引擎构建的用于模型推理的机器学习库、用于模型训练的机器学习库、用于视觉计算的机器学习库和用于矩阵运算的机器学习库。
进一步可选地,预先为所述模型算法任务适配出目标硬件资源,包括:在所述模型算法任务执行之前,根据所述模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为所述模型算法任务适配出目标硬件资源。
其中,根据所述模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为所述模型算法任务适配出目标硬件资源,包括:根据所述模型算法任务涉及的模型算子及其输入张量形状,计算所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数;根据所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,选择性能参数符合要求的硬件资源作为与所述模型算法任务适配目标硬件资源。
更进一步,根据所述模型算法任务涉及的模型算子及其输入张量形状,计算所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,包括:针对每种后端适配层,在该后端适配层对应的硬件资源上分别执行所述模型算法任务涉及的每个模型算子对应的各种实现算法,以得到每个模型算子在采用各种实现算法时的损失性能分数;将所述模型算法任务涉及的每个模型算子在采用各种实现算法时的损失性能分数中的最小损失性能分数之和,作为所述模型算法任务在所述后端适配层上的性能参数。其中,每个模型算子对应至少一种实现算法,该模型算子在采用不同实现算法时对应的执行性能不同,而且同一模型算子在采用同一实现算法,但是在不通过硬件资源上执行时,对应的执行性能也不同。在本申请实施例中,通过性能损失分数来表征执行性能,性能损失分数越小,执行性能越好。在本申请实施例中,张量计算引擎提供的模型算子包括原子算子、形变算子和组合算子。其中,原子算子是指不能拆分或拆分后性能变差的模型算子,例如包括但不限于:单目算子(Unary、上面已举例);双目算子(Binary)如加减乘除;归约算子(Reduce)(如取极值、求和、平均等)将输入张量在某个方向归约,使其维数降低一维的操作;光栅算子(Raster),用于完成数据在内存中的区域映射(或称为搬运),可通过对其进行自定义设置等效地实现不同的形变效果。形变算子的数量很多,但是对于只进行内存映射而没有计算的算子,可以通过一个光栅算子Raster来实现。光栅算子Raster通过存储输入张量到输出张量的内存映射信息,来实现各种形变算子。而映射关系通过存储内存的偏移(offset),行跨度(stride),大小(size)信息,在光栅算子Raster中通过固定的循环结构来存取数据即可。光栅算子Raster使用区域(Region)来存储变换信息。形变算子例如包括但不限于转置、切片、串联和排列等。复合算子可以分解为原子算子和,例如,复合算子例如包括但不限于:卷积操作、反卷机操作、池化操作、内积操作等操作符。形变算子和组合算子是由原子算子组合或拼装而成的。几何计算负责把形变算子和组合算子拆解/转换为原子算子。它转换形变算子的原理是:先基于算子输入的形状计算算子输出的形状,再基于输入输出的形状和形变规则,计算出一系列线性内存搬运区域,按这些区域去搬运内存,等效于原始的形变算子实现。对于复合算子,可将形变部分提取出来,同样地计算内存搬运的区域,其他的可分解为原子算子。
在本实施例中,指定历史目标事件可以通过时间进行选定,例如,可以是但不限于:目标应用在前一周内发生的目标事件或在前两周内发生的目标事件。
在本实施例中,第一输入数据和第二输入数据例如包括但不限于:事件ID、页面ID、时间戳、时间内容等等。
值得注意的是,结合触发数据处理任务的目标事件的信息和指定历史目标事件共同进行数据处理,可以提高数据处理结果的准确度。当然,实际应用中,也可以仅仅使用触发数据处理任务的目标事件的信息单独进行数据处理,具体可视数据处理任务的任务性质和输入需求而定。
在本实施例中,计算容器还提供有一些库函数,这些库函数是指面向数据处理任务所提供的用于进行全局数据处理且能够实现某种功能或逻辑的算法函数,可选地,这些库函数可以包括上文中用于动态编程语言的虚拟机提供的库函数和机器学习库中的库函数。对库函数进行举例说明,例如可以包括以下至少一种:KeyBy()算子、Time()算子、Filter()算子和Map()算子。其中,KeyBy()算子根据输入数据返回与输入数据相关的输出结果。例如,在KeyBy()算子输入页面ID,能够返回对应页面ID的所有事件序列。Time()算子根据输入的时间间隔返回该时间间隔内的相关数据。例如,Time()算子能够返回时间间隔内的事件序列。一般来说,Time()算子和KeyBy()算子结合使用,例如,Time(10)KeyBy(页面ID),则表示返回10秒钟所有对应页面ID的基础事件。Filter()算子,根据指定的规则将满足条件的数据保留,不满足条件的数据丢弃。例如,Filter(事件ID),即表示过滤该基础事件。Map()算子,根据Map函数将事件中的内容进行处理,产出新事件。例如,Map(MapFunction)则将基础事件的内容进行MapFunction处理,更新该基础事件。基础事件的事件内容有时包含过多信息,可以通过该Map()算子去除不必要的信息,节省存储空间。
在本实施例中,可以采用KeyBy()算子以给定键返回指定历史目标事件的信息中相关事件序列,也可以采用Time()算子以给定时间间隔返回指定历史目标事件的信息中相关事件序列的库函数,也可以采用Filter()算子以给定过滤规则输出指定历史目标事件的信息中满足条件的相关事件序列。
在本实施例中,执行数据处理任务得到的数据处理结果可以根据实际需求灵活使用。可选的,数据处理结果可以提供给与至少一种数据处理任务关联的机器学习模型,以运行机器学习模块。其中,该数据处理任务和机器学习模型可形成机器学习任务部署在移动设备侧或云侧服务器。机器学习任务如果被部署在端侧,可选地,机器学习任务可以由云侧服务器部署到移动设备上。在本实施例中,无论是机器学习任务还是为机器学习任务中的机器学习模型提供数据处理服务的数据处理任务,当其由云侧服务器部署至移动设备侧时,可以由任务部署组件采用复用移动设备上目标应用与应用服务器之间的应用链路进行任务部署,不再建立和维护专门用于机器学习任务或数据处理任务部署的长连接,以及采用推拉结合的方式进行机器学习任务或数据处理任务的任务部署,这两方面结合,既能解决任务管理服务器维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务或数据处理任务的及时触达,使得面向海量移动设备进行机器学习任务或数据处理任务的任务部署得以实现。
图2为本申请实施例提供的支持海量移动设备10的任务部署所适用的一种系统架构图。参见图2,该系统至少可以包括多个移动设备10、应用接入网关20和任务管理服务器30。其中,任务管理服务器30即为上文提到的任务部署组件,该任务部署组件可部署在云侧服务器上,但不限于此。可选的,图2所示系统中的两两设备之间通过有线网络、或者无线网络进行交互。例如,有线网络可以包括同轴电缆、双绞线和光纤等,无线网络可以是2G网络、3G网络、4G网络或者5G网络、无线保真(Wireless Fidelity,简称WIFI)网络等。本申请对交互的具体类型或者具体形式并不做限定,只要其能够实现两两设备之间交互的功能即可。应当理解的是,图2中的移动设备10、应用接入网关20和任务管理服务器30的数量仅仅是示意性的。实际应用中,可以根据实际需求部署任意数量的移动设备10、应用接入网关20和任务管理服务器30。
本申请实施例对移动设备10的设备形态不做限制,移动设备10例如可以是但不限于:手机、平板电脑、可穿戴式智能设备、智能家居设备等,图2中的移动设备10以手机为例示出。在本实施例中,移动设备10上部署有目标应用,目标应用泛指各种依赖机器学习任务的应用,例如可以是购物类应用、视频类应用、直播类应用、游戏类应用、语言处理类应用等等。在本实施例中,目标应用在其运行过程中,还需要与其对应的应用服务器40进行交互,例如响应用户页面浏览、页面跳转或者页面刷新等触发操作,向应用服务器40请求页面数据,或者,在监测到设定上报事件的情况下,主动向应用服务器40上报关联的事件数据,或者,接收应用服务器40主动推送的系统消息、订阅内容、社交互动提醒消息、营销活动消息等。在本实施例的系统中,包括应用接入网关20,该应用接入网关20负责帮助移动设备10上的目标应用与应用服务器40之间进行数据交互。应用接入网关20是指设置在应用层负责在目标应用与应用服务器40之间进行数据交互的应用层网关。在本申请实施例中,应用接入网关20不仅可帮助移动设备10与应用服务器40之间进行数据交互,应用接入网关20还可帮助移动设备10与任务管理服务器30之间进行数据交互,故该应用接入网关20也可以称为代理服务器。其中,应用服务器40是移动设备10中安装的应用程序(Application,APP)对应的服务器。例如,应用服务器40可以是购物APP对应的电商服务器、打车APP对应的管理出行服务的服务器、外卖APP对应的管理餐饮服务的服务器。
在本实施例中,目标应用所需的机器学习任务或数据处理任务需要部署在移动设备10上,负责为目标应用提供数据处理或计算等模型推理功能。例如,在移动端AI应用场景中,端云协同完成任务,例如,处于云端的任务管理服务器30负责AI模型的训练任务、部署和运维监测,处于端侧的移动设备10负责AI模型的推理任务和负责端侧数据流的数据处理任务。其中,AI模型包括但不限于基于机器学习(Machine Learning,ML)的人脸识别AI模型、直播内容理解AI模型和图像处理AI模型。在本实施例中,任务管理服务器30将机器学习任务部署至移动设备10上,以使移动设备10能够基于机器学习任务运行AI模型进行推理。
本申请实施例中,机器学习模型可由任务管理服务器30负责进行模型训练得到,另外,任务管理服务器30还可以生成机器学习模型的配置信息、脚本、模型资源,根据这些信息生成机器学习任务。机器学习任务可以不断更新,可能具有多个版本,对应的机器学习任务也会多有个版本。机器学习任务在任务管理服务器30,但需要该机器学习任务的目标应用部署在移动设备10,这就需要面向移动设备10进行机器学习任务的部署,其中,机器学习任务的部署过程既包括机器学习任务的首次部署过程,也包括机器学习任务更新升级后的更新部署过程。在本实施例中,由任务管理服务器30负责机器学习任务的部署、运维和管理。本申请实施例对任务管理服务器30的设备形态不做限制,任务管理服务器30例如可以是但不限于:为单个服务器或多个服务器组成的分布式服务器集群。进一步可选的,任务管理服务器30可以是云服务器。
其中,根据应用场景的不同,机器学习任务或数据处理任务的部署需求和方式会有所不同。在一些应用场景中,可能需要考虑移动设备10的差异性,针对不同的移动设备10部署不同的机器学习任务或数据处理任务。极端情况下,需要针对每个移动设备10部署不同的机器学习任务或数据处理任务,并且需要做好版本管理和更新,即“千人千模”场景。其中,千人千模泛指每个用户拥有自己独特的机器学习任务或数据处理任务。在本实施例中,任务管理服务器30支持面向海量移动设备10进行个性化任务的部署。
在一些应用场景中,仅考虑因应用场景不同造成机器学习任务或数据处理任务的差异性,不考虑移动设备10的差异性,针对不同的移动设备10部署在同一应用场景下部署相同的机器学习任务或数据处理任务,实现机器学习任务或数据处理任务的统一部署。
值得注意的是,任务管理服务器30采用推拉结合的方式进行任务部署,通过“推”的方式使设备侧获知有新版本的机器学习任务或数据处理任务更新,再通过“拉”的方式由设备侧下载相应的新版本的机器学习任务或数据处理任务对应的任务资源。这种推拉结合的方式充分考虑配置更新数据量小、任务资源数据量大,以及移动APP请求频繁等特点,因此该方案具有架构简单、部署实时性强、任务管理服务器30压力小和支持较大文件部署等优势。
进一步可选的,在“推”的实现方案中,考虑到移动APP网络不可控特性,摒弃了传统长连接通道方案,可以复用移动APP与其对应的应用服务器40之间的应用链路50,该应用链路50例如是HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求通道,在移动设备10通过移动APP向其对应的应用服务器40上传诸如HTTP请求的请求信息时,在诸如HTTP请求的请求信息中携带移动设备10侧的机器学习任务或数据处理任务的当前版本信息;移动设备10侧的机器学习任务或数据处理任务的当前版本信息通过应用接入网关20被转发给任务管理服务器30,任务管理服务器30将本地保存的各个机器学习任务或数据处理任务的版本信息与上传的移动设备10侧的机器学习任务或数据处理任务的当前版本信息进行比对,判断是否有新版本的机器学习任务或数据处理任务可供移动设备10使用,并在判断结果为是时,任务管理服务器30向移动设备10推送有机器学习任务或数据处理任务可进行版本更新的HTTP消息,且在推送的HTTP消息中携带任务资源的资源下载地址,至此,任务管理服务器30完成向移动设备10的任务更新消息推送操作。当然,在判断结果为否时,任务管理服务器30持续监测是否有新的移动设备10侧的机器学习任务或数据处理任务的当前版本信息被上传。
进一步可选的,在“拉”的实现方案中,移动设备10根据任务管理服务器30推送的CDN或CEN资源下载地址从CDN网络60或CEN网络70下载最新版本的任务资源,并根据最新版本的任务资源在移动设备10本地部署新版本的机器学习任务或数据处理任务。由于CDN网络60或CEN网络70本身具有分布式多节点的特点,因此设备侧拉取CDN资源或CEN资源时可以从设备侧附近CDN节点或者CEN节点下载,从而获得比较快的拉取速度。
可选的,在个性化部署场景中,任务管理服务器30在确定目标应用有新版本机器学习任务或数据处理任务的情况下,可拦截应用服务器发送给目标应用的消息,在该消息中添加版本更新通知信息,以借助于该消息向运行有目标应用的移动设备提供版本更新通知信息;该移动设备接收应用服务器发送给目标应用的消息,从该消息中获取版本更新通知信息,根据该版本更新通知信息确定目标应用有新版本的机器学习任务,于是在目标应用发送给应用服务器的消息中添加移动设备对应的个性化信息并将添加个性化信息的消息发送出去,个性化信息包括设备信息和/或用户信息;任务管理服务器30拦截目标应用发送给应用服务器的消息,从消息中获取移动设备的个性化信息,确定与该移动设备适配的个性化任务资源,并再次拦截应用服务器发送给目标应用的另一消息,将指向该个性化任务资源的第一资源下载地址添加至该另一消息中发送给移动设备;移动设备接收到应用服务器发送给目标应用的另一消息时,从该另一消息中获取第一资源下载地址,根据该第一资源下载地址下载该个性化任务资源,并根据该个性化任务资源在本地部署新版本的机器学习任务。
本申请实施例,任务管理服务器30复用移动设备10上应用与应用服务器40之间的应用链路50进行任务部署,不再建立和维护专门用于任务部署的长连接,另一方面采用推拉结合的方式进行任务部署,这两方面结合,既能解决任务管理服务器30维护海量长连接造成的资源浪费和负担较重的问题,又能确保机器学习任务或数据处理任务的及时触达移动设备,使得面向海量移动设备10进行任务部署得以实现。
需要说明的是,本申请实施例还提供一种端云协同处理系统,该系统包括上述实施例提到的任务部署组件(或任务管理服务器30)和计算容器,除此之外,还可以包括数据流处理组件,该数据流处理组件支持端侧部署,可被部署在目标应用所在的移动设备上,用于实现本申请实施例提供的数据流处理方法,关于数据流处理组件的实现框架可参见图3所示实施例的描述。除上述方法实施例之外,本申请实施例还提供一种数据流处理框架(或称为数据流处理组件),该数据流处理框架可位于端侧,用于实现上述方法实施例的流程。需要说明的是,用于实现上述方法实施例的数据流处理框架并不限于图3所示一种,图3所示数据流处理框架仅为示例。为了便于理解,结合图3所示的数据流处理框架对本申请实施例提供的面向移动端的数据流处理方法进行说明。
可选地,本实施例提供的数据流处理框架可以作为目标应用的插件、补丁或者SDK(Software Development Kit,软件开发工具包)实现,供目标应用调用,或者也可以作为目标应用的部分功能模块并随目标应用一并发布,但并限于此。
利用数据流处理框架执行面向移动端的数据流处理方法,能够有效地支持端侧数据流处理需求,例如,能够有效支持搜索推荐场景的多种数据处理需求,比如:1分钟点击序列、下单归因、IPV特征。其中,IPV特征反映商品详情页浏览情况。
利用数据流处理框架执行面向移动端的数据流处理方法,能够在将原有的需要上传至云侧处理的端侧数据改为在端侧计算处理,端侧计算处理产生的中间特征结果上传至云端进行处理,可以有效减少数据上传,保护数据隐私。
在图3中,数据流处理框架、计算容器与移动设备分开仅仅是为了便于理解,数据流处理框架或者计算容器均可以集成至移动设备中。参见图3,数据流处理框架可以包括事件追踪模块和调度模块。事件追踪模块负责追踪移动设备中目标应用运行过程中出现的基础事件流和页面事件流,并将事件追踪结果提供至调度模块。调度模块负责根据部署至移动设备的包括一个或多个数据处理任务的任务列表创建任务树、以及根据事件追踪模块上传的事件追踪结果判断是否有数据处理任务的触发条件被满足,并调用计算容器执行数据处理任务。
在图3中,部署给移动设备的目标应用的任一数据处理任务主要包括任务脚本(也可视为计算实体)和任务配置,任务配置中至少包括触发条件。调度模块根据任务列表以及数据处理任务的触发条件创建任务树,图3示出的任务树从根节点经过事件节点到叶子节点的路径对应一个触发条件,该路径按序连接的事件节点对应的触发事件组成触发条件对应的触发事件序列,叶子节点关联存储满足触发条件的数据处理任务,叶子节点可以关联一个或多个数据处理任务,在叶子节点关联多个数据处理任务时,说明多个数据处理任务的触发条件相同。如图3所示,叶子节点1关联两个数据处理任务,叶子节点2关联一个数据处理任务,叶子节点3关联两个数据处理任务,叶子节点4关联一个数据处理任务,叶子节点5关联两个数据处理任务,叶子节点6关联三个数据处理任务、叶子节点7关联一个数据处理任务。
值得注意的是,构建任务树时,针对共有部分相同触发事件的触发添加,共有部分相同触发事件共有相同的事件节点,不同部分触发事件以子树的根节点为分开起点,分别在子树的根节点后面加入各自不同的事件节点和叶子节点。在图3中事件节点B为根节点的子树为例,从根节点、事件节点、以及事件节点B为叶子节点7和叶子节点2对应的数据触发任务的共有相同的事件节点,事件节点B为子树的根节点,在子树的根节点后面的一个分支上加入了事件节点G、叶子节点2,以构建出叶子节点2对应的数据触发任务的触发条件。在子树的根节点后面的另一个分支上加入了叶子节点7,以构建出叶子节点7对应的数据触发任务的触发条件。
如图3所示,事件追踪模块追踪移动设备上目标应用运行过程中是否产生诸如页面进入事件、页面滚动事件、曝光事件、点击事件、以及页面退出事件等基础事件,并在追踪到上述基础事件时,将基础事件加入至基础事件流,以及基于追踪到的基础事件检测是否出现了新的页面事件,并将页面事件加入至页面事件流。
如图3中2.1所示,事件追踪模块追踪到依次发生了页面ID为D的页面D事件、页面ID为B的页面B事件,则调度模块基于事件追踪模块的追踪结果确定叶子节点7关联的数据处理任务的触发条件被满足,则调度模块调度计算容器执行叶子节点7关联的数据处理任务,得到对应的数据处理结果。
如图3中2.2所示,事件追踪模块追踪到依次发生了页面ID为D的页面D事件、事件ID为f的f事件,则调度模块基于事件追踪模块的追踪结果确定叶子节点5关联的数据处理任务的触发条件被满足,则调度模块调度计算容器执行叶子节点5关联的数据处理任务,得到对应的数据处理结果。
如图3中2.3所示,事件追踪模块追踪到发生事件ID为p的p事件,则调度模块基于事件追踪模块的追踪结果确定叶子节点6关联的数据处理任务的触发条件被满足,则调度模块调度计算容器执行叶子节点6关联的数据处理任务,得到对应的数据处理结果。
值得注意的是,图3中带星号的事件节点可以被设置为关联触发事件,也可以被设置为不关联触发事件;在带星号的事件节点关联触发事件的情形下,带星号的事件节点关联触发事件的数量可以是一个或多个,且带星号的事件节点关联的触发事件不做限制。以叶子节点3对应的路径为例,只要从根节点到叶子节点3依次经过事件节点D对应的页面D事件出现、事件节点f对应的基础事件f出现,无论页面D事件和基础事件f之间是否有任意的触发事件出现,叶子节点3的数据处理任务的触发条件即被满足。值得注意的是,调度模块可以运行以下的程序伪代码,以根据事件追踪模块上传的事件追踪结果判断是否有数据处理任务的触发条件被满足。
调度模块在执行下述程序伪代码时,以事件流为输入,结合任务树的数据,输出触发条件被满足的数据处理任务给计算容器进行后续处理。调度模块基于程序伪代码,维护了一个静态节点列表Ps来存储根节点的下一级事件节点(也即根节点的子节点)和一个动态节点列表Pd来存储上一目标事件在任务树匹配到的事件节点的下一级事件节点。调度模块在动态缓存P d中缓存下一轮的动态节点列表Pd,并在当前轮结束时动态缓存P d中的数据被赋值给动态节点列表Pd
参见第13至15行的程序代码,对静态节点列表Ps、动态节点列表Pd、动态缓存P d分别进行初始化。其中,初始化后的静态节点列表Ps存储的是根节点的子节点,以图3为例,Ps存储的是事件节点A、事件节点D、事件节点E、事件节点p。初始化后的动态节点列表Pd和动态缓存P d为空。
参见第16至25行的程序代码,随着事件流中不断有新事件e产生,针对静态节点列表Ps和动态节点列表Pd中的任一事件节点(node),将新事件e与事件节点(node)对应的触发事件进行匹配,若匹配成功,调用dealWithMatching(e,node)方法产生新的第二类事件节点列表P和已触发的数据处理任务列表T。调度模块输出已触发的数据处理任务T以供计算容器执行,同时,将新的第二类事件节点列表P加入动态缓存P d。在当前新事件与静态节点列表Ps和动态节点列表Pd中的全部事件节点均完成匹配后,也即针对当前新事件的当前匹配任务结束,调度模块将动态缓存P′d赋值给动态节点列表Pd,并清空动态动态缓存P′d,更新后的动态节点列表Pd用于下一个新事件的匹配任务。
以下为示例性的程序伪代码:
Date: a trigger trie Trie // Trie是指触发树(也即任务树)
Input: an event stream Stream // Stream是指事件流
Output: an triggered tasks //触发的数据处理任务
1 Function dealWithMatching(e,node): //该方法将事件e和事件节点(node)对应的触发事件进行匹配
2 initialize T←0 // T指数据处理任务列表,该代码表示初始化T
3 initialize P←0 // P指第二类事件节点列表,该代码表示初始化P
4 foreach child of node do // child of node是指事件节点的子节点
5 if child is an end node then // end node是指叶子节点
6 T←T∪{ tasks in child} // tasks in child是指事件节点的子节点,∪是指求并集
7 else
8 P←P∪{child}
9 end
10 end
11 return(T,P)
12 End Function
/* 静态节点列表Ps、动态节点列表Pd、动态缓存P d*/
13 initialize the static pending list Ps←{all child nodes ofTrie’sroot }
14 initialize the dynamic pending list Pd←0
15 initialize the dynamic pending list buffer P′d←0
/* 匹配与触发*/
16 while get the next event e from Stream do //从事件流中获取下一个新事件e
17 foreach node∈Ps∪Pd do //∈是指属于符号
18 if node matchs e then //新事件e与事件节点(node)对应的触发事件匹配成功
19 (T,P) ←dealWithMatching(e,node)
20 Output the tasks in T//输出T中的数据处理任务
21 P′d←P′d∪P
22 end
23 end
24 Pd←P′d,P′d←0
25end
进一步,参见第1至12行的程序代码,这段程序代码是dealWithMatching(e,node)方法的代码逻辑,初始化数据处理任务列表T,数据处理任务列表T用于存储已触发的数据处理任务,初始化第二类事件节点列表P,第二类事件节点列表P用于存储新的候选事件节点,该新的候选事件节点是指静态节点列表Ps和动态节点列表Pd中与当前新事件匹配成功的事件节点的下一级事件节点(也即子节点)。假如静态节点列表Ps和动态节点列表Pd中与当前新事件匹配成功的事件节点的子节点是叶子节点(也即结束节点),则将叶子节点关联的数据处理任务加入数据处理任务列表T中,以更新数据处理任务列表T。假如静态节点列表Ps和动态节点列表Pd中与当前新事件匹配成功的事件节点的子节点不是叶子节点,则静态节点列表Ps和动态节点列表Pd中与当前新事件匹配成功的事件节点的子节点加入至第二类事件节点列表P,以更新第二类事件节点列表P。
以图3所示的任务树为例,静态节点列表Ps存储的是事件节点A(对应的触发事件为页面A事件)、事件节点D(对应的触发事件为页面D事件)、事件节点E(对应的触发事件为页面E事件)、事件节点p(对应的触发事件为基础事件p)。初始化后的动态节点列表Pd和动态缓存P d为空。
在目标应用程序运行过程中,首先事件追踪模块追踪到页面D事件,调度模块将页面D事件同静态节点列表Ps和动态节点列表Pd中的事件节点进行匹配,与页面D事件匹配成功的是静态节点列表Ps中的事件节点D,由于事件节点D的子节点不是叶子节点,事件节点D的子节点分为为事件节点B和带星号的事件节点, 将事件节点B和带星号的事件节点加入至动态缓存P d中,在将页面D事件同静态节点列表Ps和动态节点列表Pd中的事件节点进行全部匹配后,将动态缓存P d中的事件节点B和带星号的事件节点加入至动态节点列表Pd,清空动态缓存P d。此时,动态节点列表Pd存储的是事件节点B和带星号的事件节点。
接着,随着时间推移,事件追踪模块在追踪页面D事件后又追踪到页面B事件,调度模块将页面B事件同静态节点列表Ps和动态节点列表Pd中的事件节点进行匹配,与页面B事件匹配成功的是动态节点列表Pd中的事件节点B,事件节点B的子节点为事件节点G,由于事件节点G不是叶子节点,将事件节点G加入至动态缓存P d中,在将页面B事件同静态节点列表Ps和动态节点列表Pd中的事件节点进行全部匹配后,将动态缓存P d中的事件节点G加入至动态节点列表Pd,清空动态缓存P d。此时,动态节点列表Pd存储的是事件节点G。
接着,随着时间推移,事件追踪模块在追踪页面D事件页面B事件之后又追踪到事件节点G,调度模块将页面G事件同静态节点列表Ps和动态节点列表Pd中的事件节点进行匹配,与页面G事件匹配成功的是动态节点列表Pd中的事件节点G,事件节点G的子节点为叶子节点2,输出叶子节点2的数据处理任务至计算容器进行计算处理。以及将动态缓存P和动态节点列表Pd赋值为空,也即此时动态缓存P和动态节点列表Pd均不存在事件节点,返回至初始化状态。
在一种应用场景中,目标应用为购物类APP,机器学习任务为用于向用户进行个性化商品推荐的商品推荐模型。在云侧资源上,预先训练出与每个用户适配的商品推荐模型,并采用上述实施例提供的个性化部署方法将商品推荐模型部署到用户使用的购物类APP中,与此同时,该购物类APP包括上述实施例提供的数据流处理框架和计算容器,随着用户在购物类APP上的浏览、点击、查看商品详情、查看商品评论以及加购物车等各种操作,数据流处理框架采集并生成各种基础事件,当商品推荐模型对应的触发事件序列产生时,例如每当用户点击进入新页面时,触发计算容器执行商品推荐模型;计算容器加载该商品推荐模型并采用上述实施例提供的方法运行该商品推荐模型,最终输出推荐给用户的目标商品,并由购物类APP将推荐的目标商品展示在相关页面上,以供用户查看和选购。
在另一种应用场景中,目标应用为直播类APP,机器学习任务为对直播内容进行打标的打标处理模型。在云侧资源上,预先训练出打标处理模型,并采用上述实施例提供的个性化部署方法将打标处理模型部署到主播使用的直播类APP中,与此同时,该直播类APP包括上述实施例提供的数据流处理框架和计算容器,随着直播过程的进程,不断生成直播内容,该直播内容包括直播画面和直播语音,数据流处理框架不断对直播过程中的事件进行处理,生成打标处理模型的触发事件序列,例如每当主播发生停顿事件时,触发计算容器执行打标处理模型;计算容器会加载该打标处理模型并采用上述实施例提供的方法运行该打标处理模型,最终在直播内容中的关键内容上添加标记,并输出带有标记信息的直播内容,以供直播服务端对带有标记信息的直播内容做进一步处理。打标内容可以是一些隐私信息,重要信息或者特定商品信息等。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤104的执行主体可以为设备A;又比如,步骤101和102的执行主体可以为设备A,步骤103和104的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4为本申请实施例提供的一种面向移动端的数据流处理装置的结构示意图。参见图4,该装置可以包括:
生成模块41,用于预先生成目标应用对应的任务树,任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应;
获取模块42,用于在目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点;
匹配模块43,用于将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;
执行模块44,用于对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
进一步可选的,匹配模块43,还用于:对每个目标事件节点,若目标事件节点的下一级节点中包括事件节点,则将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点,以得到用于下一目标事件的候选事件节点。
进一步可选的,获取模块42获取用于当前目标事件的候选事件节点时,具体用于:获取静态节点列表和动态节点列表,静态节点列表中存储有第一类事件节点,动态节点列表中存储有第二类事件节点;
相应地,匹配模块43将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点时,具体用于:依次遍历静态节点列表和动态节点列表中的各事件节点;将当前遍历到的事件节点对应的触发事件与当前目标事件进行匹配,若两者匹配,则将当前遍历到的事件节点作为当前目标事件匹配到的目标事件节点。
进一步可选的,匹配模块43,还用于:每当匹配到一个目标事件节点,对于该目标事件节点的每个下一级节点,判断该下一级节点是否为叶子节点;若该下一级节点为叶子节点,则输出该叶子节点关联的至少一个数据处理任务,以触发至少一个数据处理任务的执行操作;若该下一级节点为事件节点,则将该事件节点添加至动态缓存中;
相应地,匹配模块43将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点时,具体用于:在遍历完静态节点列表和动态节点列表中的所有事件节点之后,将动态缓存中的事件节点赋值给动态节点列表,并清空动态缓存。
进一步可选的,当前目标事件为基础事件和/或页面事件,获取模块42,还用于:响应用户在目标应用运行过程中发起的交互操作,获取交互操作产生的基础事件,将基础事件添加至基础事件流中,并将基础事件作为当前目标事件,基础事件为预设事件类型中的一类事件;和/或判断基础事件是否为页面进入事件;若基础事件为页面进入事件,则根据基础事件的标识和基础事件所属页面的标识构建页面事件,并将页面事件作为当前目标事件。
进一步可选的,生成模块41,还用于当有新的数据处理任务被部署时,获取新的数据处理任务对应的触发事件序列,作为待匹配的触发事件序列,并将待匹配的触发事件序列中的触发事件按序与任务树上各事件节点对应的触发事件进行匹配;若匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,将新的数据处理任务与目标路径对应的叶子节点进行关联;若未匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,以最后一个匹配成功的事件节点为子树的根节点,为待匹配的触发事件序列中未匹配中的触发事件构建子树,并将新的数据处理任务与子树的叶子节点进行关联。
进一步可选的,生成模块41,还用于在将待匹配的触发事件序列中的触发事件按序与任务树上的各事件节点对应的触发事件进行匹配之前,在待匹配的触发事件序列的首部和尾部分别添加起始标记和结束标记,起始标记用于对应任务树的根节点,结束标记用于对应任务树上的叶子节点,位于起始标记和结束标记之间的触发事件用于对应任务树上的事件节点。
进一步可选的,执行模块44根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务时,具体用于:将从根节点到叶子节点经过的事件节点匹配到的目标事件的信息作为第一输入数据,并执行库函数从指定历史目标事件的信息中获取第二输入数据;将第一输入数据和第二输入数据形成输入数据序列输入计算容器,计算容器是跨平台的物理计算引擎且部署于移动设备侧;在计算容器内,执行至少一个数据处理任务中的计算实体对输入数据序列进行数据处理并输出数据处理结果。
进一步可选的,执行模块44,还用于:将数据处理结果提供给与至少一种数据处理任务关联的机器学习模型,以运行机器学习模型,机器学习模型与数据处理任务形成机器学习任务,机器学习任务部署在移动设备侧或云侧。
图4的面向移动端的数据流处理装置可以执行图1a所示实施例的面向移动端的数据流处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的面向移动端的数据流处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5为本申请实施例提供的一种计算机设备的结构示意图。如图5所示,该装置包括:存储器51和处理器52;
存储器51,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器52,与存储器51耦合,用于执行存储器51中的计算机程序,以用于:预先生成目标应用对应的任务树,该任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应;当目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点;将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
进一步可选的,处理器52还用于:对每个目标事件节点,若目标事件节点的下一级节点中包括事件节点,则将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点,以得到用于下一目标事件的候选事件节点。
进一步可选的,处理器52获取用于当前目标事件的候选事件节点时,具体用于:获取静态节点列表和动态节点列表,静态节点列表中存储有第一类事件节点,动态节点列表中存储有第二类事件节点;
相应地,处理器52将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点时,具体用于:依次遍历静态节点列表和动态节点列表中的各事件节点;将当前遍历到的事件节点对应的触发事件与当前目标事件进行匹配,若两者匹配,则将当前遍历到的事件节点作为当前目标事件匹配到的目标事件节点。
进一步可选的,处理器52还用于:每当匹配到一个目标事件节点,对于该目标事件节点的每个下一级节点,判断该下一级节点是否为叶子节点;若该下一级节点为叶子节点,则输出该叶子节点关联的至少一个数据处理任务,以触发至少一个数据处理任务的执行操作;若该下一级节点为事件节点,则将该事件节点添加至动态缓存中;
相应地,处理器52将目标事件节点的下一级事件节点作为新的第二类事件节点替换候选事件节点中原有的第二类事件节点时,具体用于:在遍历完静态节点列表和动态节点列表中的所有事件节点之后,将动态缓存中的事件节点赋值给动态节点列表,并清空动态缓存。
进一步可选的,当前目标事件为基础事件和/或页面事件,处理器52还用于:响应用户在目标应用运行过程中发起的交互操作,获取交互操作产生的基础事件,将基础事件添加至基础事件流中,并将基础事件作为当前目标事件,基础事件为预设事件类型中的一类事件;和/或
判断基础事件是否为页面进入事件;若基础事件为页面进入事件,则根据基础事件的标识和基础事件所属页面的标识构建页面事件,并将页面事件作为当前目标事件。
进一步可选的,处理器52还用于当有新的数据处理任务被部署时,获取新的数据处理任务对应的触发事件序列,作为待匹配的触发事件序列,并将待匹配的触发事件序列中的触发事件按序与任务树上各事件节点对应的触发事件进行匹配;若匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,将新的数据处理任务与目标路径对应的叶子节点进行关联;若未匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,以最后一个匹配成功的事件节点为子树的根节点,为待匹配的触发事件序列中未匹配中的触发事件构建子树,并将新的数据处理任务与子树的叶子节点进行关联。
进一步可选的,处理器52还用于在将待匹配的触发事件序列中的触发事件按序与任务树上的各事件节点对应的触发事件进行匹配之前,在待匹配的触发事件序列的首部和尾部分别添加起始标记和结束标记,起始标记用于对应任务树的根节点,结束标记用于对应任务树上的叶子节点,位于起始标记和结束标记之间的触发事件用于对应任务树上的事件节点。
进一步可选的,处理器52根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务时,具体用于:将从根节点到叶子节点经过的事件节点匹配到的目标事件的信息作为第一输入数据,并执行库函数从指定历史目标事件的信息中获取第二输入数据;将第一输入数据和第二输入数据形成输入数据序列输入计算容器,计算容器是跨平台的物理计算引擎且部署于移动设备侧;在计算容器内,执行至少一个数据处理任务中的计算实体对输入数据序列进行数据处理并输出数据处理结果。
进一步可选的,处理器52还用于:将数据处理结果提供给与至少一种数据处理任务关联的机器学习模型,以运行机器学习模型,机器学习模型与数据处理任务形成机器学习任务,机器学习任务部署在移动设备侧或云侧。
关于处理器执行各动作的详细实施过程可参见前述方法实施例或设备实施例中的相关描述,在此不再赘述。
进一步,如图5所示,该计算机设备还包括:通信组件53、显示器54、电源组件55、音频组件56等其它组件。图5中仅示意性给出部分组件,并不意味着计算机设备只包括图5所示组件。另外,图5中虚线框内的组件为可选组件,而非必选组件,具体可视排产设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的计算机设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图5中虚线框内的组件;若本实施例的计算机设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图5中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算机设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中可由计算机设备执行的各步骤。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种面向移动端的数据流处理方法,应用于安装有目标应用的移动设备,其特征在于,所述方法包括:
预先生成目标应用对应的任务树,所述任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且所述至少一个数据处理任务对应触发事件序列中的触发事件与从所述根节点到该叶子节点经过的事件节点按序对应;
当所述目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,所述候选事件节点包括第一类事件节点和第二类事件节点,所述第一类事件节点为根节点的下一级事件节点,所述第二类事件节点为上一目标事件在所述任务树匹配到的事件节点的下一级事件节点;
将当前目标事件与所述候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;
对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从所述根节点到所述叶子节点经过的事件节点匹配到的目标事件的信息,执行所述叶子节点关联的至少一个数据处理任务。
2.根据权利要求1所述的方法,其特征在于,还包括:
对每个目标事件节点,若所述目标事件节点的下一级节点中包括事件节点,则将所述目标事件节点的下一级事件节点作为新的第二类事件节点替换所述候选事件节点中原有的第二类事件节点,以得到用于下一目标事件的候选事件节点。
3.根据权利要求2所述的方法,其特征在于,获取用于当前目标事件的候选事件节点,包括:获取静态节点列表和动态节点列表,所述静态节点列表中存储有第一类事件节点,所述动态节点列表中存储有第二类事件节点;
相应地,将当前目标事件与所述候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点,包括:
依次遍历所述静态节点列表和动态节点列表中的各事件节点;将当前遍历到的事件节点对应的触发事件与当前目标事件进行匹配,若两者匹配,则将当前遍历到的事件节点作为当前目标事件匹配到的目标事件节点。
4.根据权利要求3所述的方法,其特征在于,还包括:
每当匹配到一个目标事件节点,对于该目标事件节点的每个下一级节点,判断该下一级节点是否为叶子节点;若该下一级节点为叶子节点,则输出该叶子节点关联的至少一个数据处理任务,以触发所述至少一个数据处理任务的执行操作;若该下一级节点为事件节点,则将该事件节点添加至动态缓存中;
相应地,将所述目标事件节点的下一级事件节点作为新的第二类事件节点替换所述候选事件节点中原有的第二类事件节点,包括:在遍历完所述静态节点列表和动态节点列表中的所有事件节点之后,将所述动态缓存中的事件节点赋值给所述动态节点列表,并清空所述动态缓存。
5.根据权利要求1所述的方法,其特征在于,当前目标事件为基础事件和/或页面事件,所述基础事件是指随着移动设备中用户操作产生的原始事件,所述基础事件包括页面进入事件、页面退出事件、滚动事件、点击事件和曝光事件中至少一种,所述方法还包括:
响应用户在目标应用运行过程中发起的交互操作,获取所述交互操作产生的基础事件,将所述基础事件添加至基础事件流中,并将所述基础事件作为当前目标事件,所述基础事件为预设事件类型中的一类事件;和/或
判断所述基础事件是否为页面进入事件;若所述基础事件为页面进入事件,则根据所述基础事件的标识和所述基础事件所属页面的标识构建页面事件,并将所述页面事件作为当前目标事件。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
当有新的数据处理任务被部署时,获取新的数据处理任务对应的触发事件序列,作为待匹配的触发事件序列,并将所述待匹配的触发事件序列中的触发事件按序与所述任务树上各事件节点对应的触发事件进行匹配;
若匹配到与所述待匹配的触发事件序列中的触发事件按序对应的目标路径,将所述新的数据处理任务与所述目标路径对应的叶子节点进行关联;
若未匹配到与所述待匹配的触发事件序列中的触发事件按序对应的目标路径,以最后一个匹配成功的事件节点为子树的根节点,为所述待匹配的触发事件序列中未匹配中的触发事件构建子树,并将所述新的数据处理任务与所述子树的叶子节点进行关联。
7.根据权利要求6所述的方法,其特征在于,在将所述待匹配的触发事件序列中的触发事件按序与所述任务树上的各事件节点对应的触发事件进行匹配之前,还包括:
在所述待匹配的触发事件序列的首部和尾部分别添加起始标记和结束标记,所述起始标记用于对应所述任务树的根节点,所述结束标记用于对应所述任务树上的叶子节点,位于所述起始标记和结束标记之间的触发事件用于对应所述任务树上的事件节点。
8.根据权利要求1-5任一项所述的方法,其特征在于,根据从所述根节点到所述叶子节点经过的事件节点匹配到的目标事件的信息,执行所述叶子节点关联的至少一个数据处理任务,包括:
将从所述根节点到所述叶子节点经过的事件节点匹配到的目标事件的信息作为第一输入数据,并执行库函数从指定历史目标事件的信息中获取第二输入数据;
将所述第一输入数据和所述第二输入数据形成输入数据序列输入计算容器,所述计算容器是跨平台的物理计算引擎且部署于移动设备侧;
在所述计算容器内,执行所述至少一个数据处理任务中的计算实体对所述输入数据序列进行数据处理并输出数据处理结果。
9.根据权利要求8所述的方法,其特征在于,所述库函数包括以下至少一种:
以给定键返回所述指定历史目标事件的信息中相关事件序列的库函数;
以给定时间间隔返回所述指定历史目标事件的信息中相关事件序列的库函数;
以给定过滤规则输出所述指定历史目标事件的信息中满足条件的相关事件序列的库函数;
以给定处理函数对所述指定历史目标事件的信息进行处理并产生新事件信息的库函数。
10.根据权利要求8所述的方法,其特征在于,还包括:
将所述数据处理结果提供给与所述至少一种数据处理任务关联的机器学习模型,以运行所述机器学习模型,所述机器学习模型与所述数据处理任务形成机器学习任务,所述机器学习任务部署在所述移动设备侧或云侧。
11.一种面向移动端的数据流处理装置,其特征在于,包括:
生成模块,用于预先生成目标应用对应的任务树,所述任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个数据处理任务,且至少一个数据处理任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应;
获取模块,用于在所述目标应用产生当前目标事件发生时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,所述第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点;
匹配模块,用于将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点;
执行模块,用于对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个数据处理任务。
12.一种计算机设备,其特征在于,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求1-10任一项所述方法中的步骤。
13.一种存储有计算机程序的计算机存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器能够实现权利要求1-10任一项所述方法中的步骤。
CN202210126305.1A 2022-02-10 2022-02-10 一种面向移动端的数据流处理方法及设备 Active CN114168601B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210126305.1A CN114168601B (zh) 2022-02-10 2022-02-10 一种面向移动端的数据流处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210126305.1A CN114168601B (zh) 2022-02-10 2022-02-10 一种面向移动端的数据流处理方法及设备

Publications (2)

Publication Number Publication Date
CN114168601A CN114168601A (zh) 2022-03-11
CN114168601B true CN114168601B (zh) 2022-07-22

Family

ID=80489775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210126305.1A Active CN114168601B (zh) 2022-02-10 2022-02-10 一种面向移动端的数据流处理方法及设备

Country Status (1)

Country Link
CN (1) CN114168601B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115729642B (zh) * 2022-11-16 2023-09-19 北京志凌海纳科技有限公司 基于状态机处理用户行为的方法、系统、设备及存储介质
CN118312557A (zh) * 2023-01-09 2024-07-09 腾讯科技(深圳)有限公司 事件序列数据的显示方法、装置、终端设备及存储介质
CN118193590B (zh) * 2024-01-26 2024-09-13 湖北消费金融股份有限公司 基于流式计算的业务数据处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101707543A (zh) * 2009-11-30 2010-05-12 北京中科大洋科技发展股份有限公司 一种支持多任务类型的企业媒体总线系统和方法
CN111274274A (zh) * 2020-02-06 2020-06-12 北京百度网讯科技有限公司 规则匹配方法、装置、电子设备及存储介质
CN111581069A (zh) * 2020-04-30 2020-08-25 北京三快在线科技有限公司 一种数据处理方法及装置
CN113497722A (zh) * 2020-03-20 2021-10-12 阿里巴巴集团控股有限公司 数据处理、数据下载、流媒体控制方法、设备及介质
CN113641712A (zh) * 2021-08-20 2021-11-12 平安银行股份有限公司 复杂事件的命中处理方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301134B2 (en) * 2017-10-26 2022-04-12 International Business Machines Corporation Using attack trees to reduce memory consumption by rule engines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101707543A (zh) * 2009-11-30 2010-05-12 北京中科大洋科技发展股份有限公司 一种支持多任务类型的企业媒体总线系统和方法
CN111274274A (zh) * 2020-02-06 2020-06-12 北京百度网讯科技有限公司 规则匹配方法、装置、电子设备及存储介质
CN113497722A (zh) * 2020-03-20 2021-10-12 阿里巴巴集团控股有限公司 数据处理、数据下载、流媒体控制方法、设备及介质
CN111581069A (zh) * 2020-04-30 2020-08-25 北京三快在线科技有限公司 一种数据处理方法及装置
CN113641712A (zh) * 2021-08-20 2021-11-12 平安银行股份有限公司 复杂事件的命中处理方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"CEStream:一种复杂事件流处理语言";王亦雄 等;《计算机科学》;20170415;第140-143+164页 *
PMTree:一种高效的事件流模式匹配方法;程苏等;《计算机研究与发展》;20121115(第11期);第213-225页 *

Also Published As

Publication number Publication date
CN114168601A (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN114168601B (zh) 一种面向移动端的数据流处理方法及设备
Barik et al. Fog assisted cloud computing in era of big data and internet-of-things: systems, architectures, and applications
US10853847B2 (en) Methods and systems for near real-time lookalike audience expansion in ads targeting
US11005965B2 (en) Contextual services in a network using a deep learning agent
US20240256926A1 (en) Bias scoring of machine learning project data
CN114172908B (zh) 一种端云协同处理方法及设备
CN108664331A (zh) 分布式数据处理方法及装置、电子设备、存储介质
CN114168177B (zh) 一种支持海量移动设备的个性化任务处理方法及设备
US11030240B1 (en) Systems and methods for efficiently sending video metadata
US11681752B2 (en) Systems and methods for searching for events within video content
Diyan et al. Intelligent Internet of Things gateway supporting heterogeneous energy data management and processing
US20230205817A1 (en) Systems and methods for identifying events within video content using intelligent search query
Alexandru et al. Shaping the digital citizen into a smart citizen on the basis of iot capabilities
US11328205B2 (en) Generating featureless service provider matches
Tran et al. Yet another method for heterogeneous data fusion and preprocessing in proactive decision support systems: distributed architecture approach
US20230244996A1 (en) Auto adapting deep learning models on edge devices for audio and video
CN114730316A (zh) 用于以电子方式生成电子信息的动态可视层次化表示的计算机化系统和方法
CN112035256A (zh) 一种资源分配方法、装置、电子设备及介质
CN114168446B (zh) 一种面向移动端运行算法模型的模拟评测方法及设备
CA3153903A1 (en) Event detection in a data stream
US11777808B2 (en) Method and system for providing an end-to-end asset hierarchy
CN112311842A (zh) 用于信息交互的方法和装置
Mahalle et al. Architecture for context-aware systems
Lakshman Narayana et al. An intelligent iot framework for handling multidimensional data generated by iot gadgets
US20240086188A1 (en) Automatic navigation between reference architecture and code repository

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
GR01 Patent grant
GR01 Patent grant