对使用时间序列建模的用户行为的检测的制作方法_2

文档序号:9493663阅读:来源:国知局
软件,其随着时间持续记录设备的用户行为。在一些实施例中,事 件记录器118记录来自客户端104的数据请求的部分或全部,并且每个数据点(或者挑选 出的数据点)本质上充当训练点并且收集的数据点持续地增加整体预测的精度。
[0040] 检测算法120
[0041] 控制器112执行检测算法120以识别由事件记录器118收集的先前数据内的各种 模式。在一些实施例中,检测算法120确定各种数据请求的到达之间的间隔以产生一组间 隔的时间序列。检测算法120然后可以基于这些间隔的时间序列中存在的模式来识别或检 测用户行为。
[0042] 预测器算法122
[0043] 控制器112还可执行预测器算法122。一旦显现出一种模式,预测器算法122提供 用于预测用户的未来行为的逻辑,以及何时期望来自客户端104的一个或多个未来数据请 求。预测器算法122可以以多种格式输出其预测结果,诸如时间偏移、置信因子等。
[0044] 功率管理器124
[0045] 最后,控制器112可以包括功率管理器124。功率管理器124管理诸如存储接口 114和磁盘116之类的NAS102的功率状态和功耗。在一些实施例中,控制器112被配置为 使用功率管理器124基于预测器算法122的预测结果来预期用户数据请求使用。例如,响 应于预测器算法122预测的未来数据请求,控制器112可以用信号通知功率管理器124转 变磁盘116的功率状态以在下一数据请求的预测时间开始旋转硬盘116。此外,控制器112 可以当距离预测的下次数据请求存在长的闲置时段或时间时用信号通知功率管理器124 以使磁盘116和/或存储接口 114掉电或减少其功耗。针对控制器112和功率管理器124 何时改变功率状态和操作的多种阈值可以例如基于旋转启动时间(spinuptime)、通信延 迟、读取/写入延迟等而改变。此外,控制器112和功率管理器124可以基于多种标准修改 其功率管理方案,诸如电池荷电状态、数据请求频率等。
[0046] 时间序列建模的示例
[0047] 为了说明本发明的理念,现在将参考图2-5在下文进一步描述检测和预测算法。 为了说明的目的,参考图2示出了用户行为和数据请求序列的简单示例。
[0048] 图2-示例性用户行为(简化的)
[0049] 如图2所示,该图表可以表示位于客户端104处的用户自从他已经初始地打开NAS 102开始以100小时的间隔已经访问设备上的数据的行为。在该示例中,控制器112因此可 以根据这样的用户行为来进行简单的预测。
[0050] 图3-对用户行为的预测
[0051] 例如,图3示出了由控制器112确定的预测的数据请求事件。如图所示,各个"用 户数据请求"点(用于指示来自客户端104的用户请求)被标记为Rn而由控制器112预测 的"未来事件预测"点被标记为Pn,其中η为1、2、3等。如能够看出的那样,私和Ri之间的 时间间隔可以表示为△1而1?3和1? 2之间的时间间隔可以表示为△ 2。
[0052] 在一个实施例中,如果发现^和△ 2是相等的或处于特定容差内,预测器算法 122可以预测一模式并因此预测未来数据请求。也就是说,下一用户请求可以被预测为远离 或Δ2(gp,大约1〇〇小时)。
[0053] 解释波动和/或变化
[0054] 在一些实施例中,为了对用户请求行为中的一些波动作出解释,预测器算法122 可以包括误差缓存。例如,该算法可以被公式化并简化为如下:
[0056] e1^是用于解释用户请求中的波动的缓冲,以及
[0057] 、是0410,诸如用于驱动器旋转启动以及设备准备好响应用户请求所花费的时 间,以及最后
[0058] Δ'n+2是未来预测间隔(在图3中示出为1?3和Pi之间的间隔)。
[0059] 在一个实施例中,为了简化计算,检测算法120被配置为以矩阵形式表达变化量 Δ,如下面所建议的:
[0060]
[0061] 其中,指的是RjPR」之间的时间间隔。
[0062] 如能够看出的那样,该矩阵是其主对角线上的所有元素都等于0的方阵。另外,该 矩阵的下三角部分包括与该矩阵的上三角部分相同的数据,以使得下三角部分可以被忽略 (诸如节省存储器)并基于对上述矩阵的这些简化得到下面的矩阵:
[0063]
[0064] 因此,任意行i包括涉及数据请求点民至所有其他未来数据请求点的所有变化量 A。同样任意列j包括涉及从所有其他过去的数据请求点至R,的间隔的所有变化量△。为 了使得该示例可视化,图4示出了说明在该矩阵中表达的间隔的图表。
[0065] 时间序列建模-另一示例
[0066] 在一些实施例中,控制器112被配置为基于预测器算法122执行时间序列建模以 识别该矩阵内的模式。现在将参考下述假设的用户模式来提供检测算法120和时间序列建 模的一个不例。
[0067]
[0068] 根据这一数据集,控制器112可构建下述简化的矩阵如下:
[0069]

[0070] 在一个实施例中,可以基于下述伪代码实现检测算法120以识别用户访问请求中 的模式。
[0071]clc
[0072] G=[];
[0073] 1 = [5 7 10 19 21 24 33 35 38 48 58 68] ; %间隔向量始于i= 1
[0074] 1-size=size(1');
[0075]fori= 1 :1-size;
[0076]forj= 1 :1-size
[0077]Delta(i,j) =abs(l(i)_l(j));
[0078]end
[0079]end
[0080]Delta=triu(Delta)
[0081]fori= 1 :1-size
[0082] col-v=Delta( :,i);
[0083]row-v=Delta(i,:);
[0084]t-col=col-v(col-v~=0);
[0085]t-row=row-v(row-v~=0);
[0086]RESULT=ismember(col_v?t_row);
[0087] [row-i,col-i] =find(RESULT= = 1);
[0088]ifisempty(Delta(row_i?i))
[0089] %显示"这是空的"
[0090]%Delta(row_i?i)
[0091]else
[0092]detected-delta=Delta(row-i,i)
[0093]G(end+1) = 1 (i)+detected-delta;
[0094]end
[0095]end
[0096]figure
[0097]plot(1,1'bx',G,1,'ro');
[0098]legend('UserDataRequest','FutureEventPrediction' );
[0099] 上述代码还执行对用户行为的预测并产生如图5所示的下述附图。如能够看到的 那样,用户已经利用以不同的模式到达数据请求与NAS102交互。下文的示例性矩阵示出 了已经通过检测算法120对从矩阵中的所选元素起的一行和一列两者共同的间隔的序列 进行匹配来识别的模式。
[0100]
[0101] 在一些实施例中,上述系统及其部件的一些或全部由一个或多个物理或虚拟计算 系统执行或实施。例如,在一些实施例中,具有包括中央处理器(CPU)、输入/输出(I/O)部 件、存储设备和/或存储器的部件的计算系统(诸如服务器、移动设备或其他计算设备)可 以用于执行上述系统的部件的一些或全部。I/O部件可以包括显示器、到网络的网络连接、 计算机可读介质驱动器和/或其他I/O设备(例如,键盘、鼠标、触摸屏、扬声器等)。
[0102] 图6示出了用于预测存储设备(诸如存储设备102)的未来访问的示例处理流程。 在阶段600,存储设备102中的事件记录器118记录接收到对存储在磁盘116上的文件的数 据请求。控制器112然后确定存储设备102的每个访问请求到任意后续访问请求之间的各 个间隔。例如,控制器112可产生数据结构,诸如数组或矩阵,其中,每个元素指示间隔(或 A)。在一些实施例中,该矩阵可进一步被简化或减小,因为该矩阵是方阵,并因此下三角半 区可以被忽略。正如所提到的,该矩阵可以由控制器112存储在存储器(未示出)中。在 上文示出了这样一个矩阵的示例。
[0103] 在阶段602,控制器112识别在各个间隔中的模式。例如,如上文所提到的,控制 器112可以执行程序代码或与实现预测算法(诸如上述预测器算法122)的硬件或固件部 件进行合作。
[0104] 在阶段604,控制器112基于在各个间隔中的模式预测下一访问请求。特别地,控 制器112基于预测器算法的输出确定下一数据请求的时间。预测的下一
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1