FNet: Mixing Tokens with Fourier Transforms

论文地址:

整体思路以及计算方式

思路非常简单,利用FFT进行token mix和feature mix,整体计算公式如下:

  • 输入:XRn×dX\in \mathbb R^{n\times d}

  • O=FFT(FFT(X,d=1),d=2).realRn×dO=\mathrm{FFT}(\mathrm {FFT}(X, d=-1),d=-2).real\in \mathbb R^{n\times d}

时间复杂度

O(n2d+ndlogd+dnlogn)O(n^2 d + n d\log d + dn\log n )

训练以及loss

不变。

代码

实验以及适用场景

实验比较有意思,列出几个比较有意思的实验:

  • BERT:83.3

  • FNet(在seq和feature两个维度进行FFT):76.7

  • Linear(在feature和seq两个维度过全连接,可学):77.0

  • Random(在feature和seq两个维度过全连接,不可学):56.6

  • FFN-only(只有FFN):49.3

实验结果说明,只有进行seq和feature两个维度的mix,就能得到相当合理的结果。

备注:该方法只能在Encoder中使用。

细节

暂无。

简评

一个有意思的思路,不知道能否应用在单向模型中。

Last updated