TUP算法

552 阅读4分钟

写在前面:继UP-Span算法之后,研究一下加上top-k之后挖掘效率是否会效果更强,通常而言,top-k领域挖掘算法对密集型数据集效率会有显著的提升,而且针对UP-Span算法的不足,top-k的策略在一定程度上可以解决。

Top-K High Utility Episode Mining from a Complex Event Sequence

样本

基本信息

定义

  • 事件(event)一个事件被定义为 pair(e,t)pair(e, t),其中 ee 是事件类型,tt 是属于 N+N^+ 的事件发生时间点

  • 同时事件集(simultaneous event set)当一组事件在同一个时间点 tt 发生时,这个事件集叫做同时事件集

  • 复杂事件序列(complex event sequence)复杂事件序列 CES=<(SE1,t1),(SE2,t2),,(SEn,tn)>CES = <(SE_1, t_1), (SE_2, t_2), \dots, (SE_{\rm n}, t_{\rm n})> 是一个有序同时事件集序列

  • 包含同时事件的情节(episode containing simultaneous event sets)一个情节 α=<(SE1),(SE2),,(SEn)>\alpha = <(SE_1), (SE_2), \dots, (SE_{\rm n})> 是同时事件的非空完全有序集合

  • 发生(occurrence)给定一个情节 ,当1)情节 α=<(SE1),(SE2),,(SEm)>\alpha = <(SE_1), (SE_2), \dots, (SE_{\rm m})> 发生在时间段 [ts,te t_{\rm s}, t_{\rm e}];2)情节 α\alpha 的第一个同时事件集 SE1SE_1 发生在 TsT_{\rm s} 时间点,最后一个同时事件集 SEmSE_{\rm m} 发生在 tet_{\rm e} 时间点,那么称时间间隔 [ts,tet_{\rm s}, t_{\rm e}] 为情节 α\alpha 的出现。其中,情节 α\alpha 的所有发生组成集合命名为 occSet(α)occSet(\alpha) 。例如:情节 occ<(E),(D)>={[1,3],[3,3],[1,5],[3,5]}occ<(E), (D)> = \{[1,3], [3,3], [1,5], [3,5]\}

  • 最小发生(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)[ts,tet_{\rm s}, t_{\rm e}] 是情节 α\alpha 的出现;2)时间间隔 [ts,tet_{\rm s}', t_{\rm e}'] 不存在子集。最小发生记为 minOcc(α)minOcc(\alpha)。其中,情节 α\alpha 的所有最小发生组成集合 minOccSet(α)minOccSet(\alpha)。例如:minOccSet(<(E),(D)>)={[1,3],[3,3],[3,5]}minOccSet(<(E), (D)>) = \{[1,3], [3,3], [3,5]\}

  • 内部效用和外部效用(internal and external utility)在情节效用挖掘中,每一个事件 eie_{\rm i} 都关联着一个正外部效用 p(ei)p(e_{\rm i}) 和正内部效用 q(ei,tj)q(e_{\rm i}, t_{\rm j})

  • 事件在某个时间点的效用值(utility of an event at a time point)在某个时间点 tiN+ t_{\rm i} \in N^+ 下某个事件 EiE_{\rm i} 的效用定义为 u(ei,ti)=p(ei)×q(ei,ti)u(e_{\rm i}, t_{\rm i}) = p(e_{\rm i}) \times q(e_{\rm i}, t_{\rm i})

  • 同时事件集在某个时间点的效用值(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})。例如:u(<(GF)>,t6)=(2×1)+(3×1)u(<(GF)>, t_6) = (2 \times 1) + (3 \times 1)

  • 情节关于最小发生的效用值(utility value of an episode w.r.t its minimal occurrence)设 minOcc(α)=[ts,te]minOcc(\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(α,minOcc(α))=i=1nu(SEi,ti)u(\alpha, minOcc(\alpha)) = \sum_{i = 1}^{n}u(SE_{\rm i}, t_{\rm i}),其中 tstitet_{\rm s} \le t_{\rm i} \le t_{\rm e}

  • 复杂事件序列情节的总效用值(utility of an episode in a complex event sequence)设 minOccSet(α)=[minOcc1(α),minOcc2(α),,minOccn(α)]minOccSet(\alpha) = [minOcc_1(\alpha), minOcc_2(\alpha), \dots, minOcc_{\rm n}(\alpha)] 是关于情节 α\alpha 的最小发生集。而基于复杂事件序列 CESCES 的情节效用定义为 uv(α,CES)=i=1nu(α,minOcci(α))uv(\alpha, CES) = \sum_{i = 1}^{n}u(\alpha, minOcc_{\rm i}(\alpha)),并且有 u(α)=uv(α)/u(CES)u(\alpha) = uv(\alpha) / u(CES)

  • 高效用情节(high utility episode(HUE))当一个情节的效用值大在给定的 MTDMTD 中大于或等于阈值时,该情节称为高效用情节

  • 最长时间段(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 的约束(或者是满足)

  • 同时串行连接(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. 这个类似于扩展项集

    例如:设 α=<(B),[4,4]>,β=<(D),[5,5]>\alpha = <(B), [4, 4]>, \beta = <(D), [5, 5]>,那么由串行连接新生成的情节 γ=<(B,D),[4,5]>\gamma = <(B, D), [4, 5]>;若此时令 α=<(A),[5,5]>\alpha = <(A), [5, 5]>,则 γ=<(B,DA),[4,5]>\gamma = <(B, DA), [4, 5]>

    同样地,该概念也具有向下封闭(EWDC)的特性,即:设 α\alphaβ\beta 都是情节,且 γ=simul\gamma = simul-concat(α,β)concat(\alpha, \beta)serialserial-concat(α,β)concat(\alpha, \beta),当 EWU(α)<minUtilEWU(\alpha) < minUtil 时,γ\gamma 是低效用情节

  • 关于最小发生时间的情节权重效用(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}} 是在 CESCES 中同时事件集的时间点 tit_{\rm i}

  • 情节效用权重(episode-weighted utilization of an episode)设 minOccSet(α)=[tI1,tI2,,tIn]minOccSet(\alpha) = [t_{\rm I_1}, t_{\rm I_2}, \dots, t_{\rm I_n}] ,且tIiminOccSet(α)t_{\rm I_i} \in minOccSet(\alpha) 满足 MTDMTD 约束。那么基于复杂事件序列 CESCES 的情节 α\alpha 效用权重 EWU(α)=i=1nEWU(α,tIi)/u(CES)EWU(\alpha) = \sum_{i = 1}^{n}EWU(\alpha, t_{\rm I_i}) / u(CES)

  • 高权重效用情节(high weighted utilization episode)当一个情节 α\alphaEWU(α)minUtilEWU(\alpha) \ge minUtil 时,该情节称为高权重效用情节

策略

Pre-insertion Strategy

简而言之就是把计算得到的情节效用插入到 top-k list 中,直到得到第 kthk^{th} 个效用值作为新的阈值,来达到在挖掘高效用情节之间快速提升阈值的目的

EWU Strategy

通过对计算得到的各情节EWU进行排序(在连接操作之前进行)利用EWU填充 top-k list,以便快速提升阈值和剪枝

Ps. 举例部分有些不能理解,或许检查代码能有新思路

算法

TUP-Basic

  • 和高效用挖掘一样,寻找低层次高效用情节,利用这些情节作为前缀去构造高层次高效用情节
  • 通过连接形成的新情节 β\beta,再调用 Insert_Episode(),用来更新 top-k 情节列表

TUP-Basic

Insert-Episode

SimultConcatenation

主要负责挖掘当前事件集的同时事件

SimultConcatenation

SerialConcatenation

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

SerialConcatenation

Raise MinUtil

Raise MinUtil

个人总结

算法还有部分没有理解,需要再看看论文,从实验数据上看该算法性能表现比较好,但个人认为使用的阈值提升策略不够多,反单调性应用面窄,还有很大的提升空间。