解题思路
本题没有复杂的模型训练过程,只需要严格按照题目给出的公式完成一次前向计算,整体采用模拟算法和矩阵乘法。
首先处理 S 层双向循环网络。对于每一层,正向状态按照 1→N 的顺序递推,反向状态按照 N→1 的顺序递推。每个位置分别计算输入向量与输入权重的乘积、上一状态与循环权重的乘积,再加上偏置并对 MOD 取模,最后将正向和反向状态拼接,作为下一层的输入。
完成 S 层编码后得到每个位置的 2R 维向量 et。
接着计算 A 个注意力头。对于每个头,先由 et 分别计算查询向量、键向量和值向量,再枚举位置 t 和 s,通过点积得到注意力分数,并使用该分数对所有值向量进行加权求和。题目明确不需要使用缩放、softmax 或 mask,因此直接按照公式计算并取模即可。