السلاسل الزمنية2021متوسط10 دقيقة قراءة

Autoformer: بنية تفكيك تقدّمية مع ارتباط ذاتي للتنبؤ بعيد المدى بالسلاسل الزمنية

Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting

Wu, H. · Xu, J. · Wang, J. · Long, M. — NeurIPS

المشكلة

بعيد المدى بالسلاسل الزمنية أمرٌ بالغ الأهمية في تطبيقات مثل تخطيط الطاقة والإنذار المبكر بالطقس وتتبّع الأوبئة. لكن النماذج القائمة على تعاني من مشكلتين أساسيتين. المشكلة الأولى أن السلاسل الطويلة تتداخل فيها عدة أنماط — عام وتذبذبات وضجيج عشوائي — وهذا التشابك يُصعّب على النموذج استخلاص علاقات يمكن الاعتماد عليها. المشكلة الثانية أن المعياري يكلّف تعقيداً تربيعياً، والتقريبات المتناثرة التي حاولت تخفيف ذلك (مثل ProbSparse وLogSparse وLSH) تعمل جميعها على مستوى النقاط المنفردة، فتربط خطوات زمنية معزولة بدلاً من تسلسلات فرعية متماسكة، مما يخلق عنق زجاجة في تدفّق المعلومات.

الإسهام

يُقدّم Autoformer ابتكارين محوريين. الأول بنية تقدّمية تجعل الفصل بين الاتجاه العام والموسمية — عبر — عملية تحدث داخل كل طبقة في المرمِّز وفاكّ الترميز، وليس مجرد خطوة معالجة مسبقة تُجرى مرة واحدة. هذا يعني أن النموذج يُنقّح فهمه للاتجاه والموسمية بشكل تدريجي طوال عملية التنبؤ. الابتكار الثاني هو آلية التي تحلّ محل الانتباه الذاتي: تعتمد على لحساب الارتباط الذاتي واكتشاف التبعيات الدورية، ثم تُجمّع التسلسلات الفرعية المتشابهة عبر إزاحات زمنية دورية. النتيجة تعقيد حسابي بمقدار O(L log L) مع قدرة على ربط تسلسلات فرعية كاملة بدلاً من نقاط منفردة متناثرة. على ستة معايير قياسية تشمل الطاقة والمرور والاقتصاد والطقس والأوبئة، حقّق Autoformer انخفاضاً بنسبة 38% في مقارنةً بأفضل النتائج السابقة.

الأثر

أثبت Autoformer أن الانتباه الذاتي ليس السبيل الوحيد — ولا بالضرورة الأفضل — لنمذجة العلاقات الزمنية في السلاسل الزمنية. حين تبيّن أن الروابط الدورية على مستوى التسلسلات تتفوّق على ربط النقاط المنفردة، انفتح الباب أمام جيل جديد من بنيات التنبؤ. أثّرت هذه الورقة مباشرةً في عمل DLinear الذي طرح سؤالاً استفزازياً: هل نماذج خطية بسيطة تكفي أصلاً؟ كما غذّت النقاش الأوسع حول ماهية التحيّزات الاستقرائية التي تحتاجها نماذج السلاسل الزمنية فعلاً. فكرة التفكيك الداخلي تبنّتها نماذج لاحقة عديدة، والورقة لا تزال مرجعاً أساسياً في هذا المجال.

تخيّل أنك تريد التنبؤ بارتفاع المدّ بعد شهر. راصدة الأحوال الجوية لن تنظر إلى الرسم البياني الخام لمستوى الماء وتحاول فهمه كما هو — فهو خليط متشابك من ارتفاع بطيء للمحيط، ودورات مدّ يومية، وأمواج عشوائية. ما ستفعله هو تفكيك الإشارة طبقة بعد طبقة: تستخرج أولاً الارتفاع الموسمي البطيء، ثم تعزل دورة المدّ التي تتكرر كل 12 ساعة، ثم تتعامل مع وحده.

المُحوِّل التقليدي يحاول قراءة هذا الخليط دفعة واحدة، ويربط بين قراءات منفردة لمستوى الماء عبر الانتباه الذاتي. أما Autoformer فيعمل كراصدة الأحوال تماماً: يفصل باستمرار الاتجاه العام عن الدورات داخل كل طبقة، وبدلاً من ربط نقاط منفردة، يُطابق دورات مدّية كاملة — لأنه يُدرك أن مدّ اليوم يُشبه مدّ الأمس مُزاحاً باثنتي عشرة ساعة.

المشكلة: لماذا يتعثّر المحوِّل في التنبؤ بعيد المدى؟

نماذج مثل Informer وغيرها من بنيات المُحوِّل نجحت في تخفيف التكلفة الحسابية باستخدام نُسخ متناثرة من ، لكنها تشترك جميعاً في قيد جوهري: الروابط النقطية. الانتباه الذاتي يسأل سؤالاً بسيطاً: «ما مدى ارتباط الخطوة الزمنية 42 بالخطوة 100؟» — ثم يُجمّع القيم من النقاط التي حصلت على أعلى الدرجات. في اللغة الطبيعية هذا منطقي، لأن كلمة واحدة قد تقلب معنى الجملة. لكن تعمل بطريقة مختلفة تماماً.

في السلسلة الزمنية، المعنى لا يكمن في نقطة منفردة بل في تسلسلات فرعية كاملة. قراءة حرارة واحدة عند الثالثة مساءً لا تخبرك بشيء مفيد وحدها؛ القوة التنبؤية الحقيقية تأتي من النمط الممتد على مدار اليوم — الدورة النهارية. الانتباه النقطي لا يلتقط هذا النوع من البنية بسهولة: يرى الأشجار واحدةً واحدة لكنه لا يرى الغابة.

المشكلة الثانية هي تشابك الأنماط. أي سلسلة زمنية واقعية تمزج بين اتجاه عام بطيء (مثل احترار تدريجي) ودورات موسمية (صيف وشتاء) وضجيج عشوائي. حين تتداخل هذه المكوّنات، يصعب على أي نموذج أن يستخلص علاقات يعتمد عليها. تحليل السلاسل الزمنية الكلاسيكي عالج هذا منذ عقود عبر التفكيك — لكن كمعالجة مسبقة تُطبَّق مرة واحدة على البيانات الخام قبل بدء النمذجة.

افتح في المختبر
على اليسار: الانتباه النقطي يربط بين خطوات زمنية منفردة. على اليمين: الارتباط الذاتي يربط تسلسلات فرعية كاملة عبر دورات مختلفة. انقر للمقارنة بين الأسلوبين.
تستيقظ التجربة عند وصولك…

الابتكار الأول: التفكيك التقدّمي داخل الشبكة

في الطرق الكلاسيكية مثل ARIMA، يُفكَّك السلسلة الزمنية قبل إدخالها إلى النموذج: يُستخلص الاتجاه العام، ثم تُستخلص الموسمية، ثم يُتنبَّأ بكلّ مُركّبة على حدة. المشكلة أن هذا التفكيك يحدث مرة واحدة فقط على الماضي المعلوم، ولا يملك النموذج فرصة لتعديله أثناء بناء تنبؤه للمستقبل.

الفكرة المحورية في Autoformer هي تحويل التفكيك إلى وحدة داخلية تعمل داخل الشبكة نفسها. بعد كل طبقة فرعية — سواء كانت طبقة انتباه أو — يمرّ التمثيل الوسيط عبر وحدة تفكيك السلسلة التي تفصله إلى مُركّبتين باستخدام متوسط متحرك بسيط: مُركّبة الاتجاه (النسخة المُنعَّمة التي تعكس التغيّرات البطيئة)، والمُركّبة الموسمية (وهي الباقي الذي يحمل التذبذبات).

الصورة الذهنية هنا كتقشير بصلة: كل طبقة تنزع قشرة إضافية من الاتجاه، فتتبقّى إشارة موسمية أنقى للطبقة التي تليها. أما فيُراكم قطع الاتجاه المستخرجة من كل طبقة ويجمعها تدريجياً لبناء تنبؤ الاتجاه النهائي.

Xt=AvgPool ⁣(Padding(X)),Xs=XXt\mathcal{X}_t = \text{AvgPool}\!\bigl(\text{Padding}(\mathcal{X})\bigr), \qquad \mathcal{X}_s = \mathcal{X} - \mathcal{X}_t
وحدة تفكيك السلسلة — الفصل بالمتوسط المتحركبالنسبة لسلسلة مدخلات 𝒳 ∈ ℝ^{L×d}، يُمرَّر المتوسط المتحرك (AvgPool مع حشو) على الإشارة لتنعيم التذبذبات الدورية، فنحصل على مُركّبة الاتجاه 𝒳_t. المُركّبة الموسمية 𝒳_s هي ما يتبقّى بعد طرح الاتجاه من الإشارة الأصلية. تُطبَّق هذه الوحدة بعد كل طبقة فرعية في البنية بأكملها.
افتح في المختبر
حرّك شريط حجم النافذة وراقب كيف يفصل المتوسط المتحرك الإشارة إلى اتجاه عام وجزء موسمي. كلّما كبرت النافذة، ازداد الاتجاه نعومة.
تستيقظ التجربة عند وصولك…

الابتكار الثاني: الارتباط الذاتي يحلّ محل الانتباه الذاتي

الملاحظة الأساسية التي ينطلق منها هذا الابتكار هي أن السلاسل الزمنية تتّسم بـالدورية: النقطة التي تقع في الموضع ذاته من دورات مختلفة تميل لأن تسلك سلوكاً متشابهاً. حركة المرور صباح الاثنين تُشبه صباح الاثنين الماضي، ودرجة الحرارة عند الظهيرة اليوم تُشبه ظهيرة الأمس.

آلية الارتباط الذاتي تستغلّ هذه الخاصية مباشرةً. بدلاً من أن تسأل «أيّ نقطتين زمنيتين متشابهتان؟» كما يفعل الانتباه الذاتي، تسأل سؤالاً مختلفاً جوهرياً: «أيّ إزاحة زمنية تُعطي أعلى تشابه؟» — وهذا السؤال بطبيعته يكشف البنية الدورية في البيانات. تعمل الآلية على مرحلتين:

المرحلة الأولى — اكتشاف الدورات: يُحسب الارتباط الذاتي R(τ) بين سلسلة الاستعلام وسلسلة المفتاح عبر تحويل فورييه السريع. القمم في R(τ) تدلّ على أطوال الدورات المرجّحة، فتُختار أعلى k إزاحة باعتبارها الدورات الأكثر احتمالاً.

المرحلة الثانية — التجميع بالإزاحة الزمنية: لكل إزاحة مختارة τᵢ، تُدوَّر سلسلة القيم بمقدار τᵢ موضعاً، بحيث تتحاذى التسلسلات الفرعية التي تقع في الطور نفسه من الدورة المُقدَّرة. بعد ذلك تُجمَّع هذه التسلسلات بأوزان مُعايَرة عبر بحسب قوة الارتباط. النتيجة أن كل رابط يلتقط نمطاً كاملاً لتسلسل فرعي، لا مجرد نقطة منفردة.

RQ,K(τ)=F1 ⁣(F(Q)F(K))R_{Q,K}(\tau) = \mathcal{F}^{-1}\!\bigl(\mathcal{F}(Q) \cdot \mathcal{F}^*(K)\bigr)
الارتباط الذاتي عبر FFT (مبرهنة وينر-خينتشين)بدلاً من حساب الارتباط لكل إزاحة على حدة، تُحسب R(τ) لجميع الإزاحات τ ∈ {1, …, L} دفعة واحدة عبر تحويل فورييه السريع. ℱ هو التحويل المباشر، وℱ* هو المرافق المركّب، وℱ⁻¹ هو التحويل العكسي. هذا يخفض التعقيد إلى O(L log L) بدلاً من O(L²) في الحساب المباشر.
Auto-Correlation(Q,K,V)=i=1kRoll(V,τi)R^Q,K(τi)\text{Auto-Correlation}(Q,K,V) = \sum_{i=1}^{k} \text{Roll}(V,\tau_i) \cdot \hat{R}_{Q,K}(\tau_i)
التجميع بالإزاحة الزمنيةتُنتقى أعلى k إزاحة τ₁…τₖ (حيث k = ⌊c·log L⌋) من قمم الارتباط الذاتي. لكل إزاحة منها، تُزاح سلسلة القيم V بمقدار τᵢ لتتحاذى التسلسلات التي تقع في الطور نفسه. أوزان التجميع هي قيم الارتباط الذاتي R̂(τᵢ) بعد تمريرها عبر سوفتماكس. العملية Roll(V, τ) إزاحة دورية: العناصر التي تخرج من نهاية السلسلة تعود إلى بدايتها.
افتح في المختبر
تابع كيف يكتشف الارتباط الذاتي الدوريات عبر FFT، ثم يُزيح التسلسلات الفرعية ويُجمّعها من أطوار متناظرة. بدّل بين العرض المعياري وعرض FFT.
تستيقظ التجربة عند وصولك…

تجميع الصورة الكاملة: بنية Autoformer

بنية Autoformer تحافظ على الهيكل العام لنموذج المعروف في المُحوِّل، لكن مع تغييرين جوهريين: يُستبدل كل انتباه ذاتي بآلية الارتباط الذاتي، ويُلفّ خرج كل طبقة فرعية بوحدة تفكيك السلسلة.

— يستقبل آخر I خطوة زمنية من الماضي. في كل طبقة من طبقاته الـN تحدث عمليتان: (1) ارتباط ذاتي مع ثم تفكيك يُزيل الاتجاه ويُبقي الموسمية، (2) تغذية أمامية مع وصلة متبقية ثم تفكيك آخر. بهذه الطريقة ينزع المُرمِّز طبقات الاتجاه واحدة تلو الأخرى حتى يُخرج تمثيلاً موسمياً نقياً.

فاكّ الترميز — يبدأ بمسارين متوازيين: (أ) المُركّبة الموسمية لآخر I/2 خطوة مُلحقة بأصفار بطول O (وهو )، و(ب) مُركّبة الاتجاه مُلحقة بمتوسط المدخلات. كل طبقة من طبقاته الـM تُجري ثلاث عمليات تفكيك متتالية: ارتباط ذاتي داخلي، ثم ارتباط ذاتي متقاطع مع خرج المُرمِّز، ثم تغذية أمامية. في كل عملية يُستخلص جزء من الاتجاه ويُراكَم عبر إسقاطات قابلة للتعلّم. التنبؤ النهائي هو مجموع الموسمية المُنقَّحة والاتجاه المتراكم.

افتح في المختبر
انقر على أي وحدة لترى وظيفتها. الوحدات الزرقاء تتولّى تفكيك الاتجاه، والخضراء تكتشف التبعيات الدورية عبر الارتباط الذاتي.
تستيقظ التجربة عند وصولك…
وحدة تفكيك السلسلة — التنفيذ الأساسي بـ PyTorchpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import torch
import torch.nn as nn

class SeriesDecomp(nn.Module):
    """فصل الاتجاه عن الموسمية بالمتوسط المتحرك."""
    def __init__(self, kernel_size: int = 25):
        super().__init__()
        self.kernel_size = kernel_size
        # حشو للحفاظ على الطول
        self.avg = nn.AvgPool1d(
            kernel_size=kernel_size, stride=1,
            padding=0  # حشو يدوي أدناه
        )

    def forward(self, x):
        # شكل x: (دفعة، طول، قنوات)
        # حشو الطرفين للحفاظ على الطول
        pad = self.kernel_size // 2
        front = x[:, :1, :].repeat(1, pad, 1)
        end = x[:, -1:, :].repeat(1, pad, 1)
        x_padded = torch.cat([front, x, end], dim=1)

        # المتوسط المتحرك → الاتجاه
        # AvgPool1d تتوقع (دفعة، قنوات، طول)
        trend = self.avg(x_padded.permute(0, 2, 1))
        trend = trend.permute(0, 2, 1)

        # الموسمية = الأصل − الاتجاه
        seasonal = x - trend
        return seasonal, trend

الكفاءة: O(L log L) مع روابط أغنى

تعقيد الارتباط الذاتي الحسابي يبلغ O(L log L)، وهذا يأتي من مصدرين. أولاً، حساب الارتباط لجميع الإزاحات الـL يتم دفعة واحدة عبر تحويل فورييه السريع بتعقيد O(L log L). ثانياً، لا تُستخدم جميع الإزاحات بل تُنتقى k = ⌊c·log L⌋ إزاحة فقط، وكل خطوة تجميع تعالج سلسلة بطول L، فيكون الإجمالي O(L log L).

لكن التعقيد وحده ليس القصة كاملة. النقطة الأهم هي كثافة المعلومات في كل رابط. الانتباه الذاتي يربط نقطتين منفردتين، فكل رابط يحمل قيمة عددية واحدة. أما الارتباط الذاتي فيربط تسلسلات فرعية كاملة عند كل إزاحة، أي أن الرابط الواحد يحمل L قيمة. النتيجة أن الارتباط الذاتي يُحقّق تعقيداً أقلّ وتدفّق معلومات أغنى في الوقت نفسه — وهذا يكسر المفاضلة التقليدية بين الكفاءة والدقة التي عانت منها أساليب الانتباه المتناثر.

النتائج: تحسّن بنسبة 38% عبر ستة معايير

اختُبر Autoformer على ست مجموعات بيانات واقعية تشمل الطاقة (ETT والكهرباء) والمرور وأسعار الصرف والطقس والأمراض الشبيهة بالإنفلونزا (ILI). طول المدخلات ثُبّت عند 96 خطوة (36 لـ ILI)، مع آفاق تنبؤ تتراوح من 96 إلى 720 خطوة.

على مختلف المعايير وأطوال التنبؤ، حقّق Autoformer أداءً متفوّقاً بشكل متّسق. من أبرز الأرقام: انخفاض متوسط مربع الخطأ بنسبة 74% على ETT (من 1.334 إلى 0.339 عند أفق 336)، و61% على أسعار الصرف، و43% على بيانات الإنفلونزا. المتوسط العام للتحسّن عبر جميع الإعدادات بلغ 38%.

النقطة اللافتة أن أداء Autoformer تراجع بسلاسة كلّما طال أفق التنبؤ. النماذج الأخرى أظهرت قفزات حادة في الخطأ عند الآفاق الطويلة، بينما حافظ Autoformer على استقرار ملحوظ — وهذه خاصية بالغة الأهمية لتطبيقات التخطيط بعيد المدى.

افتح في المختبر
مقارنة متوسط مربع الخطأ عبر آفاق التنبؤ المختلفة. القيم الأقل أفضل. لاحظ ثبات منحنى Autoformer مقابل تصاعد منحنيات النماذج الأخرى.
تستيقظ التجربة عند وصولك…

ما يتعلّمه Autoformer: دورية قابلة للتفسير

من أبرز مزايا الارتباط الذاتي أنه قابل للتفسير. حين فحص الباحثون قيم الإزاحة التي تعلّمها فاكّ الترميز، وجدوا أن النموذج يكتشف دوريات ذات معنى حقيقي دون أن يُخبره أحد بها:

في بيانات المرور (بدقة ساعية)، تركّزت الإزاحات الأعلى عند 24 (دورة يومية) و168 (دورة أسبوعية). وفي بيانات أسعار الصرف (بدقة يومية)، ظهرت دورات شهرية وربع سنوية وسنوية. النموذج اكتشف كل ذلك من البيانات الخام تلقائياً عبر حساب الارتباط الذاتي.

هذه ميزة مهمة لا يوفّرها الانتباه الذاتي: أوزان الانتباه بين خطوات زمنية منفردة لا تكشف عن أي بنية دورية واضحة، بينما الإزاحات المُتعلَّمة تُخبرك مباشرةً بالدورات التي يعتمد عليها النموذج.

السياق في مشهد التنبؤ بالسلاسل الزمنية

  1. 1970

    ARIMA

    بوكس وجينكينز يضعان الإطار الرسمي لنماذج ARIMA. ظلّت المعيار الذهبي للتنبؤ الإحصائي بالسلاسل الزمنية لعقود طويلة.

  2. 2017

    المحوِّل

    Vaswani وآخرون يقدّمون آلية الانتباه الذاتي. صُمّمت أصلاً لمعالجة اللغة الطبيعية، لكن قدرتها على التقاط علاقات بعيدة المدى لفتت أنظار باحثي السلاسل الزمنية.

  3. 2019

    LogTrans

    انتباه LogSparse ينتقي الخطوات الزمنية بفواصل متزايدة أسّياً. يخفض التعقيد إلى O(L(log L)²) لكنه يظلّ يربط نقاطاً منفردة.

  4. 2021

    Informer

    انتباه ProbSparse مع اختيار مبني على تباعد KL. تعقيد O(L log L). أول محوِّل يستهدف التنبؤ بعيد المدى بالسلاسل الزمنية بجدية.

  5. 2021

    Autoformer

    يتخلّى كلياً عن الانتباه النقطي. التفكيك التقدّمي والارتباط الذاتي معاً يحقّقان تحسّناً بنسبة 38% مقارنةً بـ Informer والنماذج السابقة.

  6. 2023

    DLinear

    Zeng وآخرون يُثبتون أن طبقة خطية واحدة قد تُجاري المحوِّلات أو تتفوّق عليها في كثير من المعايير — مما أثار جدلاً واسعاً حول ضرورة البنيات المعقدة من الأساس.

المرجعWu, Xu, Wang, Long. Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting. NeurIPS, 2021.

مصطلحات هذه الورقة