## 4 Methodology
### Multi-Source Domain Adaptation  
Our dataset comprises texts from different central banks (FOMC and ECB) and various historical periods (e.g., spanning multiple economic cycles and policy paradigms like pre-QE, during QE, early hiking phase, late hiking phase). These different sources constitute distinct \"domains\" that may exhibit systematic differences in language style, focus areas, terminology usage, and even policy implications (i.e., domain shift). If a model trained solely on one domain (e.g., FOMC) is directly applied to another (e.g., ECB), performance might drop substantially. To enhance the model's cross-domain generalization ability, we adopt an unsupervised domain adaptation strategy based on domain-adversarial training of neural networks (DANN) [21]. Figure 7 illustrates the DANN architecture. The core idea of DANN is to learn a feature representation that is discriminative for the main task (e.g., interest rate prediction) but indistinguishable concerning the domain source of the data. In other words, the model should learn to focus on the essential task-relevant features shared across domains while ignoring superficial domain-specific features irrelevant to the task. To achieve this, we introduce a domain classifier \(G_{d}\) (with parameters \(\theta_{d}\)) parallel to the main task classification head \(G_{y}\) (parameters \(\theta_{y}\)), following the Hyena feature extractor \(G_{f}\) (parameters \(\theta_{f}\)). The task of \(G_{d}\) is to receive the features \(z=G_{f}(x)\) extracted by \(G_{f}\) and predict the domain \(d\) from which the input sample \(x\) originated (e.g., \(d=0\) for FOMC, \(d=1\) for ECB). The training involves an adversarial objective: first, minimize the main task loss. For samples \((x_{i},y_{i})\) from the source domain (labeled data, e.g., FOMC), minimize the main task (interest rate prediction) loss \(\mathcal{L}_{y}(G_{y}(G_{f}(x_{i})),y_{i})\). This updates parameters \(\theta_{y},\theta_{f}\), making \(G_{f}\) extract useful features for the main task. Second, minimize the domain classification loss (for the domain classifier). For all samples \(x_{i}\) (from source or target domains; target domain  
Figure 7: Diagram illustrating the domain-adversarial training (DANN) module structure. Solid arrows represent the forward pass, while dashed arrows represent the gradient flow. The diagram shows the feature extractor (Gf), the main task classifier (Gy), the domain classifier (Gd), and the gradient reversal layer (GRL). samples lack \(y_{i}\) but have domain label \(d_{i}\)), train the domain classifier \(G_{d}\) to minimize the loss \(\mathcal{L}_{d}(G_{d}(G_{f}(x_{i})),d_{i})\) between its predicted domain label \(\hat{d}_{i}=G_{d}(G_{f}(x_{i}))\) and the true domain label \(d_{i}\) (usually binary or multi-class cross-entropy loss). This updates \(\theta_{d}\), making it accurately distinguish features from different domains. Third, maximize the domain classification loss (for the feature extractor): This is the key to adversarial training. When updating the feature extractor parameters \(\theta_{f}\), we aim not only to minimize the main task loss \(\mathcal{L}_{y}\), but also to maximize the domain classification loss \(\mathcal{L}_{d}\). This means that we want \(G_{f}\) to produce features \(z\) that confuse the domain classifier \(G_{d}\) as much as possible, making it unable to determine the origin domain of \(z\). To implement step 3 (maximizing \(\mathcal{L}_{d}\) with respect to \(\theta_{f}\)) within a standard gradient descent framework, DANN introduces a gradient reversal layer (GRL). The GRL is placed between the feature extractor \(G_{f}\) and the domain classifier \(G_{d}\). In forward propagation, GRL acts as an identity transform (\(GRL(z)=z\)). In backward propagation, when gradients from \(\mathcal{L}_{d}\) pass back through \(G_{d}\) to the GRL, the GRL multiplies the gradient by a negative constant \(-\lambda_{\text{dann}}\) (or simply \(-1\), with \(\lambda_{\text{dann}}\) weighting the loss term) before passing it to \(G_{f}\).