## 3 Results and Discussion
### Quantitative Results
#### 3.4.2 Training Dynamics  
As seen in Figure 5, the GRU architecture showed a rapid decrease in average training loss within the first few epochs, suggesting that the gated recurrent mechanism efficiently captured relevant features from the textual data early in training. As the epochs progressed, the GRU curve progressively flattened and approached a near-zero region, reflecting the model's increasing confidence in distinguishing job-candidate pairs that are highly similar from those that are not. Although there is some minor fluctuation visible in the tail end of the curve, the overall trend indicates strong convergence characteristics. As seen in Figure 6, the LSTM model exhibited a broadly similar trajectory of loss reduction but with a slightly more pronounced early-stage decrease. This is attributable to the LSTM's capacity to retain longer-term dependencies in textual descriptions, which can be especially beneficial for resumes and job posts containing extensive lists of qualifications. Over time, the loss stabilized to a near-constant level, illustrating that the model successfully learned to align relevant job-candidate embeddings. Finally, Figure 7 demonstrates the Transformer architecture's steep initial drop in loss, which was followed by a smoother convergence phase relative to the recurrent approaches. The self-attention layers in the Transformer captured global semantic relationships throughout the text, allowing faster learning in earlier epochs and relatively stable optimization behavior. Despite slight oscillations, the Transformer-based head generally achieved the lowest plateau, highlighting its robustness for complex multisentence inputs. Collectively, these training curves underscore that all three architectures can effectively reduce the margin in the learned embedding space, but each model exploits different internal mechanisms for capturing long-range dependencies, with the Transformer showing especially rapid early gains and strong final convergence. The GRU head started at a loss of \(\sim\)0.19 and pushed it below 0.05 in the first 20 epochs, confirming the very fast convergence typical for compact gated units [20]. By epoch 100, the curve dropped under 0.02; after epoch 350, it flattened close to 0.008 and settled at \(\sim\)0.003 near epoch 900, indicating that further training yielded only marginal refinement of the embedding space. Because the model reached 95% of its eventual gain in under a minute (Table 5), it is attractive for frequent retraining whenever new job families appear. The LSTM began slightly higher (\(\sim\)0.21) and needed \(\sim\)25 epochs to descend below 0.05, reflecting its larger parameter count. Nevertheless, the curve kept improving and broke  
Figure 5: GRU—average training loss vs. epoch. the 0.01 barrier around epoch 500, reaching a final plateau at \(\sim\)0.004 by the end of training. The longer tail confirms observations by [PERSON] et al. [32] that LSTMs continue to extract small gains from extended training; whether this extra accuracy justifies the increased training time depends on hardware availability. Self-attention accelerates optimization: Starting at 0.11, the loss collapsed under 0.03 within only 20 epochs--twice as fast as either recurrent alternative. The curve passed 0.01 before epoch 250 and leveled off around 0.004 at epoch 900--the lowest steady state value among all heads. These numbers confirm that the Transformer offers the best speed-to-performance ratio when documents exceed one thousand characters. In Figures 8-10, we present the validation loss curves over consecutive training epochs for three distinct model architectures. Each plot reveals a rapid decrease in loss during the initial epochs, indicating that the networks quickly learned to differentiate between similar and dissimilar job-candidate pairs. Subsequently, the curves flattened out and hovered around low values, signifying that the models converged to stable solutions as training progressed. Figure 6: LSTM—average training loss vs. epoch.