moss / speaker_rope.md
czyhust's picture
Initial upload (part 5)
6abc2e0 verified
|
Raw
History Blame Contribute Delete
9.54 kB
# Multi-axis Relative Rotary Encoding with Layer-wise Random Speaker Projection for Speaker-aware Attention
---
# 1. 动机(Motivation)
## 1.1 Transformer 中相对关系建模的重要性
Self-attention 的核心计算为:
[
A_{ij}=q_i^Tk_j
]
该计算仅依赖 query 与 key 的内容匹配,而缺少显式结构关系建模。
因此 Transformer 通常引入位置编码,使模型能够感知 token 间的相对关系。
RoPE(Rotary Position Embedding)的核心思想是不直接将 position embedding 加入 token 表示,而是通过旋转变换将绝对位置映射到 query/key 空间:
[
q_i'=R(p_i)q_i
]
[
k_j'=R(p_j)k_j
]
此时 attention 得分:
[
(q_i')^Tk_j'
]
展开:
# [
q_i^TR(p_i)^TR(p_j)k_j
]
由于旋转矩阵满足:
[
R(a)^TR(b)=R(b-a)
]
因此:
[
\boxed{
A_{ij}
======
q_i^TR(p_j-p_i)k_j
}
]
即 attention 不再依赖绝对位置:
[
p_i,p_j
]
而只依赖:
[
p_j-p_i
]
因此 RoPE 将:
[
\text{absolute position}
]
转化为:
[
\boxed{\text{relative position}}
]
---
# 1.2 Speaker embedding 的特殊性
在 speaker diarization、speaker-attributed ASR 以及 conversation modeling 中,通常利用 speaker embedding:
[
e_s\in\mathbb R^{d_e}
]
表示说话人身份。
然而,与时间位置不同,speaker embedding 不具有绝对坐标语义。
对于任意保持空间结构的旋转:
[
e'_s=Ue_s
]
其中:
[
U^TU=I
]
有:
[
\cos(e_i',e_j')
===============
\cos(e_i,e_j)
]
说明 speaker embedding 的语义主要存在于:
[
\boxed{
\text{relative geometry}
}
]
而非:
[
\text{absolute coordinate}
]
因此,一个理想的 speaker encoding 应满足:
1. 不依赖 speaker embedding 的绝对方向;
2. 保留 speaker embedding 空间中的相对关系;
3. 相同 speaker token 保持较强 interaction;
4. 不同 speaker token 自动产生 attention decorrelation。
---
# 1.3 从二维 RoPE 到 Speaker-aware Rotary Encoding
二维 RoPE 将二维位置:
[
(x,y)
]
映射到两个独立 rotary 子空间:
[
R(x,y)
======
R_x(x)\oplus R_y(y)
]
使不同相对轴分别建模。
类似地,在 speaker-aware attention 中,可以认为:
[
(position,speaker)
]
构成两个不同的相对结构:
* position axis:
时间相对距离;
* speaker axis:
speaker embedding 几何关系。
因此设计:
[
\boxed{
R_{total}
=========
R_{pos}
\oplus
R_{spk}
}
]
其中:
* position rotary 保留原始 RoPE;
* speaker rotary 建模相对 speaker relationship。
---
# 2. 编码设计(Encoding Design)
---
# 2.1 Block-wise Rotary Dimension Split
设 Transformer attention head 维度:
[
d_h
]
划分为:
[
d_h=d_p+d_s
]
其中:
* (d_p):position rotary 子空间;
* (d_s):speaker rotary 子空间。
例如:
[
d_h=64
]
采用:
[
d_p=32
]
[
d_s=32
]
则:
[
q_i=
[q_i^{pos};q_i^{spk}]
]
[
k_i=
[k_i^{pos};k_i^{spk}]
]
即:
[
\boxed{
\text{前半部分编码时间,后半部分编码 speaker}
}
]
---
# 2.2 Position Rotary Branch
position 分支完全保持原始 RoPE。
对于第 (l) 层:
[
q_{i,l}^{pos\prime}
===================
R(p_i)q_{i,l}^{pos}
]
[
k_{i,l}^{pos\prime}
===================
R(p_i)k_{i,l}^{pos}
]
其中:
[
p_i=i
]
---
# 2.3 Layer-wise Random Speaker Projection
## Speaker embedding normalization
首先对 speaker embedding 归一化:
[
\hat e_i
========
\frac{e_i}{||e_i||}
]
后续记:
[
e_i=\hat e_i
]
因此:
[
||e_i||=1
]
---
## Layer-wise projection matrix
不同于共享单一 projection,本方法为每个 Transformer layer 分配独立随机矩阵:
[
\boxed{
W_l\in
\mathbb R^{d_s/2\times d_e}
}
]
其中:
[
\boxed{
(W_l)_{mn}\sim N(0,1)
}
]
并满足:
* 不同 layer:
[
W_l\neq W_{l'}
]
* 同一 layer、同一 utterance:
所有 token 使用同一个:
[
W_l
]
因此:
[
\theta_{i,l}
============
W_le_i
]
---
## 为什么采用 layer-wise projection?
不同 layer 学习不同抽象层级的 speaker relationship。
因此:
layer (l):
[
\theta_{i,l}=W_le_i
]
相当于从不同随机子空间观察 speaker manifold。
同时:
由于同一 layer 内:
[
W_l
]
保持一致:
[
\theta_{j,l}-\theta_{i,l}
=========================
W_l(e_j-e_i)
]
保证 relative speaker property。
---
# 2.4 Speaker Rotary Transformation
第 (l) 层:
[
q_{i,l}^{spk\prime}
===================
R(\theta_{i,l})q_{i,l}^{spk}
]
[
k_{i,l}^{spk\prime}
===================
R(\theta_{i,l})k_{i,l}^{spk}
]
---
# 2.5 Combined Attention
最终:
[
q_i'
====
[
q_i^{pos\prime};
q_i^{spk\prime}
]
]
[
k_j'
====
[
k_j^{pos\prime};
k_j^{spk\prime}
]
]
attention:
[
A_{ij}
======
(q_i')^Tk_j'
]
由于两个子空间正交:
[
\boxed{
A_{ij}
======
A_{pos}
+
A_{spk}
}
]
其中:
[
A_{pos}
=======
(q_i^{pos\prime})^Tk_j^{pos\prime}
]
[
A_{spk}
=======
(q_i^{spk\prime})^Tk_j^{spk\prime}
]
---
# 3. 理论证明(Theoretical Analysis)
---
# 3.1 原始 RoPE 相对位置性质保持
考虑 position branch:
[
q_i^{pos\prime}
===============
R(p_i)q_i^{pos}
]
[
k_j^{pos\prime}
===============
R(p_j)k_j^{pos}
]
attention:
[
A_{pos}
=======
(q_i^{pos\prime})^Tk_j^{pos\prime}
]
展开:
# [
(q_i^{pos})^TR(p_i)^TR(p_j)k_j^{pos}
]
利用旋转性质:
[
R(p_i)^TR(p_j)
==============
R(p_j-p_i)
]
得到:
[
\boxed{
A_{pos}
=======
(q_i^{pos})^TR(p_j-p_i)k_j^{pos}
}
]
因此:
加入 speaker rotary 后:
[
\boxed{
\text{original RoPE relative position property is preserved}
}
]
原因:
position rotary 与 speaker rotary 位于独立子空间。
---
# 3.2 Layer-wise Speaker Rotary Relative Property
对于第 (l) 层:
[
q_{i,l}^{spk\prime}
===================
R(\theta_{i,l})q_{i,l}^{spk}
]
[
k_{j,l}^{spk\prime}
===================
R(\theta_{j,l})k_{j,l}^{spk}
]
因此:
[
A_{spk}^{(l)}
=============
(q_i^{spk})^T
R(\theta_{i,l})^TR(\theta_{j,l})
k_j^{spk}
]
得到:
# [
(q_i^{spk})^T
R(\theta_{j,l}-\theta_{i,l})
k_j^{spk}
]
由于:
[
\theta_{i,l}=W_le_i
]
所以:
[
\theta_{j,l}-\theta_{i,l}
=========================
W_l(e_j-e_i)
]
因此:
[
\boxed{
A_{spk}^{(l)}
=============
(q_i^{spk})^T
R(W_l(e_j-e_i))
k_j^{spk}
}
]
说明:
第 (l) 层 speaker rotary 只依赖:
[
\boxed{
e_j-e_i
}
]
而不依赖:
[
e_i,e_j
]
的绝对坐标。
---
# 3.3 Overall Multi-axis Relative Property
第 (l) 层:
[
A_{ij}^{(l)}
============
A_{pos}^{(l)}
+
A_{spk}^{(l)}
]
即:
# [
q_p^TR(p_j-p_i)k_p
+
q_s^TR(W_l(e_j-e_i))k_s
]
因此:
[
\boxed{
A_{ij}^{(l)}
============
f(
p_j-p_i,
e_j-e_i
)
}
]
同时满足:
* relative position encoding;
* relative speaker encoding。
---
# 3.4 Speaker Rotary Phase Decorrelation
考虑:
[
\Delta e=e_j-e_i
]
speaker rotary 中:
[
R(W_l\Delta e)
]
对应复数形式:
[
e^{iw_r^T\Delta e}
]
其中:
[
w_r\sim N(0,I)
]
由于:
[
w_r^T\Delta e
\sim
N(0,||\Delta e||^2)
]
根据 Gaussian characteristic function:
[
E[e^{ix}]
=========
e^{-\frac12Var(x)}
]
得到:
[
\boxed{
E[
e^{iw_r^T\Delta e}
]
=
e^{-\frac12||\Delta e||^2}
}
]
因此:
[
\boxed{
E[S_m(\Delta e)]
================
m e^{-\frac12||\Delta e||^2}
}
]
随着:
[
||e_j-e_i||
]
增加:
phase cancellation 增强。
因此:
[
\boxed{
speaker\ distance
\uparrow
\Rightarrow
attention\ correlation
\downarrow
}
]
---
# 3.5 与 Cosine Speaker Similarity 的关系
由于:
[
||e_i||=||e_j||=1
]
有:
[
||e_i-e_j||^2
=============
2-2cos(e_i,e_j)
]
因此:
[
E[S]
====
e^{-(1-cos(e_i,e_j))}
]
即:
[
\boxed{
cos(e_i,e_j)
\uparrow
\Rightarrow
speaker\ rotary\ correlation
\uparrow
}
]
与 speaker embedding 几何空间一致。
---
# 4. 设计评价(Design Summary)
## 4.1 方法优势
### (1) 完全保留原 RoPE 能力
采用:
[
R_{total}
=========
R_{pos}\oplus R_{spk}
]
position branch 与原始 RoPE 完全一致。
因此:
* 不破坏已有位置建模能力;
* 不影响长上下文建模。
---
### (2) 从绝对 speaker encoding 转向相对 speaker encoding
传统:
[
x+e_s
]
依赖 speaker embedding 绝对坐标。
本文:
[
R(W_l(e_j-e_i))
]
直接编码:
[
speaker\ relationship
]
---
### (3) Layer-wise random projection 提升表示能力
不同 Transformer layer:
[
W_1,W_2,...,W_L
]
提供不同随机观察空间。
同时:
同层内共享:
[
W_l
]
保证:
[
\theta_j-\theta_i=W_l(e_j-e_i)
]
严格满足 relative property。
---
### (4) 理论性质统一
最终 attention:
[
\boxed{
A_{ij}^{(l)}
============
f(
\Delta p,
\Delta e
)
}
]
同时具有:
* RoPE relative position property;
* speaker relative geometry property;
* speaker distance induced decorrelation。
---
# 4.2 总结
本文提出:
[
\boxed{
\textbf{Multi-axis Relative Rotary Encoding with Layer-wise Random Speaker Projection}
}
]
将 rotary embedding 从单一时间轴扩展到:
[
(position,speaker)
]
通过:
[
\boxed{
R_{total}
=========
R_{pos}
\oplus
R(W_le)
}
]
实现:
* 时间相对关系建模;
* speaker 相对关系建模。
理论证明:
1. 原始 RoPE 的相对位置性质完全保持;
2. speaker rotary 满足 relative speaker encoding;
3. layer-wise random projection 保留 speaker embedding 几何不变性;
4. speaker embedding 距离增加导致 rotary phase cancellation,从而产生 attention decorrelation。
该方法提供了一种无需显式 speaker token、无需全局 speaker index 的 speaker-aware Transformer encoding 机制。