P3-5.4 输入窗口(window)应该从哪里切,长度又该如何对齐¶
Section ID:
P3-5.4Version:v2026.07.20
如果原始时间序列本身还不是学习输入,那么立刻就会留下一个更具体的问题。那真正的输入到底应该从哪里开始、到哪里结束? 长度各不相同的动作,又该怎样像同一种输入那样对待? 输入窗口(window)正是回答这些问题的数据建模决定。
输入窗口不应该从 选一个模型方便的长度 开始,而应该先从 在当前问题里,什么算作一条输入 定下来之后再切。
到上一节为止,讨论重点还是 单行特征表 里应该保留什么。从这一节开始,我们会继续判断:同一份源时间序列,是否也可以被读成一种保留时间顺序的输入结构。也就是说,这一节的核心是,先决定从哪里切、如何对齐,然后才会分岔成“把它折成汇总输入”还是“把顺序保留下来”。
为什么需要输入窗口¶
原始时间序列通常长度不同,起点和终点的含义也可能不同。有的动作持续 40 秒,有的动作持续 75 秒;有的传感器在前段变化剧烈,有的传感器只在后段才显出差异。在这种状态下,如果说 直接放进去,实际上就是把长度不同、语义区间也不同的记录,当作同一种整齐输入来对待。
| 如果原样保留会出现的问题 | 为什么难以直接比较 |
|---|---|
| 动作长度各不相同 | 很难说每条输入都包含同样分量的信息 |
| 起点和终点的意义不同 | 很难说相同位置的值处在同一阶段 |
| 关键变化只出现在某些区间 | 一次性整段送进去时,关键区间可能被冲淡 |
所以,输入窗口并不只是一个“切分技术”,而是在决定 哪一段范围应被看作一个比较单位。
先要定下来的四件事¶
决定输入窗口时,至少应先把下面四件事收口。
| 先要定什么 | 换成问题就是 |
|---|---|
| 起点 | 一次动作的意义从哪里开始? |
| 终点 | 同一条输入应当包含到哪里为止? |
| 长度标准 | 长度不同的样本要按什么共同标准对齐? |
| 对齐标准 | 是按绝对时间对齐,还是按进度对齐? |
这四件事并不只在顺序模型里才需要。即使是在做汇总表时,里面其实已经藏着同样的判断。把动作分成前段、中段、后段,本身就意味着:输入窗口和对齐标准其实早就先被决定过了。
同一份源数据可以有多种窗口设计¶
假设我们手里有一次完整动作的时间序列。即使是同一份数据,窗口的切法也可能有很多种。
| 窗口设计方式 | 在什么情况下更自然 | 仍然会留下的限制 |
|---|---|---|
| 从开始到结束整段作为一条输入 | 当一次动作的完整形状最重要时 | 长度差异大时难以对齐 |
| 按进度重新分成相同数量的区间 | 当前/中/后段结构比较更重要时 | 一部分绝对时间差异会消失 |
| 只截取最近 N 秒 | 当动作尾段征兆更重要时 | 前段上下文可能会丢失 |
| 只保留某个基准事件前后区间 | 当特定触发点附近的模式最重要时 | 整个动作结构会看得少一些 |
所以,输入窗口并不是 唯一正确答案,而是一种会随着问题变化而变化的结构选择。
所谓“对齐长度”,是在保留什么、放弃什么¶
对齐长度,也不只是把数值个数对齐。长度一旦被对齐,某些信息会更明显地保留下来,另一些则会变得不那么直接。
| 长度对齐方式 | 主要保留下来的东西 | 不那么直接保留下来的东西 |
|---|---|---|
| 按进度切区间 | 动作阶段之间的相对结构 | 实际耗时差异 |
| 按固定间隔重采样 | 时间轴上的整体形状 | 细碎的瞬时变化 |
| 固定长度截取 | 同长度输入之间的直接比较 | 截取范围外的信息 |
| 压缩成汇总特征 | 整体趋势与可比较数值 | 细节时间序列形状 |
所以,长度对齐方式不能只按模型方便来定。例如,如果实际时间差本身很重要,那么只保留进度视角时,就可能丢掉关键的信息。反过来,如果问题的重点是 动作是否在后段崩掉,那么即使总时长不同,按进度切区间也可能更合适。
用一个场景重新看¶
假设动作 A 持续 40 秒,动作 B 持续 80 秒。两者都表现出“前段稳定、后段下降”的结构,但如果按绝对时间去看,下降出现的位置会显得不一样。
| 动作 | 按绝对时间看到的样子 | 按进度重新读出来的样子 |
|---|---|---|
| A | 30 秒之后急剧下降 | 在最后 25% 区间里下降 |
| B | 65 秒之后急剧下降 | 在最后 25% 区间里下降 |
如果问题是 它在第几秒发生急跌?,那按绝对时间对齐更重要。反过来,如果问题是 动作最后阶段是否出现崩塌结构?,按进度对齐就更自然。也就是说,窗口和对齐标准不是由数据自己决定的,而是由问题决定的。
一旦输入窗口定下来,同样的判断就可能继续走向两个方向。
| 输入窗口决定之后的方向 | 保留下来的东西 |
|---|---|
| 做成汇总特征 | 单行汇总输入 |
| 保留区段顺序 | 保留时间顺序的输入组合 |
例如,如果把一次动作重新对齐成 10 个进度区间,接下来就会出现两个选择。
- 可以把 10 个区间平均值和差值做成汇总特征,折叠成一条输入。
- 也可以保留这 10 个区间本身的顺序,作为保留时间顺序的候选输入结构。
也就是说,决定输入窗口,一方面解释了汇总特征是从哪里来的,另一方面也解释了“保留顺序的输入结构”是按照什么标准做出来的。只有窗口先被定下来,后面的分岔到底是 汇总输入 还是 保留顺序的输入,才能说得一致。
下面这个小图,会更清楚地说明为什么同一个窗口决定,会产生两种候选输入结构。
flowchart TD
A[窗口化事件序列]
A --> B[压缩成汇总特征]
A --> C[保留有序片段]
B --> D[单行特征输入]
C --> E[类似序列的输入候选]
这里也需要把边界分清。这一节回答的是 为什么把输入窗口切成这样,而不是解释在这个输入之上,哪种学习结构更合适。
| 问题 | 这一节回答吗 | 这一节暂时不展开吗 |
|---|---|---|
| 一条输入从哪里开始、到哪里结束? | 是 | 否 |
| 长度不同的样本按什么标准对齐? | 是 | 否 |
| 这种输入结构之后要怎样用于学习? | 否 | 是 |
| padding、masking、架构细节该怎么实现? | 否 | 是 |
输入窗口(window)不是因为模型要求才出现的格式,而是“什么应被看作一条可比较输入”的数据建模结果。这样整理之后,即使后面继续读取更长的输入结构,也会先回头看 为什么输入窗口被切成这样。同时也更容易看出来:汇总特征本身,也已经是建立在某个窗口和对齐标准之上的结果。
来源与参考资料¶
- Google for Developers,
Machine Learning Glossary中的labeled example。因为 example 是特征和标签一起定义的单位,所以它支持这一节的核心:在把原始时间序列叫做输入之前,应该先固定一条输入的起点、终点和长度标准。 https://developers.google.com/machine-learning/glossary / 确认日期: 2026-07-20 - W3C,
PROV-Overview. provenance framework 说明对象识别、派生关系和可复现性应得到支持,因此它强化了一个更高层的框架:输入窗口和对齐标准背后的规则,也应当被可复现地记录下来。 https://www.w3.org/TR/prov-overview/ / 确认日期: 2026-07-20 - U.S. Bureau of Labor Statistics,
Base period. 它提供了“用于比较的参考时段”这一一般概念,因此支持这一节的判断:究竟由绝对时间还是由进度来充当比较标准,应该先由问题来决定。 https://www.bls.gov/bls/glossary.htm / 确认日期: 2026-07-20