UP-Span算法

1,874 阅读6分钟

写在前面:episode pattern挖掘不同于itemset pattern挖掘,其复杂程度是远远超过itemset,首先“情节”意味着一系列事件的发生,在一段时间内有多个itemset产生,这些itemset之间可能先后发生,也可能同时发生。也就是说episode挖掘不仅要考虑横向的事件序列,而且还要结合纵向事件集。

Mining High Utility Episodes in Complex Event Sequences

定义

情节(episode)挖掘是从频度(Frequent)计算开始研究,所以这里介绍一些基础定义

Frequent 类

  • 简单事件序列(Simple event sequence):设 ε={E1,E2,,Em}\varepsilon = \{E_1, E_2, \dots, E_{\rm m}\} 是有限个事件的集合,简单事件序列 SS=<(E1,T1),(E2,T2),,(Em,Tm)>SS = <(E_1, T_1), (E_2, T_2), \dots, (E_{\rm m}, T_{\rm m})> 是一组事件的有序序列,其中每一个事件 EiεE_{\rm i} \in \varepsilon 都与一个时间点 TiN+T_{\rm i} \in N^+ 相关联。例如下图(Figure 1.)中:

    A simple event sequence

  • 简单情节(Simple episode):简单情节 α\alpha 是一组非空有序事件集合。例如在图(FIgure 1.)中 <(A),(C)><(A), \, (C)> 就是一个简单情节

  • 同时事件集(Simultaneous event set):同时事件集 SE=(E1,E2,,Em)SE = (E_1, E_2, \dots, E_{\rm m}) 是指在同一个时间点 TiT_{\rm i} 上发生的一组事件。

  • 复杂事件序列(Complex event sequence):复杂事件序列 CS=<(SE1,T1),(SE2,T2),,CS = <(SE_1, T_1), (SE_2, T_2), \dots, (SEn,Tn)>(SE_{\rm n}, T_{\rm n})> 是一系列有序事件集合,里面有多个同时事件集,各个同时事件集又组成一个事件序列 。例如下图(Figure 2.)中所示:

    A complex event sequence

  • 长度和大小(Length and Size):事件情节 α\alpha 的长度定义为 (其实就是该集合里事件的个数),称为 kk-episode;而事件情节 α\alpha 的大小等于该情节中同时事件集合的个数。例如:<(AB),(C)><(AB), (C)> 就是大小为2的3-episode

  • 发生(Occurrence):给定一个情节 ,当1)情节 α=<(SE1),(SE2),,(SEm)>\alpha = <(SE_1), (SE_2), \dots, (SE_{\rm m})> 发生在时间段 [Ts,TeT_{\rm s}, T_{\rm e}];2)情节 α\alpha 的第一个同时事件集 SE1SE_1 发生在 TsT_{\rm s} 时间点,最后一个同时事件集 SEmSE_{\rm m} 发生在 TeT_{\rm e} 时间点,那么称情节 α\alpha 的发生在时间间隔 [Ts,TeT_{\rm s}, T_{\rm e}] 上。其中,情节 α\alpha 的所有发生时间段组成集合 occSet(α)occSet(\alpha) 。例如:在图(Figure 2.)中 occSet(<(AB),(C)>)={[1,2],[1,3],[1,6],[1,7],[5,6],[5,7]}occSet(<(AB), (C)>) = \{[1,2], [1,3], [1,6], [1,7], [5,6], [5,7]\}

  • 最短发生时间段(Minimal occurrence):给定情节 α\alpha 的两个时间间隔 [Ts,TeT_{\rm s}, T_{\rm e}], [Ts,TeT_{\rm s}', T_{\rm e}'],[Ts,TeT_{\rm s}', T_{\rm e}'] 是 [Ts,TeT_{\rm s}, T_{\rm e}] 的子集:当1)情节 α\alpha 的发生在[Ts,TeT_{\rm s}, T_{\rm e}]时间段上;2)[Ts,TeT_{\rm s}', T_{\rm e}'] 不存在子集。最短发生时间段记为 mo(α)mo(\alpha)。其中,情节 α\alpha 的所有最短发生时间段组成集合 moSet(α)moSet(\alpha)。例如:情节 <(AB),(C)><(AB), (C)> 的最短发生时间段 [1,2],且 moSet(<(AB),(C)>)={[1,2],[5,6]}moSet(<(AB), (C)>) = \{[1,2], [5,6]\}

  • 情节支持度(Support of an episode):情节 α\alpha 的支持度 SC(α)SC(\alpha) 定义为在最短发生时间段集 moSet(α)moSet(\alpha) 中最短发生时间段的个数(Ps. 也就是在这个时间段发生了一次),支持率的定义为在CS中 SC(α)SC(\alpha) 与时间点的比值

  • 频繁情节(Frequent episode):当一个情节的支持度不低于用户设置的支持度阈值(minSupminSup),那么该情节称为频繁情节。

论文中也提到为什么要设计新的效用(Utility)挖掘来替代频度挖掘:一是频度表达的意义太过狭隘(比如钻石和面包案例),二是基于频度很难讨论事件并行(同时)发生(Simultaneous occurrence)的这种情况(定义在同一个时间点上只有一个事件发生一次)

Utility 类

CS=<(tSE1,T1),(tSE2,T2),,(tSEn,Tn)>CS = <(t_{SE_1}, T_1), (t_{SE_2}, T_2), \dots, (t_{SE_{\rm n}}, T_{\rm n})>,其中 TiN+T_{\rm i} \in N^+,每个事件 EiεE_{\rm i} \in \varepsilon 都关联利润 p(Ei,CS)p(E_{\rm i}, CS)(外部效用)和数量 q(Ei,Ti)q(E_{\rm i}, T_{\rm i})(内部效用)。如下表 (Table 1.)和图(Figure 3.)分别表示各事件的外部效用和内部效用

事件额外效用

复杂事件序列的内部效用

  • 某个时间点的事件效用(Utility of an event at a time point):在某个时间点 TiN+T_{\rm i} \in N^+ 下某个事件 EiE_{\rm i} 的效用定义为 u(Ei,Ti)=p(Ei,CS)×q(Ei,Ti)u(E_{\rm i}, T_{\rm i}) = p(E_{\rm i}, CS) \times q(E_{\rm i}, T_{\rm i}) (利润 ×\times 数量)

  • 某个时间点并行发生事件集的效用(Utility of a simultaneous event set at a time point):在某个时间点 TiN+T_{\rm i} \in N^+ 下并行(同时)发生事件集 SE=(E1,E2,,En)SE = (E_1, E_2, \dots, E_{\rm n}) 的效用定义为 u(SE,Ti)=j=1nu(Ej,Ti)u(SE, T_{\rm i}) = \sum_{j = 1}^{n}u(E_{\rm j}, T_{\rm i})

  • 基于复杂事件序列数据集的总效用(Total utility of database complex event sequence):基于复杂事件序列 CSCS 的总效用定义为 u(CS)=i=1nu(SEi,Ti)u(CS) = \sum_{i = 1}^{n}u(SE_{\rm i}, T_{\rm i})

  • 关于最短发生时间段的情节效用(Utility value of an episode w.r.t its minimal occurrence):设 mo(α)=[Ts,Te]mo(\alpha) = [T_{\rm s}, T_{\rm e}] 是情节 α=<(SE1,SE2,,SEn)>\alpha = <(SE_1, SE_2, \dots, SE_{\rm n})> 的最短发生时间段,其中每一个并行发生事件集 SEiαSE_{\rm i} \in \alpha 都与某一个时间点 TiN+T_{\rm i} \in N^+ 相关联。关于最短发生时间段的情节效用定义为 u(α,mo(α))=i=1nu(SEi,Ti)u(\alpha, mo(\alpha)) = \sum_{i = 1}^{n}u(SE_{\rm i}, T_{\rm i})

  • 基于复杂事件序列情节的效用(Utility of an episode in a complex event sequence):设 moSet(α)=[TI1,TI2,,TIn]moSet(\alpha) = [T_{\rm I_1}, T_{\rm I_2}, \dots, T_{\rm I_n}] 是关于情节 α\alpha 的最小发生集。而基于复杂时间序列 CSCS 的情节效用定义为 uv(α,CS)=i=1nu(α,TIn)uv(\alpha, CS) = \sum_{i = 1}^{n}u(\alpha, T_{\rm I_n}),并且有 u(α)=uv(α)/u(CS)u(\alpha) = uv(\alpha) / u(CS)

  • 最长持续时间(Maximum time duration):设 MTDMTD 是用户预先设定的最长持续时间,mo(α)=[Ts,Te]mo(\alpha) = [T_{\rm s}, T_{\rm e}] 是情节 α\alpha 的最短发生时间段。当 (TeTs+1)MTD(T_{\rm e} - T_{\rm s} + 1) \le MTD,称 mo(α)mo(\alpha)MTDMTD 的约束(或者是满足)(Ps. MTD起着时间窗口的作用,因为我们要计算就必须划定好一个范围,否则无穷大时间段或无穷小都不利于我们研究

  • 并行和串行连接(Simultaneous and serial concatenations):设 α=<(SE1),(SE2),,(SEx)>,\alpha = <(SE_1), (SE_2), \dots, (SE_{\rm x})>, β=<(SE1),(SE2),,(SEy)>\beta = <(SE_1'), (SE_2'), \dots, (SE_{\rm y}')>α\alphaβ\beta 的并行连结定义为 simulsimul-concat(α,β)=<(SE1),(SE2),concat(\alpha, \beta) = <(SE_1),(SE_2), ,(SExSE1),(SE2),(SEy)>\dots, (SE_{\rm x} \cup SE_1'), (SE_2'), (SE_{\rm y}')>α\alphaβ\beta 的串行连接定义为 serialserial-concat(α,β)=<(SE1),(SE2),concat(\alpha, \beta) = <(SE_1), (SE_2), ,(SEx),(SE1),(SE2),,(SEy)>\dots, (SE_{\rm x}), (SE_1'), (SE_2'), \dots, (SE_{\rm y}')>Ps. 两种都是扩展项集,只是结合形式不一样

  • 高效用情节(High Utility Episode):当情节 EiE_{\rm i} 的效用值 u(Ei)minUtilu(E_{\rm i}) \ge minUtil,则被视作是我们要的pattern(HUE),否则不是

  • 情节效用权重(Episode-Weighted Utilization of an episode):设 moSet(α)=[TI1,TI2,,TIn]moSet(\alpha) = [T_{\rm I_1}, T_{\rm I_2}, \dots, T_{\rm I_n}] ,且TIimoSet(α)T_{\rm I_i} \in moSet(\alpha) 满足 MTDMTD 约束。那么基于复杂事件序列 CSCS 的情节 α\alpha 效用权重 EWU(α)=i=1nEWU(α,TIi)/u(CS)EWU(\alpha) = \sum_{i = 1}^{n}EWU(\alpha, T_{\rm I_i}) / u(CS)。例如:设 MTD=3,α=<(A),(C)>MTD = 3, \alpha = <(A), (C)>,那么 EWU(<(A),(C)>)=[u((AB),T1)+u((BC),T2)+u((C),T3)]+[u((AB),T5)+u((CD),T6)+u((C),T7)]/u(CS)=40/40EWU(<(A), (C)>) = [u((AB), T_1) + u((BC), T_2) + u((C), T_3)] + [u((AB), T_5) + u((CD), T_6) + u((C), T_7)] / u(CS) = 40 / 40

    EWUs of 1-episodes

  • 关于最短发生时间段的情节权重效用(Episode-Weighted Utilization of an episode w.r.t a minimal occurrence):设 mo(α)=[Ts,Te]mo(\alpha) = [T_{\rm s}, T_{\rm e}] 是情节 α=<(SE1),(SE2),,(SEn)>\alpha = <(SE_1), (SE_2), \dots, (SE_{\rm n})> 最短发生时间段,其中 mo(α)mo(\alpha)MTDMTD 的约束。那么在 [Ts,TeT_{\rm s}, T_{\rm e}] 下情节 α\alpha 的情节权重效用 EWU(α,mo(α))=EWU(\alpha, mo(\alpha)) = i=1nu(SEi,Ti)+i=e(s+MTD1)u(tSEi,Ti)\sum_{i = 1}^{n}u(SE_{\rm i}, T_{\rm i}) + \sum_{i = e}^{(s + MTD - 1)}u(t_{SE_{\rm i}}, T_{\rm i}),其中 tSEit_{SE_{\rm i}} 是在 CSCS 中同时事件集的时间点 TiT_{\rm i} 。例如:设 MTD=4,α=<(C),(A)>,mo(<(C),(A)>)=[3,5]MTD = 4, \alpha = <(C), (A)>, mo(<(C), (A)>) = [3,5],那么 EWU(<(C),(A)>,[3,5])=[u((C),T3)]+[u((AB),T5)+u((CD),T6)]=25EWU(<(C), (A)>, [3, 5]) = [u((C), T_3)] + [u((AB), T_5) + u((CD), T_6)] = 25

  • 高权重效用情节(High Weighted Utilization Episode):当一个情节 α\alphaEWU(α)minUtilEWU(\alpha) \ge minUtil 时,该情节称为高权重效用情节(HWUE),也就是下一条定义的候选事件

  • 候选事件(Promising event):当 EWU(e)minUtilEWU(e) \ge minUtil 时,该事件 ee 是候选事件,需要进一步计算其epsiode utility来准确判断。否则是 unpromising event,当 α\alpha 是非候选事件时,对任意情节 β\beta,它们的超集 γ\gamma 都是低效用的。

  • 情节权重的向下闭合性(Episode-Weighted Downward Closure property (EWDC)):设 α\alphaβ\beta 都是情节,且 γ=simul\gamma = simul-concat(α,β)concat(\alpha, \beta)serialserial-concat(α,β)concat(\alpha, \beta),当 EWU(α)<minUtilEWU(\alpha) < minUtil 时,γ\gamma 是低效用情节

策略

Discarding Global unpromising Events(DGE)

利用情节权重的向下闭合性,在最开始移除掉那些非有效事件,以达到优化算法的目的。

Discarding Local unpromising Events(DLE)

利用情节权重的向下闭合性,在运算过程中(比如在剪枝、排序后的数据集)移除掉那些非有效事件,以达到优化算法的目的

算法

主体算法的思想是老规矩:找到一个长度为1的情节,然后把这个事件作为前缀再添加其它事件检查能否成为HEWU,需要注意的是每次扩展一个事件,这个事件的时间不能与前缀时间相差超过MTD

UP-Span

UP-Span

UP-Span

MiningSimultHUE

主要负责挖掘当前事件集的并发事件

MiningSimultHUE

MiningSerialHUE

主要负责挖掘当前事件集的连续事件

MiningSerialHUE

个人总结

在学习了High-Utility Pattern Mining类算法后理解上并不是很难,大多定义加上了时间这个维度。从伪代码上来看该算法整体也不是很复杂,思路与HUI-Miner算法的思路大致一样,只是在这方面目前的研究比较少,还有很大的扩展空间。 该文献是第一个提出基于情节的高效用项挖掘概念,并成功实现。缺陷在于仅仅把提出的EWU作为边界值,难免太过模糊,会产生许多原本不需要的候选集。还需要使用更好的剪枝算法如FHM中使用的或更改数据存储结构,提高检索效率