모든 수식에서 Key가 아니라 Query를 Transpose 하는 형태로 표현하신 이유가 있으실까요? 보통의 transformer 구현에서는 hidden representation은 [bsz, len, dim]으로 표현하기 때문에 Q @ K^T라고 표현해야 [bsz, len, len] 쉐입이 나올 것 같은데 여기에서는 hidden represenation을 기본적으로 [bsz, dim, len]으로 생각하신 걸까요?
말씀대로 Q@K^T로 써야 (bsz, seq_len, seq_len)이 나오는 것이 맞고 실제로 transformer, shaw's RPE, TUPE, DeBERTa 연구진들은 수식을 전개할 때 Q@K^T로 전개한 것을 논문에서 확인할 수 있습니다. 다만, 처음으로 attention의 decompose를 제안했던 transformer-xl(주범)은 논문에서 Q^T@K로 전개했고 RoPE paper에선 기껏 이후 논문들에서 Q@K^T로 수식을 전개해놓으니 각 논문들을 2.3절 Relative position embedding part에서 이전 RPE들을 Q^T@K form으로 정리하고 본인들의 rotary embedding 또한 Q^T@K로 수식을 정리했기에 본 발표에서는 논문의 수식을 그대로 사용했습니다. 본 발표의 모든 Q^T@K을 Q@K^T로 이해하셔도 무방합니다!
모든 수식에서 Key가 아니라 Query를 Transpose 하는 형태로 표현하신 이유가 있으실까요?
보통의 transformer 구현에서는 hidden representation은 [bsz, len, dim]으로 표현하기 때문에 Q @ K^T라고 표현해야 [bsz, len, len] 쉐입이 나올 것 같은데 여기에서는 hidden represenation을 기본적으로 [bsz, dim, len]으로 생각하신 걸까요?
말씀대로 Q@K^T로 써야 (bsz, seq_len, seq_len)이 나오는 것이 맞고 실제로 transformer, shaw's RPE, TUPE, DeBERTa 연구진들은 수식을 전개할 때 Q@K^T로 전개한 것을 논문에서 확인할 수 있습니다. 다만, 처음으로 attention의 decompose를 제안했던 transformer-xl(주범)은 논문에서 Q^T@K로 전개했고 RoPE paper에선 기껏 이후 논문들에서 Q@K^T로 수식을 전개해놓으니 각 논문들을 2.3절 Relative position embedding part에서 이전 RPE들을 Q^T@K form으로 정리하고 본인들의 rotary embedding 또한 Q^T@K로 수식을 정리했기에 본 발표에서는 논문의 수식을 그대로 사용했습니다. 본 발표의 모든 Q^T@K을 Q@K^T로 이해하셔도 무방합니다!
讲的很好,感谢你的分享👍
30:20 저게 왜 아핀변환인가요? 이동이 없었으니 선형변환 아닌가요?
말씀대로 Linear Transformation이 맞습니다! 자료를 만들다 착오가 있었네요 😥 37:11 에서는 linear transform이라고 잘 설명해놓고...
발표 잘들었습니다. 33:26 초에 컴플렉스 스페이스이기 때문에 conjugate를 건다는말이 잘 이해가 되지 않습니다. rotation행렬을 conjugate를 걸면 어떤 행렬이 나오는 것인가요 ??
저도 다시 확인해봤는데 수식 설명에 틀린? 지금 저도 납득이 잘 안되는 설명이네요... 정리하고 답변 드리겠습니다!!
답변이 너무 늦어서 죄송합니다 ㅠ
RoPE는 d-dimension space를 d/2 sub-spaces로 나눠서 complex space를 사용합니다. (논문의 e^{} -> 오일러 공식, 3.2.2 / Eq (15) 참고)
때문에 은 복소 공간에서의 내적이기에 q_m e^{mi\epsilon} conj( k_n e^{ni\epsilon} )으로 수식이 정리됩니다.
k_n은 real part이기 때문에 slide의 수식처럼 q_m k_n e^{mi\epsilon} conj(e^{ni\epsilon})으로 정리할 수 있습니다.
그리고 질문자께서 rotation matrix에 conjugate를 걸면 어떤 행렬이 나오는지에 대해서도 말씀주셨는데, rotation은 orthogonal하기 때문에 R^{-1} = R^T가 성립하고 복소공간에선 R^{-1}=conj(R)이 성립합니다. naive하게 conj(e^{ni\epsilon})은 e^{-ni\epsilon}으로 역방향으로 회전하는 행렬로 이해하실 수 있을 것 같습니다!
틀린 부분 있으면 언제든 지적해주세요 감사합니다 :)