Loading...
正在加载...
请稍候

Sessa:选择性状态空间注意力新架构深度解析

✨步子哥 (steper) 2026年04月23日 05:23
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sessa:选择性状态空间注意力新架构深度解析</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;600;700&family=Noto+Serif+SC:wght@400;600&family=Source+Code+Pro:wght@400;600&display=swap" rel="stylesheet"> <style> /* Global Styles & Layout */ html, body { margin: 0; padding: 0; width: 100%; height: 100%; } body { background-color: #FFFFFF; font-family: "Noto Serif SC", serif; font-size: 16px; line-height: 1.8; color: #212529; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .container { max-width: 840px; margin: 2.5em auto; padding: 3em 4em; background-color: #FFFFFF; border: 1px solid #e9ecef; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); border-radius: 8px; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: "Noto Sans SC", "Noto Serif SC", sans-serif; font-weight: 700; } h1 { font-size: 28px; text-align: center; margin-top: 24px; margin-bottom: 20px; color: #212529; } h2 { font-size: 22px; margin-top: 2.8em; margin-bottom: 1.5em; padding-bottom: 0.4em; border-bottom: 1px solid #dee2e6; display: flex; align-items: center; } h2::before { content: ''; display: inline-block; width: 14px; height: 14px; background-color: #0D6EFD; border-radius: 50%; margin-right: 0.75em; flex-shrink: 0; } h3 { font-size: 20px; margin-top: 2.2em; margin-bottom: 1.2em; } h4 { font-size: 18px; margin-top: 2em; margin-bottom: 1em; } p { margin-bottom: 1.2em; } a { color: #0D6EFD; text-decoration: none; transition: color 0.2s; } a:hover { text-decoration: underline; } strong, b { color: #212529; font-weight: 600; } /* Elements */ hr { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(13, 110, 253, 0), rgba(13, 110, 253, 0.75), rgba(13, 110, 253, 0)); margin: 3.5em 0; } blockquote { border-left: 4px solid #0D6EFD; margin: 1.8em 0; padding: 0.8em 1.5em; color: #495057; background-color: #f8f9fa; border-radius: 0 4px 4px 0; } code { font-family: "Source Code Pro", monospace; background-color: #e9ecef; padding: 0.2em 0.4em; border-radius: 4px; font-size: 0.9em; color: #c7254e; } pre { background-color: #282c34; color: #abb2bf; padding: 1.5em; border-radius: 8px; overflow-x: auto; font-family: "Source Code Pro", monospace; font-size: 0.9em; line-height: 1.5; margin: 1.5em 0; } pre code { background: none; padding: 0; color: inherit; } table { width: 100%; border-collapse: collapse; margin: 2em 0; font-size: 0.95em; } th, td { padding: 0.8em 1em; text-align: left; border-bottom: 1px solid #dee2e6; } thead th { border-bottom: 2px solid #0D6EFD; color: #212529; font-weight: 600; } tbody tr:hover { background-color: rgba(13, 110, 253, 0.05); } ul, ol { padding-left: 1.8em; } li { margin-bottom: 0.6em; } .source-ref { font-size: 0.75em; vertical-align: super; color: #6c757d; cursor: help; text-decoration: none; font-family: sans-serif; margin: 0 2px; } /* Table of Contents */ .toc { background-color: #f8f9fa; padding: 1.5em 2em; border-radius: 8px; margin-bottom: 2.5em; border: 1px solid #e9ecef; } .toc h3 { margin-top: 0; margin-bottom: 1em; font-size: 18px; color: #212529; text-align: center; } .toc-level-2 { list-style-type: none; padding-left: 0; } .toc-level-2 > li { margin-bottom: 0.8em; font-weight: 600; } .toc-level-3 { list-style-type: none; padding-left: 2em; margin-top: 0.6em; } .toc-level-3 > li { margin-bottom: 0.4em; font-weight: 400; } .toc a { color: #0D6EFD; text-decoration: none; } .toc a:hover { text-decoration: underline; } .toc-counter { margin-right: 0.5em; color: #0D6EFD; } /* Chart Placeholder & Generated Chart*/ .chart-placeholder, .generated-chart { margin: 2em 0; padding: 1.5em; text-align: center; background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; } .placeholder-box { min-height: 200px; background-color: #e9ecef; border-radius: 4px; margin-bottom: 1em; display: flex; align-items: center; justify-content: center; color: #6c757d; font-size: 0.9em; } .placeholder-box::before { content: "图表区域 (Chart Area)"; } .chart-placeholder figcaption { font-size: 0.9em; color: #495057; line-height: 1.4; margin-bottom: 1.2em; } .generated-chart figcaption { font-size: 0.9em; color: #495057; line-height: 1.4; margin-top: 1em; } </style> </head> <body> <div class="container"> <h1>Sessa:选择性状态空间注意力新架构深度解析</h1> <nav class="toc"> <h3>目录</h3> <ul class="toc-level-2"> <li><a href="#背景与动机"><span class="toc-counter">一、</span>背景与动机</a></li> <li><a href="#核心创新:反馈路径中的注意力"><span class="toc-counter">二、</span>核心创新:反馈路径中的注意力</a></li> <li> <a href="#理论分析:长程记忆与选择性检索"><span class="toc-counter">三、</span>理论分析:长程记忆与选择性检索</a> <ul class="toc-level-3"> <li><a href="#幂律记忆尾">幂律记忆尾</a></li> <li><a href="#灵活的选择性检索">灵活的选择性检索</a></li> <li><a href="#与transformer和mamba的对比">与Transformer和Mamba的对比</a></li> </ul> </li> <li><a href="#实验评估"><span class="toc-counter">四、</span>实验评估</a></li> <li><a href="#架构细节与实现"><span class="toc-counter">五、</span>架构细节与实现</a></li> <li><a href="#结论"><span class="toc-counter">六、</span>结论</a></li> </ul> </nav> <h2 id="背景与动机">背景与动机</h2> <p>现代序列建模主要被两大架构主导:Transformer 和结构化状态空间模型(SSM)<span class="source-ref">【1†source】</span>。Transformer 通过自注意力(self-attention)机制可以访问上下文中的任意元素,但当注意力变得<strong>扩散</strong>(即对大量过去token均匀关注)时,单个token的影响力会被稀释,典型情况下随距离呈 <span style="font-family: 'Source Code Pro', monospace;">O(1/ℓ)</span> 衰减<span class="source-ref">【1†source】</span>。相反,结构化SSM通过显式的循环状态传播信息,但即使像Mamba这样的选择性SSM在无法维持“冻结时间”时,其长程敏感性也会随滞后呈指数衰减<span class="source-ref">【1†source】</span>。因此,这两种机制在<strong>长上下文</strong>下都面临挑战:Transformer 会因为注意力稀释而难以保留远距离信息,而SSM则可能因状态遗忘而丢失长程依赖<span class="source-ref">【1†source】</span>。现有架构要么只通过单次注意力读取来检索过去信息,要么仅通过单一反馈链传播信息,缺乏在单层内对多种路径进行聚合的能力<span class="source-ref">【1†source】</span>。</p> <h2 id="核心创新:反馈路径中的注意力">核心创新:反馈路径中的注意力</h2> <p>Sessa(Selective State Space Attention)架构的核心创新在于<strong>将注意力机制置于反馈路径之中</strong><span class="source-ref">【2†source】</span>。换言之,Sessa将输入依赖的注意力路由注入到循环反馈通路中,从而结合了直接读取输入与通过反馈状态聚合信息的双重机制<span class="source-ref">【2†source】</span>。这一设计使得在单个层内可以实现<strong>多路径聚合</strong>:过去token可以通过多条注意力路径影响未来状态,而不再局限于单次注意力读取或单一循环链<span class="source-ref">【1†source】</span>。具体而言,Sessa的解码器在每层采用单个门控MLP风格的模块,将<strong>因果前向注意力信号</strong>与<strong>反馈项</strong>相结合<span class="source-ref">【5†source】</span>。反馈项通过一个下三角线性系统(因果卷积)来混合过去的输出,实现多跳(multi-hop)路由<span class="source-ref">【5†source】</span>。这种反馈求解(feedback solve)机制正是Sessa实现其长程记忆特性的关键。</p> <h2 id="理论分析:长程记忆与选择性检索">理论分析:长程记忆与选择性检索</h2> <p>Sessa通过反馈路径中的注意力,在理论上展现出显著的长程记忆优势。在给定假设和匹配条件下,Sessa能够实现<strong>幂律记忆尾</strong>,即影响随滞后 <span style="font-family: 'Source Code Pro', monospace;">ℓ</span> 呈 <span style="font-family: 'Source Code Pro', monospace;">O(ℓ<sup>-β</sup>)</span> 衰减,其中 <span style="font-family: 'Source Code Pro', monospace;">0&lt;β&lt;1</span><span class="source-ref">【1†source】</span>。这一衰减速率比Transformer的 <span style="font-family: 'Source Code Pro', monospace;">O(1/ℓ)</span> 和Mamba在失败冻结时间情况下的指数衰减都要慢得多<span class="source-ref">【1†source】</span>。换言之,Sessa的记忆衰减更加平缓,能够在长上下文中更久地保留信息。更重要的是,在相同条件下,<strong>只有Sessa在所比较的模型类中实现了灵活的选择性检索</strong>,包括那些影响力不随距离衰减的配置<span class="source-ref">【1†source】</span>。这意味着Sessa能够根据需要选择性地从过去提取信息,而不受长距离稀释或遗忘的限制。</p> <h3 id="幂律记忆尾">幂律记忆尾</h3> <p>Sessa的反馈机制导致其<strong>传输核(kernel)</strong>具有特殊的下三角结构,从而产生幂律尾部。具体而言,Sessa的反馈可以表示为一个严格下三角矩阵 <span style="font-family: 'Source Code Pro', monospace;">B<sub>fb</sub></span>,其对应的传输核 <span style="font-family: 'Source Code Pro', monospace;">K = (I - B<sub>fb</sub>)<sup>-1</sup></span> 也是下三角矩阵,对角线元素为1<span class="source-ref">【5†source】</span>。通过将反馈路由系数限制在适当范围内,可以证明对于远离源点的目标位置,<span style="font-family: 'Source Code Pro', monospace;">K<sub>t,k</sub></span> 的绝对值被上界 <span style="font-family: 'Source Code Pro', monospace;">C<sub>K</sub>(t-k)<sup>-β<sub>tail</sub></sup></span> 所控制,其中 <span style="font-family: 'Source Code Pro', monospace;">β<sub>tail</sub></span> 介于0和1之间<span class="source-ref">【5†source】</span>。这表明影响随距离呈多项式衰减,而非Transformer的线性衰减或Mamba的指数衰减<span class="source-ref">【5†source】</span>。在均匀路由(最扩散的情况)和恒定正反馈的极端设定下,这种幂律衰减被证明是<strong>紧致</strong>的:影响恰好以 <span style="font-family: 'Source Code Pro', monospace;">Θ(ℓ<sup>-β<sub>tail</sub></sup>)</span> 衰减<span class="source-ref">【5†source】</span>。因此,Sessa的幂律记忆尾不仅存在,而且在某些情况下是衰减速率的下界,无法再快衰减<span class="source-ref">【5†source】</span>。</p> <h3 id="灵活的选择性检索">灵活的选择性检索</h3> <p>选择性检索指的是模型能够根据输入动态地选择关注哪些过去的信息,而不是对所有历史信息一视同仁地衰减。Sessa通过将注意力放入反馈路径,使得模型可以<strong>累积</strong>来自多个路由深度和多个时间路径的信息<span class="source-ref">【5†source】</span>。这种多路径聚合机制赋予Sessa在长程依赖上的灵活性:它可以在需要时保持对某些远距离信息的影响不衰减(即<strong>非衰减配置</strong>),也可以在其他情况下让影响逐渐衰减<span class="source-ref">【1†source】</span>。理论分析表明,在所考虑的模型类中,<strong>只有Sessa能够同时实现幂律衰减和非衰减配置</strong><span class="source-ref">【1†source】</span>。Transformer的注意力权重本质上对所有旧token都呈 <span style="font-family: 'Source Code Pro', monospace;">O(1/ℓ)</span> 衰减,无法保持恒定影响;Mamba在选择门打开时能够避免指数衰减,但一旦无法维持“冻结时间”,敏感性就会迅速丧失<span class="source-ref">【1†source】</span>。相比之下,Sessa即使在注意力路由非常扩散、缺乏明显“冻结”区间的情况下,仍可通过反馈累积保持长程影响,从而实现真正的选择性检索<span class="source-ref">【1†source】</span>。</p> <h3 id="与transformer和mamba的对比">与Transformer和Mamba的对比</h3> <p>为了更直观地理解Sessa的优势,可以将其与Transformer和Mamba进行对比:</p> <ul> <li><strong>记忆衰减速率</strong>:Transformer的记忆影响随距离 <span style="font-family: 'Source Code Pro', monospace;">ℓ</span> 呈 <span style="font-family: 'Source Code Pro', monospace;">O(1/ℓ)</span> 衰减,Mamba在无法保持冻结时间时影响呈指数衰减 <span style="font-family: 'Source Code Pro', monospace;">O(e<sup>-λℓ</sup>)</span><span class="source-ref">【1†source】</span>。Sessa则可实现 <span style="font-family: 'Source Code Pro', monospace;">O(ℓ<sup>-β</sup>)</span> 的衰减,其中 <span style="font-family: 'Source Code Pro', monospace;">0&lt;β&lt;1</span><span class="source-ref">【1†source】</span>。这意味着对于非常大的 <span style="font-family: 'Source Code Pro', monospace;">ℓ</span>,Sessa的影响衰减最慢,能够更长时间地保留信息<span class="source-ref">【1†source】</span>。</li> <li><strong>选择性检索能力</strong>:Transformer对所有旧token的影响力都会随距离稀释,无法选择性地保持某些信息不衰减;Mamba虽然可以通过选择性门控在短期内保持信息,但一旦进入非冻结区间,长程敏感性会急剧下降<span class="source-ref">【1†source】</span>。Sessa则通过反馈机制,即使在注意力非常扩散的情况下,依然能够通过多条路径累积影响,从而实现对特定信息的选择性保持<span class="source-ref">【1†source】</span>。</li> <li><strong>实现机制</strong>:Transformer依赖全局自注意力,计算开销随序列长度二次增长;Mamba通过选择性状态空间模型在线性时间内处理序列,但需要额外的机制来保持长程信息。Sessa则在单层内结合了全局注意力(用于直接读取当前输入)和局部反馈(用于聚合过去信息),在保持线性时间复杂度的同时,实现了超越两者的记忆特性<span class="source-ref">【1†source】</span><span class="source-ref">【5†source】</span>。</li> </ul> <figure class="generated-chart"> <div style="height: 400px; width: 100%;"><canvas id="memoryDecayChart"></canvas></div> <figcaption>图1:Sessa、Transformer与Mamba模型的长程记忆衰减速率对比。Sessa (β=0.5) 呈幂律衰减,衰减速度最慢,长程记忆保持能力最强;Transformer 呈线性衰减;Mamba 呈指数衰减,遗忘速度最快。</figcaption> </figure> <h2 id="实验评估">实验评估</h2> <p>在实验中,Sessa的上述理论优势得到了验证。在<strong>长上下文基准测试</strong>上,Sessa在匹配架构和训练预算的情况下取得了最强的性能<span class="source-ref">【1†source】</span>。这意味着在需要处理长距离依赖的任务中,Sessa能够更有效地保留和利用过去的信息。与此同时,在<strong>短上下文语言建模</strong>任务上,Sessa仍然与Transformer和Mamba风格的基线模型保持竞争力<span class="source-ref">【1†source】</span>。这表明Sessa并非通过牺牲短期性能来换取长期记忆,而是在长短期任务上都表现良好。这种均衡的性能使其在实际应用中具有吸引力,特别是在需要同时处理长短期依赖的场景下。</p> <h2 id="架构细节与实现">架构细节与实现</h2> <p>Sessa的架构设计旨在作为标准解码器块的<strong>即插即用替代</strong><span class="source-ref">【4†source】</span>。它使用单个门控MLP风格的块来包裹一个循环混合器,而非传统Transformer中交替的注意力块和MLP块<span class="source-ref">【5†source】</span>。该混合器结合了标准的因果前向注意力信号和一个反馈项,反馈项通过下三角矩阵乘法来混合过去的输出,从而实现多跳路由<span class="source-ref">【5†source】</span>。为了限制反馈的增益并保证稳定性,Sessa引入了一个超参数 <span style="font-family: 'Source Code Pro', monospace;">γ<sub>max</sub></span>,要求反馈增益 <span style="font-family: 'Source Code Pro', monospace;">|γ<sub>t</sub>|</span> 始终小于 <span style="font-family: 'Source Code Pro', monospace;">γ<sub>max</sub></span>(<span style="font-family: 'Source Code Pro', monospace;">γ<sub>max</sub>&lt;1</span>)<span class="source-ref">【8†source】</span>。这种设计保证了反馈系统的稳定性,并防止梯度爆炸等问题。Sessa的实现基于PyTorch,并支持可选的FlashAttention加速<span class="source-ref">【8†source】</span>。通过简单地替换现有解码器层为Sessa层,模型即可获得更强的长程信息保持能力。</p> <h2 id="结论">结论</h2> <p>Sessa通过将注意力嵌入反馈路径,创造性地解决了Transformer和SSM在长上下文下的局限性。它证明了在单层内聚合多路径信息的可行性,并从理论上和实验上都展示了更慢的长程衰减和更灵活的选择性检索能力<span class="source-ref">【1†source】</span>。这一新架构为序列模型在处理长距离依赖时的信息保持和检索提供了新的思路,有望在需要长上下文理解的自然语言处理、时间序列预测等任务中取得突破。随着对Sessa及其变体的进一步研究,我们期待看到更多结合反馈机制与注意力优势的创新模型出现,推动序列建模能力的发展。</p> </div> <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.2/dist/chart.umd.min.js"></script> <script> document.addEventListener('DOMContentLoaded', function () { const ctx = document.getElementById('memoryDecayChart'); if (ctx) { const labels = [1, 5, 10, 20, 40, 80, 160, 320, 640]; const sessaData = labels.map(l => 1 / Math.pow(l, 0.5)); const transformerData = labels.map(l => 1 / l); const mambaData = labels.map(l => Math.exp(-0.05 * l)); new Chart(ctx, { type: 'line', data: { labels: labels, datasets: [ { label: 'Sessa (β=0.5)', data: sessaData, borderColor: 'rgba(13, 110, 253, 1)', backgroundColor: 'rgba(13, 110, 253, 0.2)', borderWidth: 2, tension: 0.1, fill: false, pointRadius: 3, pointBackgroundColor: 'rgba(13, 110, 253, 1)', }, { label: 'Transformer', data: transformerData, borderColor: 'rgba(25, 135, 84, 1)', backgroundColor: 'rgba(25, 135, 84, 0.2)', borderWidth: 2, tension: 0.1, fill: false, pointRadius: 3, pointBackgroundColor: 'rgba(25, 135, 84, 1)', }, { label: 'Mamba (指数衰减)', data: mambaData, borderColor: 'rgba(255, 193, 7, 1)', backgroundColor: 'rgba(255, 193, 7, 0.2)', borderWidth: 2, tension: 0.1, fill: false, pointRadius: 3, pointBackgroundColor: 'rgba(255, 193, 7, 1)', } ] }, options: { responsive: true, maintainAspectRatio: false, scales: { x: { type: 'logarithmic', title: { display: true, text: '滞后距离 ℓ (对数刻度)', color: '#212529', font: { size: 14, family: "'Noto Sans SC', sans-serif" } }, ticks: { color: '#212529', font: { family: "'Source Code Pro', monospace" }, callback: function(value, index, values) { if (value === 1 || value === 10 || value === 100 || value === 1000) { return value; } } }, grid: { color: '#E9ECEF', borderDash: [5, 5] } }, y: { type: 'logarithmic', title: { display: true, text: '影响强度 (对数刻度)', color: '#212529', font: { size: 14, family: "'Noto Sans SC', sans-serif" } }, min: 0.0001, max: 1.2, ticks: { color: '#212529', font: { family: "'Source Code Pro', monospace" }, callback: function(value, index, values) { return Number(value.toExponential(0)); } }, grid: { color: '#E9ECEF', borderDash: [5, 5] } } }, plugins: { legend: { position: 'top', labels: { color: '#212529', font: { size: 12, family: "'Noto Sans SC', sans-serif" }, usePointStyle: true, pointStyle: 'circle' } }, tooltip: { mode: 'index', intersect: false, callbacks: { title: function(tooltipItems) { return '滞后距离 ℓ: ' + tooltipItems[0].label; }, label: function(context) { let label = context.dataset.label || ''; if (label) { label += ': '; } if (context.parsed.y !== null) { label += context.parsed.y.toExponential(2); } return label; } } }, title: { display: false } } } }); } }); </script> </body> </html>

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

登录