변압기 모델에서 위치 인코딩은 무엇입니까?


23

나는 ML을 처음 접했고 이것이 나의 첫 번째 질문이므로 내 질문이 어리 석다면 죄송합니다.

나는 종이를 읽고 이해하려고 노력하고 있습니다. 주의는 당신이 필요한 전부 이며 그 안에는 그림이 있습니다.

여기에 이미지 설명을 입력하십시오

위치 인코딩 이 무엇인지 모르겠습니다 . 유투브 동영상을 들으면서 단어의 의미와 위치를 모두 포함하고 있으며 관련이 있음을 알게되었습니다.sin(x) 또는 cos(x)

그러나 나는 그것이 정확히 무엇인지 그리고 그것이 정확히 어떻게하는지 이해할 수 없었습니다. 도움이 필요합니다. 미리 감사드립니다.

답변:


31

예를 들어, 단어의 경우 w 위치에 pos[0,L1] 입력 순서대로 w=(w0,,wL1)4 차원 임베딩 및 를 사용하면 ewdmodel=4

ew=ew+[sin(pos100000),cos(pos100000),sin(pos100002/4),cos(pos100002/4)]=ew+[sin(pos),cos(pos),sin(pos100),cos(pos100)]

위치 인코딩 공식은 다음과 같습니다. 함께 (따라서 일본어 종이)를.

PE(pos,2i)=sin(pos100002i/dmodel),
PE(pos,2i+1)=cos(pos100002i/dmodel).
dmodel=512i[0,255]

이 기법은 제안 된 아키텍처에서 단어 순서 (첫 번째 단어, 두 번째 단어 등) 개념없기 때문에 사용됩니다 . 입력 시퀀스의 모든 단어는 (일반적인 RNN 또는 ConvNet 아키텍처와 달리) 특별한 순서 나 위치없이 네트워크에 공급되므로 모델은 단어의 순서를 모릅니다. 결과적으로, 위치 의존적 신호가 각 단어 임베딩에 추가되어 모델이 단어의 순서를 통합하는 데 도움이됩니다. 실험에 기초하여,이 추가는 삽입 정보의 파괴를 피할뿐만 아니라 중요한 위치 정보를 추가합니다. RNN의 경우, 단어를 RNN에 순차적으로 공급합니다. 즉, 번째 단어가 단계에서 공급되어 모델이 단어의 순서를 통합하는 데 도움이됩니다.nn

Jay Alammar의이 기사 는 뛰어난 시각화 기능을 갖춘 논문을 설명합니다. 불행히도, 위치 인코딩에 대한 예제는 현재 정확하지 않습니다 ( 인덱스에 대해 을 사용 하고 홀수 인덱스에 대해 를 사용하는 대신 임베드 차원의 상반기에 을 사용 하고 후반에 를 사용합니다 ).sincossin영형에스


1
: 당신은이 훌륭한 문서는 순수하게 위치 삽입에 초점을 맞추고있다 kazemnejad.com/blog/...
요한 Obadia

6

위치 인코딩은 단어의 값과 문장에서의 위치를 ​​나타냅니다 (끝 또는 중간의 시작과 같지 않음).

그러나 문장의 길이가 얼마든지 될 수 있다는 점을 고려해야합니다. 따라서 길이가 다른 문장이 있으면 'X'단어가 문장의 세 번째입니다 '라고 말하는 것은 의미가 없습니다. 20 단어 문장에서 3 번과 다릅니다.

위치 엔코더가하는 것은 및 함수 의 순환 특성을 이용 하여 문장에서 단어의 위치 정보를 리턴하는 것입니다.에스나는(엑스)영형에스(엑스)


2
감사합니다. 이 위치 엔코더가 및 어떻게 수행되는지 자세히 설명해 주 시겠습니까? 에스나는영형에스
Peyman

1

다른 답변에 추가하기 위해 OpenAI의 ref 구현은 자연 로그 공간으로 계산합니다 (정확도를 높이기 위해 기본 2의 로그를 사용할 수 있는지 확실하지 않습니다). 그들은 인코딩을 생각해 냈습니다. 다음은 C에서 for-for 루프로 다시 작성된 PE 조회 테이블 생성입니다.

int d_model = 512, max_len = 5000;
double pe[max_len][d_model];

for (int i = 0; i < max_len; i++) {
   for (int k = 0; k < d_model; k = k + 2) {
      double div_term = exp(k * -log(10000.0) / d_model);
      pe[i][k] = sin(i * div_term);
      pe[i][k + 1] = cos(i * div_term);
   }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.