system: [SYSTEM]

user: 3. 算法模型 3.1. 问题定义 考虑长度为T的非稳态观测时间序列 X o r i g i n a l = [ x 1 ， x 2 ， ⋯ ， x T ] ，其中 x i ∈ R n 是第i次观测； x i = [ t ， c ] ，其中t表示时间戳，c表示 x i 属于的事件类型。在这里，对于某一个数据点 x i ，本文根据这个数据点发生的时间戳之前发生的事件或数据作为背景来综合考虑与看待这个数据。因此，本文转而考虑一个长度为 l < T 的短子序列，而不是单单只考虑某个数据点 x i 。本文将观测值 x t − l + 1 ， ⋯ ， x t 链接起来然后把它们合成的新子序列称为 X t − l + 1 。本文将这个从 X 1 到 X t − l + 1 的新子序列表示为 X n e w 。将孤立点组合成新的列是有帮助的，因为它们为每个 x i 观测数据点提供了上下文背景，如果两个子序列属于同一模式，它们应该有着的上下文信息或变量之间的关系。 本文的目的是发现隐藏在非稳态序列数据背后的不同模式，并捕获每个模式的格兰杰因果关系。 在这里本文定义了不同模式有不同的霍克斯过程模型参数，类似于Zhou等人工作 [ 14 ] 中的做法。对于霍克斯过程，本文将方程(2)中的第二项参数化为 b c j k ( s ) ，在二值化的因果矩阵(infectivity matrix) B = [ sign ( b c j ) ] 是对应格兰杰因果图的邻接矩阵。如果 b c j ≥ 0 ，则表示j类型事件对c类型事件有影响，否则，这两种类型的事件是相互独立的，本文提的霍克斯模型参数就是 θ = { b c j ， μ c } 。 3.2. 非稳态霍克斯过程的格兰杰因果关系模型 如果在时间序列中考虑某一时间点的数据时，用类似于Hallac的思想 [ 18 ] 把上下文一起纳入考虑范围，那么这将提供更多有用的信息，而不仅仅是将一个单独的数据点纳入考虑。因此，对于具有一定长度的序列观测，本文将其看成具有多个时间长度w的短子序列集合，而不是看成孤立的数据点集合。本文假设变量在时间长度为w的短子序列中的局部格兰杰因果关系属于相同的模式(标记为 ψ )是相同的，而其时间不变属性也与现实相一致。也就是说，假设相同的局部格兰杰因果关系意味着这些时间序列共享相同的霍克斯过程模型。由于具有相同霍克斯过程模型参数的子序列数据将具有相同的数据似然，因此本文可以利用该数据似然作为来区分两个子序列是否来自相同的模式的参考信息，从而发现霍克斯进程中存在的非稳态或不同的模式。为了控制相邻子序列通常属于同一模式的实际事实，本文还添加了 β ∗ 1 { x t − 1 ∉ ψ q } 这个惩罚项来调节时间一致性：随着惩罚值 β 的增大，相邻子序列属于同一模式的可能性更大。 对于霍克斯过程，本文将方程(2)中的第二项参数化为 b c j k ( s ) ，在二值化的因果矩阵(infectivity matrix) B = [ sign ( b c j ) ] 是对应格兰杰因果图的邻接矩阵。如果 b c j ≥ 0 ，则表示j类型事件对c类型事件有影响，否则，这两种类型的事件是相互独立的。故霍克斯模型参数为 θ = { b c j ， μ c } 。 类似于Zhou等人的工作 [ 14 ]，由于具有相同霍克斯过程模型参数的子序列数据将具有相同的数据似然度，因此可以利用该数据似然作为来区分两个子序列是否来自相同的模式的参考信息，从而发现霍克斯进程中存在的非稳态或不同的模式。针对同一模式，假设有C组时间序列数据 ℂ = { e c } c C ， e c 表示第c组的数据集，参照Xu等人的工作 [ 13 ]，观测数据的似然函数 − l l ( x t ， θ q ) 的完整形式为， − l l ( x t ， θ q ) = ∑ c = 1 C { ∑ i = 1 N c log λ u i c ( t i c ， θ q ) − ∑ u = 1 U ∫ 0 T c λ u ( s ， θ q ) d s } (3) 其中 u ∈ { 1 ， ⋯ ， U } 表示事件的类型，在式子(3)中，等式左侧的 x t 在右侧转化为该数据发生的时间戳t和时间类型u；N为数据集，c为数据集编号。 假设每个模式q都有其霍克斯过程模型参数 θ q ，为了控制相邻子序列通常属于同一模式的实际事实，本文引入 β ∗ 1 { x t − 1 ∉ ψ q } 这个惩罚项来调节时间一致性：随着惩罚值 β 的增大，相邻子序列属于同一模式的可能性更大。因此，为了找到不同的模式，并获得每个模式的最佳模型参数，有以下目标函数， arg min ψ ∑ q = 1 K [ ∑ x t ∈ ψ q ( − l l ( x t ， θ q ) + β ∗ 1 { x t − 1 ∉ ψ q } ) ] (4) 其中 − l l ( x t ， θ q ) 是 x t 属于模式q的对数似然， β ∗ 1 { x t − 1 ∉ ψ q } 表示 x t − 1 和 x t 不属于相同模式的惩罚代价。 3.3. GC-NOHP算法 为了可以同时做到最小化负对数似然以及通过正则化参数 β 控制时间一致性，本文通过将每个T子序列分配给K模式之一来解决优化问题。当 β = 0 时，子序列 X 1 ， ⋯ ， X T 倾向于独立分配到不同的T个模式，因为没有惩罚来促进相邻子序列被分配到相同模式的情况。通过将每个点分配给最大化其可能性的模式来解决这个问题，随着 β 的值越来越大，相邻子序列被分配到同一模式的可能性越来越大。 为了求解方程(3)，从随机初始化模式参数开始，迭代步骤1和步骤2，直到每个数据点在在每个模式 ψ 的分布情况(决定哪些数据属于哪个模式)和模型参数 θ q 的更新是趋于稳定的(即参数已经收敛)。在步骤2中，本文利用了Xu等人 [ 13 ] 的MLE-SGL方法，在数据已经模式分段划分完成的情况下，对每个分段的格兰杰因果关系(学习出每个模式对应的模型参数)进行学习。算法1对本文算法(GC-NOHP)框架进行了概述。 算法1 基于MLE-SGL框架的GC-NOHP算法 输入 观测 X o r i = [ x 1 ， x 2 ， ⋯ ， x T ] ，模式数K，惩罚项值 β 。 输出 模型参数 Θ = { θ 1 ， θ 2 ， ⋯ ， θ q ， ⋯ ， θ K } ，模式参数 ψ = { ψ 1 ， ψ 2 ， ⋯ ， ψ q ， ⋯ ， ψ K } 。 1. 将数据点分配到对应的模式 ψ n → ψ n + 1 2. 使用MLE-SGL更新每个模式对应的模型参数 Θ n → Θ n + 1 3. 重复执行步骤1和步骤2直到 Θ 和 ψ 收敛。 3.4. 非稳态模式发现方法 下面是3.2节中算法1的步骤1的实现细节：假定有K个不同的模式，给定每个模式的各自的模型参数 θ q = { b i j q ， μ i q } ， q ∈ { 1 ， 2 ， ⋯ ， K } ，本文通过将T个子序列 X 1 ， ⋯ ， X T 分配给这些K个模式来求解方程(3)，其方法是最小化数据的负对数似然，同时尽量让相邻的 X i + 1 与 X i 被分配到同一个模式(即减小2.2节中提到的惩罚项)。给定T个子序列，它们可分配到K个模式，这个组合优化问题，总共有 K ∗ T 种可能。根据3.2节的算法1中可以看出，算法在进行数据点(本文这里将一个子序列看成一个数据点)分配到对应模式时，模型参数是固定的，那么在这种情况下对于每个数据点 x t ，它的似然 − l l ( x t ， θ q ) 与其他数据点 x i ， i ∉ t 的似然 − l l ( x i ， i ∉ t ， θ q ) 是相互独立的，也就是说每个数据点被分配到哪一个模式是可以独立完成的，那么本文可以通过基于贪婪算法来让某一个数据点选择最优似然的分配决策来选择它应该属于的最佳模式， 从而完成最佳的数据点的分配方案，具体策略，见算法2。 算法2基于贪婪算法的数据点分配方法 输入 观测 X o r i = [ x 1 ， x 2 ， ⋯ ， x T ] ，模式K数，惩罚项值 β 。 输出 finalList[ ] (表示对应数据点编号被分配到的对应模式的情况)。 //初始化 1. finalList[1…T]¬1， tmpList[1…T]¬1 //对数据进行循环操作，选择似然度最大的情况 2. for i in [1，T] do //对T个数据进行循环操作 MinValue¬ min value of { − l l ( x i ， θ 1 ) ， ⋯ ， − l l ( x i ， θ K ) } ; for q in [1，K] do if q != tmpList[i] if β + ( − l l ( x i ， θ q ) ) < − l l ( x i ， θ f i n a l l i s t [ i ] ) finalist[i] ¬q. 算法2首先初始化所有数据点，所有数据点初始默认属于模式1，然后对T个数据数据进行循环操作，在循环中如果当前数据属于另一个模式的跳转损失小于当前数据没有发生模式跳转的损失，则将这个数据属于的模式进行改变，否则让这个数据属于的模式不改变。