해결된 질문
작성
·
201
·
수정됨
0
1.q와 k를 내적 하는 이유가 궁금합니다. 이는 입력의 유사도 행렬을 얻기 위함으로 알고 있습니다. 그렇다면 q와 k가 아닌 q와 q의 트랜스포즈로 내적하면 안되는걸까요?
음 ...업데이트 할때 q와 k가 비슷하게 학습되었다는 가정을 가지고 내적 한걸까요?
2.그리고 Multi Head와 그냥 Self attention의 차이가 궁금합니다.
별도의 파라미터로 학습되기때문에 하나일때보다 많은 관점이 녹아있다고 생각하면 될까요?
3.다른 댓글에서 코드A@V가 리니어 라고 하셨는데요
PPT에서는 SA(z)=Av와 [SA1(z)...]Umsa가 따로 있습니다. 코드에서는 A@V만 있는데 어떻게 연결지어서 봐야 할지 잘 모르겠습니다.
답변 1
0
안녕하세요.
말씀하신 유사도 개념이 맞습니다. 그리고 K대신 Q로 대체하신다는 것은 구조적으로는 가능하다고 보는데 내적 Q^TQ를 하면 Q의 시퀀스 내부에서의 관계들이 계산되기 때문에 우리가 정의한 개념하고는 맞지 않습니다. 그래서 구조적인 것만 보면 Av에서 A가 v의 마스킹 역할을 하는 것인데 K, Q대신 다른 구조를 가진 A를 직접 정의해서 사용하셔도 됩니다. 당연히 성능은 검증을 하셔야 합니다 :)
맞습니다.
각각의 AV를 통해 SA1, SA2, ...를 각각 구해서 단순히 합친 것(concatenate)입니다!
감사합니다.