具体实施方式
下面参照附图对本公开的部分实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同的附图标记用于相同或相似的功能、器件和/或操作。此外,在附图中,各部分并不一定按比例来绘制。换言之,附图中的各部分的相对大小、长度等并不一定与实际比例相对应。此外,在本公开一些实施例中描述的全部或部分特征也可被应用于其他实施例中以形成依然落入本申请范围内的新的实施例。
此外,本公开并不局限于所涉及的设备的各个具体通信协议,包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA系统等,不同的设备可以采用相同的通信协议,也可以采用不同的通信协议。此外,本公开并不局限于设备的具体操作系统,可以包括(但不限于)iOS、Windows Phone、Symbian(塞班)、Android(安卓)、Linux、Unix、Windows、MacOS等,不同的设备可以采用相同的操作系统,也可以采用不同的操作系统。
尽管下文中将主要结合数据转售商之类的具体场景来说明根据本公开实施例的用于检测异常数据的方案,然而本公开不限于此。事实上,本公开的实施例在经过恰当的调整和修改的情况下,也可以适用于其他各种需要检测具有特定模式的数据,例如检测高价值客户等。换言之,只要是需要确定数据之间的模式差异的场景,都可以使用根据本公开实施例的方案。
图1A和1B是分别示出了在使用根据本公开实施例的恶意用户识别方案之前和之后的示例应用场景10的示意图。如图1A和1B所示,数据提供商(也称为数据供应商)100收集公共和/或专有数据并将其编入可搜索的数据库中,并为其用户110-1、110-2等(下文中,当不需要特别提及时,统称为用户110)提供各种领域的服务,例如金融和学术研究领域。数据提供商100的关键附加值在于例如提供数据整合、数据清理、数据更新、以及结构化的查询接口。例如,彭博社的用户可以通过使用手动命令或脚本化API来查询实时财经数据。
因此,对于数据提供商100来说重要的是通过仅允许恰当使用其数据的用户110来保护其数据安全。尽管不同的数据提供商100对数据的“恰当使用”可能具有不同的定义,但是通常都会认为“数据转售”行为是不可接受的数据使用方式。一般来说,数据转售商(下文中有时简称为DR,即Data Reseller)120可通过查询API从数据提供商100抓取大量数据,并将其加以转售或二次销售,或提供其自己的数据查询服务。例如,如图1A所示,数据转售商120通过例如从数据提供商100处付费下载大量数据,并将其低价转售给其它用户110-2以及可能的大量其它用户。如前所述,这种数据转售行为将导致数据提供商100的利益或潜在利益受损以及侵犯了数据提供商100的版权。在目前常见的实际场景中,数据提供商100通常无法预防数据转售商120的数据转售行为,只能是在数据转售商120大量转售数据之后,通过各种可能渠道偶然发现其转售行为并加以制止。在这种情况下,数据提供商100的损失通常已经造成且很难挽回。因此,有必要向数据提供商提供一种能够准确识别这种恶意行为的方案。这种方案应当使得数据提供商100有可能在数据转售商120持续下载其数据时就发现问题,并提前采取措施。例如,如图1B所示,数据提供商100在采用根据本公开实施例的识别异常数据的方案的情况下,可及时发现数据转售商120的异常的下载记录数据,并在其对自身造成进一步的损失之前采取对应措施,例如封停数据转售商120的账号、发律师函、起诉等。
然而,需要注意的是:识别数据转售商120这一问题(也可以被称为“反数据转售(anti-data-reselling,简称为ADR)”问题)不同于反网络抓取(anti-web-crawling,简称为AWC)问题。现有的AWC方案关注于分析网络访问模式,以用于区分自动网络抓取器和正常人类用户,或者用于检测针对安全漏洞的恶意抓取器(例如,用于抵御分布式拒绝服务(DDoS)攻击)。
然而,这些针对AWC问题的技术对于ADR问题来说并没有实际意义。AWC的一个关键目标在于区分机器和人类,而很多数据提供商100提供了基于API的查询服务以支持机器执行的脚本。换言之,数据提供商100应当允许各种类型的机器查询服务,以例如支持股票市场的高频交易、量化交易等自动化的机器操作。因此,解决ADR问题的关键在于如何区分特定类型的异常数据获取行为,而不是该行为是否是被编程的机器来执行的还是人类来执行的。就此而言,ADR问题更多关注的是“为什么要获取该数据”,而不是AWC问题中的“如何获取该数据”,从而使得ADR问题比AWC问题更难以解决。从技术上说,AWC问题中在识别机器人时经常依赖于分析短期行为,而ADR问题更关注于较长期的行为模式。
实际上,很难精确地识别数据转售商120。为此,一些数据提供商100可通过使用简单的规则来试图限制这种恶意行为,例如设置单位时间内的数据查询量等等。然而,现代应用可能需要大量的数据。例如,一些自动化交易程序使用大量的数据查询来跟踪一系列股票的实时价格和历史价格等。如果用户110为查询服务付出费用,但是又受限于数据查询量,那么用户体验可能会非常糟糕。从而,需要一种更精细设置的特征和/或模型来区分DR120与正常的重度数据使用者110。此外,作为本领域中的实际情况,很少有数据提供商100能够提供具有恰当标签的模型训练数据。换言之,不得不尽可能多地使用无监督学习技术。
为了更精确地识别出DR 120,并使得DR 120难以通过改变其行为模式来避免被检测到,因此需要找到DR 120的本质特征,这种本质特征是其不能或非常难于改变的。根据本公开的教导,DR 120通常具有以下几点本质特征或本质行为模式。
首先,对于DR 120来说,其不可避免的需要从数据提供商100下载海量数据。换言之,即便是DR 120,如果其下载非常少量的数据,其对于数据提供商100的危害也不大。需要注意的是:尽管DR 120必然要下载海量数据,然而下载海量数据的用户110(即,重度数据用户)却不一定是DR 120。例如,对于需要进行高频交易、机器交易之类的用户110,他们也需要通过计算机从数据提供商100处获取大量的实时股票数据,对于合法用户110来说这是应当被允许的。
其次,对于DR 120来说其需要获取各种各样的数据,而不像一般用户110那样专注于反复获取少数几类或几项数据。这是因为一般用户110经常更关注于某些特定数据项(例如,特定的一系列股票或特定的学科),而DR 120通常需要更多类型的数据来进行转卖盈利活动。然而需要注意的是:数据跨度或范围本身并不一定导致某个用户110被怀疑为DR120。例如,一般用户110有可能进行数据调研活动,该数据调研可能要求获取各种各样的数据。
再次,DR 120通常需要周期性地查询数据,以更新其要转售的数据库,且因此在其数据获取行为上或多或少会存在一定的周期模式。
需要注意的是:上面提到的这些针对DR 120行为模式的分析并不构成对本公开的限制,而仅仅是为了说明DR 120所可能具有的行为模式。换言之,完全可以根据DR 120的其它行为模式和/或与上述行为特征的结合等来构建如下面所将详细描述的特征。此外,上述行为模式的重要性也并不是按照上面描述的顺序来排列的,而应当是不受到该顺序的限制的。换言之,这些行为模式的重要性应当根据下文中描述的实际数据来确定。
在一些实施例,可以基于上述行为模式来提出一种用于识别DR 120的系统性方法,其结合了特征工程(feature engineering)技术和有监督/无监督学习技术,以解决前述ADR问题。考虑到不失一般性,可以将上述用于识别DR 120的方法归纳为用于识别异常数据的方法。在识别DR领域中,异常数据可以指的是DR 120从数据提供商100下载数据时所留下的下载记录数据,例如数据提供商100所保存的数据获取日志等。通过将该DR 120的异常数据从数据提供商100的所有用户的所有数据中识别出来,就可以确定DR 120的异常下载行为。
图2是示出了根据本公开实施例的用于检测异常数据的示例方法200的总体流程图。具体到DR识别问题上,根据本公开实施例的用于识别DR 120(异常数据)的方法200可包括以下几个步骤。
(1)步骤S210:特征创建
例如,在一些实施例中,可首先至少基于上述三个DR 120的行为模式(以及可能的其他DR行为模式),构建涵盖DR行为模式(例如,查询数据量、分布、时间、周期性和突发度(burstiness))的若干个特征(下文中可被称为“候选特征”)。该步骤的目标在于从尽可能多的维度上涵盖前述DR行为模式,并且应当在计算复杂度尽可能低的情况下提供尽可能多的冗余,以使得DR 120难以规避这些特征中的至少一些特征。下文中,将结合图3来详细描述该步骤。
(2)步骤S220:特征选择
然而,需要注意的是:在目前的实践中,并没有来自数据提供商100的关于DR行为模式的明确或成熟的定义。因此,在一些实施例中,可以使用通过示例来学习(learn-by-example)的算法,并且基于较少的观察到的DR样本来自动选择前述阶段中所构造的特征中的特征子集(下文中可被称为“有效特征”),以能够用于识别DR 120。因此,本步骤的目标在于通过上述较少的DR样本来自动学习到DR 120的定义。下文中,将结合图4来详细描述该步骤。
(3)步骤S230:DR 120(异常)识别
在本步骤中,可使用前述步骤中选择的特征子集(即,有效特征)对待监测的用户110的行为数据(包括DR 120的行为数据在内)进行无监督异常值检测(unsupervisedoutlier detection)算法(或者在存在反馈标签的情况下的有监督异常值检测算法),以将少数的DR 120与多数的一般用户110加以区分,从而实现对DR 120的准确识别。下文中,将结合图5来详细描述该步骤
此外,鉴于目前数据提供商100本身也并没有大量的与DR有关的反馈信息,因此在难以对检测结果正确与否加以量化的情况下,可以对导致检测结果的各项特征数据加以解释,并请数据提供商100的安全专家加以评估,以形成对检测正确与否的反馈。
以下,将结合特定使用场景来说明根据本公开实施例的用于识别DR 120的方案。在该特定场景中,将以作为数据提供商100的某财经信息服务提供商为例,其具有上万个付费用户110,并且提供与例如股票、债券、外汇、经济指数等有关的数据信息。然而,需要注意的是:本公开实施例不限于这一具体应用场景,而是可以适用于任何需要识别DR 120的应用场景,或更一般地任何需要识别异常用户行为的应用场景。例如,在一些实施例中,可以将高价值用户(例如,从该用户获取的单位利润值相对高)视为异常用户并对其加以识别。
作为示例,该数据提供商100提供了五个数据库DA~DE,表1示出了其归一化后的数据。
表1数据库详情
需要注意的是:上述表格仅为数据库的示例,且其中的数字均是以DE的用户数量为标准进行归一化后的数据。在表1所示示例中,DA包含了一个月时间内的查询历史。此外,为了下文中描述的简洁且不失一般性,将以“键值(key)”来指代数据库中的相应数据项。此外,尽管数据库中的每个数据项包括很多字段,但在本申请的具体实施例中,将仅关注以下几项:account_id(账户ID)、query_time(查询时间)、queried_DB(所查询的数据库)和queried_indices(所查询的索引)。需要注意的是:本公开不限于此,事实上也可以根据其他DR行为模式来设计不同的特征,进而可能涉及到不同的数据项字段。
在五个数据库中,已经由数据提供商100处的安全专家对DA进行了部分标记,以明确其中例如1/6的用户的身份,其中,这1/6用户中的3%被标记为DR,而剩余97%被标记为正常用户。接下来,将详细描述如何根据这仅有的标记数据以及其它的无标记数据来识别DR。
如前所述,可以基于DR行为模式来设计多个候选特征,以尽可能涵盖DR行为模式的各个方面并保持尽可能高的冗余。图3是示出了根据本公开实施例的用于根据异常行为模式300来确定候选特征的各要素之间的示例关系图。在图3所示实施例中,至少围绕上述三种DR行为模式(即,获取数据量310(对应于高数据量)、获取数据种类320(对应于大数据跨度)和获取数据时间330(对应于强周期性))设计了29个行为特征,见以下表2。如图3所示,可以基于这三个行为模式中的任何一个、两个或全部三个来设计候选特征,例如,单位时间内获取的数据种类(320+330)、单位时间内获取的数据量(310+330)、获取数据量在数据种类上的分布(310+320)、单位时间内获取数据量在数据种类上的分布(310+320+330)等等。
需要注意的是:在本文中,认为一个用户在某一天“活跃”可以指的是该用户在当日从数据提供商100处获取过至少一次数据。
表2示例候选特征
在表2中,针对前述三种DR行为模式,分别设计了三组特征。首先前三个特征是为了捕捉DR的访问模式中的均匀性而设计的熵(entropy)特征。这些熵特征可以用于捕捉特定分布的“均匀性”。具体地,给定具有n个离散概率pi的集合X,使得并且其熵为给定用户u、具有m个键值的数据库T、以及Ti为T中的第i个键值,则可以统计用户u获取Ti至少一次的天数以及用户u在该月(鉴于数据库TA是一个月的查询数据)获取Ti的总数,并且可以将这二者用qi和wi来分别加以表示。则可以定义这两个数量的熵为:
index_day_entropy=H(qi∑iqi)(i=1,2,...,m) (1)
index_num_entropy=H(wi∑iwi)(i=1,2,...,m) (2)
此外,可以改变index_day_entropy,以创建所获取的键值数目(不计算重复查询)在七个活跃日上的运动平均值的熵:index_avg_entropy。
从而,这些熵特征可以捕捉用户针对不同数据索引(即,数据项)的查询的均匀性。即,作为一般用户的针对相对少的特定数据项的重复查询将导致上述熵特征值相对较低,而作为DR的针对相对多的广泛数据项的均匀查询将导致上述熵特征值相对较高。因此,尽管一般用户可能获取的总数据量也很高,但主要是针对其关注的特定项目的数据访问量高,其数据访问模式较不“均匀”,且因此熵特征值将较低。相对地,DR通常获取多得多的不同键值,并呈现出很强的周期性,因此通常导致比一般用户高得多的熵特征值。
接下来是23个是与获取量有关的、不同角度(例如,量值、多样性、活跃度、时间密度等)的特征,其具体定义见表2。再之后是与一天中的不同时段有关的3个特征。其背后的原理在于一般用户110通常仅在白天或傍晚工作时使用数据提供商100的服务,而有很多DR120有时候会选择在深夜网络无阻塞的时候大量抓取数据。因此,在异常时间(例如,晚上10点以后到第二天早上8点)期间获取数据项将使得该用户行为更为可疑。
需要注意的是:上面提出的各个特征仅为示例之用,本公开并不受限于此。换言之,完全可以根据前述三种用户行为模式或可能的其它用户行为模式设计出更多或更少的附加或替代特征。
在确定了可能的候选特征之后,可以将这些特征形成为特征向量,例如其中,fk是第k个特征,且hi是用户ui对数据库DT(其中,DT∈DA,...,DE)的查询历史。从而,可以针对每个数据库为每个用户创建一个这种向量,下文中也可将该特征向量称为用户ui在数据库DT上的简档。
在设计好上述特征之后,接下来可以使用数据库DA的有标签子集(下文中称为DA(L))来从这些特征中选择有用的部分特征。换言之,可以尝试根据这有限训练样本来找到对于识别DR 120来说重要的特征。图4是示出了根据本公开实施例的用于使用训练数据集来确定有效特征的方法400的示例流程图。
如图4所示,在步骤S410中,可以使用L1-惩罚逻辑回归(L1-Penalized LogisticRegression,下文中简称为LR)。逻辑回归是应用非常广泛的一个机器学习分类算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。当逻辑回归增加了L1-惩罚项后,我们可以实现模型参数的稀疏化:即使训练数据有很多的维度,训练出来的模型只会在有限而重要的维度上参数为非零。LR算法中最重要的参数是L1-惩罚参数C,它直接决定训练出来的模型中非零参数的个数。基于这种特性,LR被广泛地应用于学习每个特征的权重的特征选择技术,且在一些实施例中最后可以仅选择具有非零权重的特征作为用于识别DR的特征。在不失一般性的情况下,将所选择的n′个有效特征表示为f0,...,fn′(n′≤29)。
尽管LR可以在一开始能够挑选出一些特征,还可以使用以下过程来调整每个特征的权重:针对DA(L)中的所有有标签用户来运行随机森林(Random Forest,下文中简称为RF)算法,以训练分类器G,如步骤S420所示。随机森林是一种新兴起的、高度灵活和非线性的机器学习算法,它通过集成学习的思想,将多棵树集成一种算法,对数据样本进行训练而生成多个决策树,并对新样本进行预测和分类。在使用随机森林算法时,主要要确定的参数包括决策树的个数、深度和最小子树的大小等。在训练过程期间,还可根据各个候选特征在学习到的决定树中的深度来确定相应特征的相对重要度。此外,假定n′个特征的重要度是c0,...,cn′-1,则可以将n′个特征的重要度缩放(或重加权)为在一些实施例中,k可以是缺省值为0.5的缩放参数。该缩放参数主要是用于调整重要度对于各个候选或有效特征在最终识别结果上的影响效果,其可以根据例如实验方式来确定。
使用有标记的数据来训练标记权重,而不是针对其它数据库来直接使用经过训练的分类器G,这是因为针对不同数据库的特征分布可能是存在变化的,而DR的关键行为模式是更稳定的。换言之,根据标记,可以学习到与哪些特征看起来更为重要的“规则”,而不是学习到依赖于数据的检测模型。
图5是示出了根据本公开实施例的用于根据有效特征来识别异常数据的示例方法500的示例流程图。在假定大多数用户是一般合法用户且在特征空间中他们与DR之间存在显著差异的情况下,可以将DR视为数据中的异常值(outlier)。如图5中步骤S510所示,可以对该异常值进行异常数据识别。
在一些实施例中,在众多的异常值检测算法(例如,基于密度的算法、对于维度缩放不敏感的算法、一类支持向量机(One Class Support Vector Machine,下文中有时简称为一类SVM)等)中,可以选择使用一类SVM算法(其是基于最近距离的算法)以及上面方法400中确定的有效特征来初步确定所有数据中的异常数据。
此外,对于数据库DA,由于其部分数据具有难得的标记,因此在一些实施例中可使用前述分类器G对于无标记数据的预测结果来补充该算法异常检测结果,如可选步骤S520所述。换言之,可以取这二者(异常值检测和分类器G)的结果的并集。
此外,在实践中还发现,将很多用户检测为异常值仅仅是因为它们的有效活动非常少,因此在一些实施例中,在可选步骤S530中,可以采取一些后处理(post-processing)步骤,例如通过对days_num、total_num和index_day_entropy之类的特征使用过滤器来将这些低活动量的用户滤除。在一些实施例中,可将过滤阈值设置为所有用户的中位数。阈值的准确度并不十分影响最终结果,这是因为DR的活动水平通常明显远高于该中位数。
在一个具体实施例中,可以将C=15用于L1惩罚LR,将n_estimators=64用于随机森林,将kernel=rbf,gamma=0.1以及nu=0.004用于一类SVM。此外,异常值分数参数nu是在精确度(precision)和召回(recall)之间的重要权衡参数,在该实施例中,其可以使用0.004。如本文中所使用的术语“精确度”指的是在识别出的DR中确实是DR的百分比;而术语“召回”指的是在所有DR中被正确识别出的DR的百分比。因此,当nu过大时,虽然“召回”上升,但精确度却下降,意味着虽然抓住了更多的DR,但也有更多的无辜用户被错误识别为DR;而nu过小时,精确度上升,但“召回”将下降,意味着虽然被错误识别的无辜用户减少,但抓住的DR也减少。
在该实施例中,以前述某数据提供商100为具体示例,执行上述方法步骤之后得到了候选特征的重要度估计,如以下表3所示。
表3特征重要度估计
在经过训练之后,除了表中列出的特征之外,其余20个特征的重要度均为0,且其中特征index_day_entropy、total_indices和index_avg_entropy具有明显高于其它特征的重要度。而这一发现也与前述DR行为特征大体吻合:即获取相对更多的键值并以相对更均匀的方式来获取。
此外,对于数据库DA中的用户的检测结果表明,在仅使用异常值检测时检测到24个DR,而仅使用分类器G检测时检测到21个DR,这二者之间共同的是6个DR。下面表4示出了其中部分DR。
表4 DR检测结果
根据异常值检测算法得到的24个DR,其在表3所示的前三个特征中全部具有非常高的值,且其百分数至少为91%。这24个DR中,通过使用k-means聚类算法(k=2),可将其中三个DR与剩余DR分开,这三个DR中的两个在上面表3的最下面两行中示出。
而对于分类器G来说,其并未检测到这三个DR中的任何一个。这是因为在给定有限训练集的情况下,分类器倾向于对单一DR行为模式进行过拟合(overfit),但是事实上存在很多新的模式。例如,这三个DR都具有与其他DR同样高的特征值,但是其其他特征(例如,minutes_rate_rank、Sum_day_indices和days_num)也异常的高。换言之,它们不仅针对键值均匀地获取数据,还是以极高频率和强度来获取数据。从而,它们事实上就是高度可疑的DR。
对于除了DA之外的其他几个数据库,前述发现的前三个特征对于DR来说同样非常高,且因此表明这些特征对于其他数据也具有某种程度的可迁移性。在实际检测结果中,DB中的一个用户(其从未使用过数据库DA)的表3中的前五个特征都非常高,其百分数都在99%以上。根据人工检查结果,其1)在两个小时内获取了接近9000个键值的数据,是平均值的130倍;以及2)其在约20天内的时间反复获取具有近500个键值的集合的数据,而且都在每天的大致相同时间段内获取。从而它具有全部前述三种DR行为模式:海量、跨度和强周期性,从而使得他高度可疑。此外,在与数据提供商的沟通中,数据提供商的安全专家人工确认了大部分检测到的DR。可见,根据本公开实施例的用于识别DR的方案能够自动高效地准确识别DR。
图6是示出了根据本公开实施例的用于确定数据相似度的设备600的示例硬件布置图。如图6所示,电子设备600可以包括:处理器610、存储器620、输入/输出模块630、通信模块640和其它模块650。需要注意的是:图6所示实施例仅为说明根据本公开之用,且因此不对本公开加以任何限制。事实上,该电子设备600可以包括更多、更少或不同的模块,且可以是单独的设备或分布在多处的分布式设备。例如,该电子设备600可以包括(但不限于):个人计算机(PC)、服务器、服务器集群、计算云、工作站、终端、平板电脑、膝上型计算机、智能电话、媒体播放器、可穿戴设备、和/或家用电器(例如、电视、机顶盒、DVD播放器)等。
处理器610可以是负责电子设备600的整体操作的组件,其可以与其他各个模块/组件通信连接,以从其它模块/组件接收待处理数据和/或指令并向其他模块/组件发送经处理数据和/或指令。处理器610可以是例如通用处理器,例如中央处理单元(CPU)、信号处理器(DSP)、应用处理器(AP)等。在该情况下,其可以在存储器620中存储的指令/程序/代码的指示下执行上面根据本公开实施例的用于检测异常数据的方法的各个步骤中的一个或多个步骤。此外,处理器610也可以是例如专用处理器,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在该情况下,其可以根据其电路设计专门执行上面根据本公开实施例的用于检测异常数据的方法的各个步骤中的一个或多个步骤。此外,处理器610也可以是硬件、软件和/或固件的任意组合。此外,尽管图6中仅示出了一个处理器610,但实际上处理器610也可以包括分布在多个地点的多个处理单元。
存储器620可以被配置为临时或持久性地存储计算机可执行指令,该计算机可执行指令在由处理器610执行时可以使得处理器610执行本公开中描述的各个方法的各个步骤中的一个或多个步骤。此外,存储器620还可以被配置为临时或持久性地存储与这些步骤相关的数据,例如用户行为数据、候选特征数据、有效特征数据、异常数据等。存储器620可以包括易失性存储器和/或非易失性存储器。易失性存储器可以包括例如(但不限于):动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、高速缓存等。非易失性存储器可以包括例如(但不限于):一次性可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩膜型ROM、闪存ROM、闪存(例如,NAND闪存、NOR闪存等)、硬盘驱动器或固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)、微型SD、迷你型SD、极限数字(xD)、多媒体卡(MMC)、记忆棒等。此外,存储器620也可以是远程存储设备,例如网络连接存储设备(NAS)等。存储器620也可以包括分布在多个地点的分布式存储设备,例如云存储器。
输入/输出模块630可以被配置为从外部接收输入和/或向外部提供输出。尽管在图6所示实施例中将输出/处模块630示出为单一模块,但实际上其可以是专门用于输入的模块、专门用于输出的模块或其组合。例如,输出/输出模块630可以包括(但不限于):键盘、鼠标、麦克风、摄像头、显示器、触摸屏显示器、打印机、扬声器、耳机或任何其他可以用于输入/输出的设备等。此外,输入/输出模块630也可以是被配置为与上述设备连接的接口,例如耳机接口、麦克风接口、键盘接口、鼠标接口等。在该情况下,电子设备600可以通过该接口与外部输入/输出设备连接并实现输入/输出功能。
通信模块640可以被配置为使得电子设备600能够与其它电子设备进行通信并交换各种数据。通信模块640可以是例如:以太网接口卡、USB模块、串行线路接口卡、光纤接口卡、电话线路调制解调器、xDSL调制解调器、Wi-Fi模块、蓝牙模块、2G/6G/4G/5G通信模块等。从数据输入/输出的意义上,通信模块640也可以被视为输入/输出模块660的一部分。
此外,电子设备600还可以包括其它模块650,包括(但不限于):电源模块、GPS模块、传感器模块(例如,接近传感器、照度传感器、加速度传感器、指纹传感器等)等。
然而,需要注意的是:上述模块仅是电子设备600所可能包括的模块的部分示例,根据本公开实施例的电子设备不限于此。换言之,根据本公开其它实施例的电子设备可以包括更多的模块、更少的模块或不同模块。
在一些实施例中,图6所示的电子设备600可以执行结合图2~5所述的各个方法的各个步骤。在一些实施例中,存储器620中存储有指令,该指令在由处理器610执行时,可使得处理器610执行根据结合图2~5所述的各个方法的各个步骤。
至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。
此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。