[용지 노트]주의는 당신이 필요로하는 모든 것입니다

시청하기 전에이 문서 자기 관심에 대한 자세한 설명, 변압기의보다 포괄적 인 요약 사본을 읽기 전에 이 기사를 .
이 논문에 대해 살펴 후 자기주의의 기초, 그것은 쉽게 느낀다.
종이 :주의는 당신이 필요로하는 모두이다.

1-2 소개 및 배경

RNN :이 본질적으로 순차적 자연 배제가 병렬화 는 중요한 AT가되는, 교육 예제 이내에 긴 시퀀스의 길이 , AS 메모리 제한 일괄 제약 조건의 예에서.
(아직 계산의 순서에 대한 제한이 있기 때문에, 임시 해결책을) 해결 :

  1. 인수 분해 트릭.
  2. 조건부 연산.

또한 CNN 기본 빌딩 블록으로서, 예컨대하곤 ByteNet, ConvS2S 그러나 :.는 IT를 만든다 먼 위치 사이의 종속 관계를 알아보기 위해 더 많은 diffucult이 . (계산량 비례 X와 Y 출력 시퀀스의 관찰 시퀀스의 길이)

역사 :

이름 설명 한도
seq2seq
인코더 - 디코더 전통적으로, RNN와
RNN \ LSTM \ GRU 방향 : 양방향 방식으로, 깊이 : 단일 층 또는 다층; 긴 시퀀스에 대처하기 어려운 RNN 병렬로 구현 될 수 있으며, 정렬 문제, 뉴럴 네트워크 요구에 필요한 정보를 고정 길이 벡터에 소스 문을 압축 할 수 있도록
CNN 병렬 컴퓨팅, 샘플의 긴 시퀀스 총 메모리, 트릭의 많은 데이터 파라미터 조정의 많은 양이 쉽지 않다
주의 메커니즘 부분 집합주의, 정렬 문제를 해결하기 위해

언급 포인트 :
자기주의,
재발주의 메커니즘.
전달 모델

3 모델 아키텍처

인코더 - 디코더 구조의 대부분 :
입력 시퀀스 : 입력 시퀀스는 X = (X1이, ..., XN ), N의 개수
부호화기 연속 표현을 출력하고, Z = (Z1, ..., 아연), N의 개수
출력 docoder : Y = ( Y1 내지 Ym), M 번호
시각 요소 하나. 생성은 다음. 때 추가 입력을 소비 AS 이전에 생성 된 기호
변압기 모델 아키텍처
transforme 아키텍처 모델 2
전체 아키텍처의 사용 변압기가이 따릅니다 스택 자기주의포인트 - 와이즈 , 완전 연결 레이어 인코더 및 디코더 모두.

3.1 인코더 및 디코더 스택

변신 로봇
변압기 구조

인코더 : N의 스택 6 동일 layers.Each 층 = 두 서브 층 :(从下到上)이

  1. 멀티 헤드 자기주의 메커니즘.
  2. 간단한 위치 와이즈 완전히 conntected 피드 포워드 네트워크 (以下叫ffnn).

인코더
채용은 WE 잔류 연결 + 서브 층 두 (두 서브 층 사이에 잔류 연결)의 각 주변 계층 표준화 . 즉, 각 서브 층의 출력은 LayerNorm (X + 계층 (X)) .

잔류 접속 구조
잔여 연결
모델 + embediding 층의 모든 하위 레이어의 출력 생성 치수 D의 모델 = 512 .

디코더 : A = N. 하부층 삽입 :( THIRD 밑에서 위로 디코더 6 개 동일한 스택 레이어).

  1. 멀티 헤드 자체의 주목 부 계층 (수신 출력 인코더 스택) (마스크)
  2. 인코더 - 디코더 관심
  3. ffnn

transformer_decoding_1디코더 손으로 그린

마스킹 위치에 대한 예측을 보장 내가 보다 적은 위치에 공지 출력에만 의존 할 수 .

각 서브 층 의 잔류 연결 + 계층 표준화 . (잔여 연결 서브 층 각각 반올림. )

3.2주의

관심 机制 就是 매핑 조회 및 출력 (모든 벡터이다)에 키 - 값 쌍의 집합. 출력은 각각의 값에 할당되는 가중치는 해당 키 조회 호환성 함수에 의해 계산 된 값의 가중 합으로 계산된다.

이 문서에서는 사용 attenion입니다 :

  • 확장 도트 제품주의
  • 멀티 헤드주의
    스케일 내적주의

3.2.1 확장 된 도트 제품주의

입력 쿼리 및 차원의 키 구성 (DK) 및 차원의 값 DV . 우리의 내적 계산 의 모든 키를 사용하여 쿼리를 , SQRT (DK)에 의해 각각 분할 하고, softmax를 함수를 적용 얻기 위해 값에 가중치를 .

在实践中우리에 주목 함수 계산 행렬 Q에 함께 포장 동시에 질의들의 세트를 . 키와 값은 행렬 K와 V.로 함께 포장
스케일 도트 제품주의 公式 1
스케일 도트 제품주의 公式 2
스케일 도트 제품주의 公式

PS :이주의 가장 일반적으로 사용되는 기능은 첨가제주의 , DOT주의 제품 - 공간의 DOT-제품보다 빠르고 효율적으로 사용.

D의 경우 K는 유사한 성능이지만 모두 큰 시간 DK 때 매우 작다 내적 규모의 실질적인 증가없이 다음 것이다 소프트 맥스에서 기능을 누르면 영역으로 IT가 매우 작은 그라디언트있다 여기서 , 따라서, 도트 확장 1 / SQRT (DK)에 의해 제품 .

3.2.2 멀티 헤드주의

긴 관심의 경우는 다른 Q / K / V 행렬 결과, 각각의 헤드에 대해 별도의 Q / K / V 가중 매트릭스를 유지한다. 이전과 같이, 우리가 구 Q / K / V 행렬 X-WQ / WK / WV 행렬에 의해 곱해진다.
또한에 : 쿼리, 키, 값.
자동 관심 위에서 설명한 동일한 연산을 수행 할 경우, 오직 8 개의 가중치 행렬이 8 개의 다른 Z 행렬을 얻을 수있다.
그는 관심 헤드는 다른 행렬 Z가 발생했다.

쿼리에 제시된 논문, 키, 값이 상이한 투영 뷰 H를 수행 차원지도 DK, DV하고, 결과를 함께 접합 스케일링 된 내적 주목 선형 매핑으로 최종 출력을 전달한다. 오랜 관심으로 서로 다른 하위 공간에서 위치 정보를 얻을 수 모델.

이들은 연접 다시하면 계획된 , 최종 값의 결과 .
멀티 헤드주의 公式
, 매트릭스가 결과 행렬 Z를 얻기위한 추가의 값 W0 오른쪽 곱하여, 그것은 캡쳐 정보 모든 관심 헤드로부터 8 다른 Z 매트릭스는 매트릭스로 압축했다 그래서이 문장은 FFNN를 공급.
멀티 헤드 Attention1

멀티 헤드주의 사항 :

  • 채용 된 H = 8 평행 관심 층, 또는 헤드 .
  • 이러한 WE 이용 각 DK DV = D = 모델 / H = 64이 . (D 모형 치수를 통합하는)
  • 받는 인해 각각의 헤드의 감소 차원 , 총 계산 비용은 전체 차원 단일 헤드주의와 유사하다 .

주의 모델의 3.2.3 응용 프로그램

변압기 모델 아키텍처
변압기는 멀티 헤드의 관심을 사용하는 세 가지 방법 :

  1. "인코더 - 디코더 관심"레이어에서

    입력으로 자동 관심 인코더 및 디코더의 출력. 인코더에서 이전 계층 키, 값 출력으로부터 --Queries 디코더.
    인코더 - 디코더의 주목은 매트릭스를 생성하기 위해 하층에서 쿼리 점을 제외하고 층과 마찬가지의 멀티 헤드 자체주의를 작동하고, 스택의 부호화 행렬에서 키와 값 출력을 얻는다.

  2. 인코더的자기주의 층 .

    인코더에서 각각의 위치는 인코더의 이전 계층의 모든 위치에 참석할 수
    的Q, K, V都是一样的(입력 매립하고 매립 위치)输入

  3. 디코더的자기주의 층 .

    다음은이 확장 된 우리를 구현 DOT-제품주의의 내부 마스킹 OUT으로는 모든 값 (에 -∞ 설정) 불법 연결에 소프트 맥스에서 어느 대응의 INPUT을.
    에서 자기 관심 층 디코더, 현재 위치의 위치 앞서 전용 액세스를

로컬 멀티 향하고 관심의 사용

위치 피드 포워드 네트워크를 기반으로 3.3 위치 현명한 피드 포워드 네트워크

동일 위치에 각각 별도로인가 완전히 연결된 네트워크 피드 포워드를 포함하는 각 층의 피드 포워드 네트워크의 인코더 및 디코더. 이 본 구성되어 TWO 선형 변형 (두 활성 멤브레인 층)의 활성 간의 RELU . 두 층이 1 * 1 - 회선도 1d로 볼 수있다. hidden_size 변경 : 512> 2048> 512

최대 FFN (X) = (0, + B1 XW1) W2 + B2

다른 사용 그들은 레이어에 레이어에서 매개 변수.
위치 현명한 피드 포워드 네트워크는 실제로 MLP 네트워크입니다.

3.4 묻어 및 소프트 맥스

우리는 차원의 벡터로 입력 토큰 및 출력 토큰으로 변환하는 것을 배웠다 묻어을 사용하여 개발 모델 . 우리는 두 층 사이의 매립 동일한 가중치 행렬 공유사전 softmax를 선형 변환 . 매입 층에서, 우리 SQRT (dmodel)에 의해 곱 그 무게.

위치 상 3.5 인코딩

우리는 어떤 정보를 삽입해야 시퀀스에서 토큰의 상대적 또는 절대적 위치를 약 . 인코더 및 디코더 스택의 바닥에 묻어 입력에 "위치 인코딩"을 추가한다.

각 매립 변압기 --positional 부호화 벡터 입력을 추가한다. 이 벡터는 결정하는 데 도움이 특정 패턴 학습 모델에 따라 각 단어의 위치 , 또는 다른 단어의 시퀀스 사이의 거리를 .

posotional 인코딩

위치 인코딩 t가 묻어 그가 동일한 치수를 dmodel 두 합산 될 수 있도록한다는.

위치 인코딩 할 수 있습니다 배운 고정 .

서로 다른 주파수의 사인 및 코사인 함수를 사용 :
PositionalEncoding

WHERE POS는 위치는 IS와 나는 디멘션입니다.
우리가 있기 때문에 우리는이 기능을 선택 IT는 쉽게 상대 포지션에 의해 참석하기 위해 배울 수있는 모델을 허용겠습니까 가정 의 어떤 고정 된 오프셋 K, Pepos + K가 표현 될 수 AS 선형 함수부터 운영, PEpos.
사인 및 코사인 함수의 주기성, 상기 고정 길이 편차 K (유사주기), 포스트 +의 PE의 K는 위치 PE (직선 관계)의 변화에 선형 포스상의 위치로서,이 쉽게 모델 학습 단어를 나타낼 수있다 단어들 사이의 상대 위치 관계.
이 방법의 장점은 코딩 서열의 길이가 보이지 않는 확장 될 수 있다는 것입니다, 우리는 교육 모델을 번역했다 그러한 것처럼 모든 문장에 초점을 맞추고 훈련보다 긴 문장이다.

다른 NLP 논문에서 캡처로 인해 RNN, CNN 자체가 수, 위치, 일반적으로 훈련 된 벡터를 삽입 있지만 추가 기능을 내장 위치가 더 좋은 정보가 될 것입니다,하지만 거절하지 않는 뛰어난 성능을 가지고 있지 않았다 위치 정보는하지만 변압기 모델에서, 임베딩 위치가 위치 정보의 유일한 공급원이며, 따라서 모델의 핵심 구성 요소 가 아닌 특성 보조 특성.

4 왜 자기 관심

  1. T otal 계산량 층당. (각 층의 총 계산량)
  2. 계산 그쪽의 amoount는 수 병렬화 .
  3. 장거리 의존성 간의 경로 길이 네트워크이다.

(5) 교육

5.1 교육 자료 및 배치

문장 쌍 문장을 사용하여 인코딩 된 바이트 쌍 인코딩. 이는이 공유 소스 목표 어휘 37000에 대한 토큰을.
문장 쌍 대략 연속 길이에 의해 함께 일괄 하였다.

5.2 하드웨어 및 일정

NVIDIA의 GPU P100 8,
기본 모델 : 단계 또는 10 만 훈련 12 시간.
큰 모델 : 훈련 30 단계 (3.5 일).

5.3 최적화

아담 최적화, β1 = 0 : 9 = 0:98 β2와는 θ = 10-9.
다음과 같은 공식에 따라 운동을하는 동안 변경 학습 속도 :
learningrate

5.4 정규화

강하 잔류는 다음이 강하 적용 각 서브 층의 출력시 에, 묻어에서의 합계에서인코더와 디코더 스택에서 양면 위치 인코딩시에 본 논문에서는 Pdrop = 0.1.
(각각의 서브 - 층 출력, 위치 및 인코딩에 묻어, 인코더 및 잔류 강하 세 대한 디코더 스택).

라벨 다듬기
변압기 결과

6 개 결과

6.1 기계 번역

모델 매개 변수의 기계 번역 다양한 :
기계 번역 네트워크 매개 변수

우리의 수가 다를 관심 헤드 와 관심의 키와 값 차원을发现如下. :

  1. 주의 키 크기 DK를 줄이면 모델 품질을 상처
  2. 내적보다 더 정교한 호환성 기능이 도움이 될 수 있습니다
  3. 더 큰 모델은 더 나은
  4. 드롭 아웃은 많은 도움이 될 것입니다 피할 오버 피팅에
  5. 배운 위치 묻어 우리의 정현파 위치 인코딩을 교체 .
게시 63 개 원래 기사 · 원 찬양 13 ·은 40000 +를 볼

추천

출처blog.csdn.net/changreal/article/details/102630873