시청하기 전에이 문서 자기 관심에 대한 자세한 설명, 변압기의보다 포괄적 인 요약 사본을 읽기 전에 이 기사를 .
이 논문에 대해 살펴 후 자기주의의 기초, 그것은 쉽게 느낀다.
종이 :주의는 당신이 필요로하는 모두이다.
기사 디렉토리
1-2 소개 및 배경
RNN :이 본질적으로 순차적 자연 배제가 병렬화 는 중요한 AT가되는, 교육 예제 이내에 긴 시퀀스의 길이 , AS 메모리 제한 일괄 제약 조건의 예에서.
(아직 계산의 순서에 대한 제한이 있기 때문에, 임시 해결책을) 해결 :
- 인수 분해 트릭.
- 조건부 연산.
또한 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 이전에 생성 된 기호
전체 아키텍처의 사용 변압기가이 따릅니다 스택 자기주의 와 포인트 - 와이즈 , 완전 연결 레이어 인코더 및 디코더 모두.
3.1 인코더 및 디코더 스택
인코더 : N의 스택 6 동일 layers.Each 층 = 두 서브 층 :(从下到上)이
- 멀티 헤드 자기주의 메커니즘.
- 간단한 위치 와이즈 완전히 conntected 피드 포워드 네트워크 (以下叫ffnn).
채용은 WE 잔류 연결 + 서브 층 두 (두 서브 층 사이에 잔류 연결)의 각 주변 계층 표준화 . 즉, 각 서브 층의 출력은 LayerNorm (X + 계층 (X)) .
모델 + embediding 층의 모든 하위 레이어의 출력 생성 치수 D의 모델 = 512 .
디코더 : A = N. 하부층 삽입 :( THIRD 밑에서 위로 디코더 6 개 동일한 스택 레이어).
- 멀티 헤드 자체의 주목 부 계층 (수신 출력 인코더 스택) (마스크)
- 인코더 - 디코더 관심
- ffnn
마스킹 위치에 대한 예측을 보장 내가 보다 적은 위치에 공지 출력에만 의존 할 수 난 .
각 서브 층 의 잔류 연결 + 계층 표준화 . (잔여 연결 서브 층 각각 반올림. )
3.2주의
관심 机制 就是 매핑 조회 및 출력 (모든 벡터이다)에 키 - 값 쌍의 집합. 출력은 각각의 값에 할당되는 가중치는 해당 키 조회 호환성 함수에 의해 계산 된 값의 가중 합으로 계산된다.
이 문서에서는 사용 attenion입니다 :
- 확장 도트 제품주의
- 멀티 헤드주의
3.2.1 확장 된 도트 제품주의
입력 쿼리 및 차원의 키 구성 (DK) 및 차원의 값 DV . 우리의 내적 계산 의 모든 키를 사용하여 쿼리를 , SQRT (DK)에 의해 각각 분할 하고, softmax를 함수를 적용 얻기 위해 값에 가중치를 .
在实践中우리에 주목 함수 계산 행렬 Q에 함께 포장 동시에 질의들의 세트를 . 키와 값은 행렬 K와 V.로 함께 포장
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를 공급.
멀티 헤드주의 사항 :
- 채용 된 H = 8 평행 관심 층, 또는 헤드 .
- 이러한 WE 이용 각 DK DV = D = 모델 / H = 64이 . (D 모형 치수를 통합하는)
- 받는 인해 각각의 헤드의 감소 차원 , 총 계산 비용은 전체 차원 단일 헤드주의와 유사하다 .
주의 모델의 3.2.3 응용 프로그램
변압기는 멀티 헤드의 관심을 사용하는 세 가지 방법 :
-
"인코더 - 디코더 관심"레이어에서
입력으로 자동 관심 인코더 및 디코더의 출력. 인코더에서 이전 계층 키, 값 출력으로부터 --Queries 디코더.
인코더 - 디코더의 주목은 매트릭스를 생성하기 위해 하층에서 쿼리 점을 제외하고 층과 마찬가지의 멀티 헤드 자체주의를 작동하고, 스택의 부호화 행렬에서 키와 값 출력을 얻는다. -
인코더的자기주의 층 .
인코더에서 각각의 위치는 인코더의 이전 계층의 모든 위치에 참석할 수
的Q, K, V都是一样的(입력 매립하고 매립 위치)输入 -
디코더的자기주의 층 .
다음은이 확장 된 우리를 구현 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 부호화 벡터 입력을 추가한다. 이 벡터는 결정하는 데 도움이 특정 패턴 학습 모델에 따라 각 단어의 위치 , 또는 다른 단어의 시퀀스 사이의 거리를 .
위치 인코딩 t가 묻어 그가 동일한 치수를 dmodel 두 합산 될 수 있도록한다는.
위치 인코딩 할 수 있습니다 배운 고정 .
서로 다른 주파수의 사인 및 코사인 함수를 사용 :
WHERE POS는 위치는 IS와 나는 디멘션입니다.
우리가 있기 때문에 우리는이 기능을 선택 IT는 쉽게 상대 포지션에 의해 참석하기 위해 배울 수있는 모델을 허용겠습니까 가정 의 어떤 고정 된 오프셋 K, Pepos + K가 표현 될 수 AS 선형 함수부터 운영, PEpos.
사인 및 코사인 함수의 주기성, 상기 고정 길이 편차 K (유사주기), 포스트 +의 PE의 K는 위치 PE (직선 관계)의 변화에 선형 포스상의 위치로서,이 쉽게 모델 학습 단어를 나타낼 수있다 단어들 사이의 상대 위치 관계.
이 방법의 장점은 코딩 서열의 길이가 보이지 않는 확장 될 수 있다는 것입니다, 우리는 교육 모델을 번역했다 그러한 것처럼 모든 문장에 초점을 맞추고 훈련보다 긴 문장이다.
다른 NLP 논문에서 캡처로 인해 RNN, CNN 자체가 수, 위치, 일반적으로 훈련 된 벡터를 삽입 있지만 추가 기능을 내장 위치가 더 좋은 정보가 될 것입니다,하지만 거절하지 않는 뛰어난 성능을 가지고 있지 않았다 위치 정보는하지만 변압기 모델에서, 임베딩 위치가 위치 정보의 유일한 공급원이며, 따라서 모델의 핵심 구성 요소 가 아닌 특성 보조 특성.
4 왜 자기 관심
- T otal 계산량 층당. (각 층의 총 계산량)
- 계산 그쪽의 amoount는 수 병렬화 .
- 장거리 의존성 간의 경로 길이 네트워크이다.
(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.
다음과 같은 공식에 따라 운동을하는 동안 변경 학습 속도 :
5.4 정규화
강하 잔류는 다음이 강하 적용 각 서브 층의 출력시 에, 묻어에서의 합계에서 및 인코더와 디코더 스택에서 양면 위치 인코딩시에 본 논문에서는 Pdrop = 0.1.
(각각의 서브 - 층 출력, 위치 및 인코딩에 묻어, 인코더 및 잔류 강하 세 대한 디코더 스택).
라벨 다듬기
6 개 결과
6.1 기계 번역
모델 매개 변수의 기계 번역 다양한 :
우리의 수가 다를 관심 헤드 와 관심의 키와 값 차원을发现如下. :
- 주의 키 크기 DK를 줄이면 모델 품질을 상처
- 내적보다 더 정교한 호환성 기능이 도움이 될 수 있습니다
- 더 큰 모델은 더 나은
- 드롭 아웃은 많은 도움이 될 것입니다 피할 오버 피팅에
- 배운 위치 묻어 우리의 정현파 위치 인코딩을 교체 .