UMEpi算法

261 阅读4分钟

写在前面:该篇算法是第一篇能够完整挖掘出所有高效用情节,理念上和HUI-MinerEFIM等算法没有很大区别,但在实现上却更难一些。

Utility-Driven Mining of High Utility Episodes

样例

External Utility Table:

External Utility

A Complex Event Sequence:

A Complex Event Sequence

定义

大多基本定义可以参考 TKETUPUP-Span 等算法,以下作一些补充及关键的定义。

  • 最小发生(Minimal occurrence)给定情节 α\alpha 的两个时间间隔 [Ts,Te],[Ts,Te][T_{\rm s}, T_{\rm e}], \, [T_{\rm s}', T_{\rm e}']。当有 TsTs.TeTeT_{\rm s} \le T_{\rm s}'. \, T_{\rm e}‘ \le T_{\rm e} 时,我们称第二个时间间隔是第一个时间间隔的子集;当 [Ts,Te][T_{\rm s}, T_{\rm e}] 不存在子集的情况时,我们称时间间隔 [Ts,Te][T_{\rm s}, T_{\rm e}] 为最小发生 (Minimal occurrence),用 mo(α)mo(\alpha) 表示情节 α\alpha 的一个最小发生,moSet(α)moSet(\alpha) 表示情节 α\alpha 在复杂事件序列 SS 中的所有最小发生。

    例如:mo({<A,D>B})=[T1,T2],moSet({<A,D>B})={[T1,T2],[T3,T5]}mo(\{<A, D> \rightarrow B\}) = [T_1, T_2], \, moSet(\{<A, D> \rightarrow B\}) = \{[T_1, T_2], \, [T_3, T_5]\}

  • 最大时间段(Maximum time duration)类似于早期算法中的滑动窗口,是需要用户指定的时间约束(MTD),规定情节 α\alpha 满足 TeTsMTDT_{\rm e} - T_{\rm s} \le MTD,且 mo(α)mo(\alpha) 恒满足该约定。

    Ps. 这里需要指明的是,早些论文规定的是 ==TeTs+1MTDT_{\rm e} - T_{\rm s} + 1 \le MTD==,UMEpi算法这样设计的原因是为了提供一个更紧凑的边界,方便能够找出所有的高效用情节(HUEs)

  • 某个同时事件集在时间点上的效用值(Utility of a simultaneous event set w.r.t. time point)对于同时事件集 ESE \subseteq S 在时间点 TiT_{\rm i} 上的效用值定义为 U(E,Ti)=eEu(e,Ti)=eE(p(e)×q(e,Ti))U(E, T_{\rm i}) = \sum_{e \in E}u(e, T_{\rm i}) = \sum_{e \in E}(p(e) \times q(e, T_{\rm i}))

    例如:u({A},T3)=3×1=3u(\{A\}, T_3) = 3 \times 1 = 3u({A,D,E},T3)=u({A},T3)+u({D},T3)+u({E},T3)=16u(\{A, D, E\}, T_3) = u(\{A\}, T_3) + u(\{D\}, T_3) + u(\{E\}, T_3) = 16

  • 事件序列总效用值(Total utility of an event sequence)给定一个复杂事件序列 SS,在时间点 TiT_{\rm i} 上的所有事件总效用定义为 tu(Ti)=ejTiu(ej,Ti)tu(T_{\rm i}) = \sum_{e_{\rm j} \in T_{\rm i}}u(e_{\rm j}, T_{\rm i}),那么 SS 的总效用值定义为 TU(S)=TiStu(Ti)TU(S) = \sum_{T_{\rm i} \in S}tu(T_{\rm i})

    例如:tu(T1)=u({A},T1)+u({C},T1)+u({D},T1)=13tu(T_1) = u(\{A\}, T_1) + u(\{C\}, T_1) + u(\{D\}, T_1) = 13TU(S)=tu(T1)+tu(T2)+tu(T3)+tu(T4)+tu(T5)+tu(T6)=94TU(S) = tu(T_1) + tu(T_2) + tu(T_3) + tu(T_4) + tu(T_5) + tu(T_6) = 94

  • 高效用情节(High-utility episode)给定一个复杂事件序列 SS,最大时间段 MTD 以及用户设置的阈值 minUtil,当 SS 中的事件(集)满足 u(α)minUtil×TUu(\alpha) \ge minUtil \times TU,我们称该事件(集)为 HUE

    Ps. 注意这里的定义和 TUP 有所不同,原因在于总效用定义上的不同

策略

Episode-Weighted Downward Closure Property

  • 当对于一个情节 α\alpha 新增加的情节 β\beta 的时间跨度与 α\alpha 一致,那么我们把这个操作称为 II-Concatenation(并行连接),若新增加的情节 β\beta 使得 α\alpha 时间跨度变长,那么我们把这个操作称为 SS-Concatenation(串行连接)

  • 词典序列树(Lexicographic sequence tree)基于前缀树的根节点为空,且对于父节点(也叫前缀节点)的所有子节点都通过连接(串,并)形成,这些子节点之间是有序的

    Ps. 和 EHIN 中的空间检索枚举树一致

  • 情节权重效用值(Episode-Weighted Utilization)设情节 α=<(E1),(E2),,(Ek)>\alpha = <(E_1), (E_2), \dots, (E_{\rm k})>,有 mo(α)=[Ts,Te]mo(\alpha) = [T_{\rm s}, T_{\rm e}](满足 MTD),且 每一个事件集 EiαE_{\rm i} \in \alpha 都有唯一的时间点 Ti(1ik)T_{\rm i} \, (1 \le i \le k) 与之对应,则

    EWU(α,mo(α))=i=1k1u(Ei,Ti)+i=TeTs+MTDu(SEi,Ti)EWU(α,mo(α))=i=1ku(Ei,Ti)+i=TeTs+MTDu(SEi,Ti)EWU(\alpha, mo(\alpha)) = \sum_{i = 1}^{k-1}u(E_{\rm i}, T_{\rm i}) + \sum_{i = T_{\rm e}}^{T_{\rm s} + MTD}u(SE_{\rm i}, T_{\rm i}) \\ 或 \\ EWU(\alpha, mo(\alpha)) = \sum_{i = 1}^{k}u(E_{\rm i}, T_{\rm i}) + \sum_{i = T_{\rm e}}^{T_{\rm s} + MTD}u(SE_{\rm i}, T_{\rm i})

    其中 SEiSE_{\rm i} 是复杂事件序列中的同时事件集(与 α\alpha 无关)。但请注意,这里只是计算了 α\alpha 的一个最小发生,若有多个,则广义上的计算方式为 EWU(α)=i=1nEWU(α,moi(α))EWU(\alpha) = \sum_{\rm i = 1}^{\rm n}EWU(\alpha, mo_{\rm i}(\alpha))。在该算法中是不断通过连接事件来组合成情节,如何判断有用的情节(候选),剪去不需要的情节是该算法的一个重要步骤,判断规则和 HUE 一样(EWU(α)minUtil×TUEWU(\alpha) \ge minUtil \times TU

    例如:MTD=2,mo1(<{A,D}B>)=[T1,T2]MTD = 2, \, mo_1(<\{A, D\} \rightarrow B>) = [T_1, T_2]mo2(<{A,D}B>)=[T3,T5]mo_2(<\{A, D\} \rightarrow B>) = [T_3, T_5],那么 EWU(α,mo1(α))=u({A,D},T1)+u({B},T2)+u({B,C},T2)+u({A,D,E},T3)=7+10+14+16=47EWU(\alpha, mo_1(\alpha)) = u(\{A, D\}, T_1) + u(\{B\}, T_2) + u(\{B, C\}, T_2) + u(\{A, D, E\}, T_3) = 7 + 10 + 14 +16 = 47

    Ps. 注意,论文中提到 EWU 只是局部上边界,故剪枝属性也只是局部,这解释了之前的算法为什么会结果产生不准确或不充分的原因

Pruning Strategy for Searching HUEs

  • 剩余情节效用值(Remaining utility ofan episode)在筛选掉 unpromising episodes 后,情节 α\alpha 在时间点 TiT_{\rm i} 的剩余情节效用值是发生在该情节之后的所有事件(集)效用值之和 ru(α,Ti)=e∉αeαu(e,Ti)ru(\alpha, T_{\rm i}) = \sum_{e' \not \in \alpha \land e' \succ \alpha}u(e', T_{\rm i})

  • 优化后的情节权重效用值(Optimized Episode-Weighted Utilization)有

    EWUopt(α,mo(α))=u(α,mo(α))+ru(Ek,Te)+Te+1Ts+MTDtu(Ti)=i=1ku(Ei,Ti)+ru(Ek,Te)+Te+1Ts+MTDtu(Ti)EWU_{opt'}(\alpha, mo(\alpha)) \\ = u(\alpha, mo(\alpha)) + ru(E_{\rm k}, T_{\rm e}) + \sum_{T_{\rm e} + 1}^{T_{\rm s} + MTD}tu(T_{\rm i}) \\ = \sum_{\rm i = 1}^{\rm k}u(E_{\rm i}, T_{\rm i}) + ru(E_{\rm k}, T_{\rm e}) + \sum_{T_{\rm e} + 1}^{T_{\rm s} + MTD}tu(T_{\rm i})

    同理,EWUopt(α)=i=1nEWUopt(α,moi(α))EWU_{opt'}(\alpha) = \sum_{\rm i = 1}^{\rm n}EWU_{opt'}(\alpha, mo_{\rm i}(\alpha))

    例如:设 α=<{B}D>,MTD=2\alpha = <\{B\} \rightarrow D>, \, MTD = 2,则 EWUopt(α,[T2,T3])={u({B},T2)+u({D},T3)}+{u({E},T3)+u({D,E},T4)}=10+13+3+14=40EWU_{opt'}(\alpha, [T_2, T_3]) = \{u(\{B\}, T_2) + u(\{D\}, T_3)\} + \{u(\{E\}, T_3) + u(\{D, E\}, T_4)\} = 10 + 13 + 3 + 14 = 40显然优化后的 EWUEWU 要比原来更紧凑,所以利用 EWUoptEWU_{opt'} 可以在检索空间上更有效地剪枝

算法

该算法也是分两步走:1)扫描生成1阶HUEs;2)不断调用 HUE-Span 方法利用低阶组合生成高阶HUEs

UMEpi Algorithm

The Span-SimultHUE procedure

The Span-SimultHUE procedure

The Span-SerialHUE procedure

The Span-SerialHUE procedure

总结

该文主要贡献在于 1)论证了低权重情节也有可能与高权重情节组合生成高权重情节,这是以前HUEM算法都没有考虑周全的地方;2)重新定义了更紧凑的 EWU,这使得在运算速度上大大提高了,因为情节具有时效性,不同时间点发生的情节意义不尽相同,所以它们能产生的组合数目是非常大的;3)与UP-Span等算法相比,没有采用预测机制来推断哪些情节是高效的,moSet(α)moSet(\alpha) 存储了 情节 α\alpha 的所有子序列(也就是潜在可以组合的情节)