본문 바로가기

논문 리뷰

트랜스포머 네트워크 transformer network

seq2seq 모델의 단점을 극복한 모델

  • s2s와 같이 인코더 디코더 구조
  • 셀프어텐션 기법을 사용해서 문장에 대한 정보를 추출

셀프어텐션이란?

  • 문장에서 각 단어끼리 얼마나 관계가 있는지를 계산해서 반영하는 방법
    • 각 단어를 기준으로 다른 단어들과의 관계 값을 계산한다
      • 어텐션 스코어
      • 단어벡터간의 내적으로 구함
    • 위의 처럼 나머지 단어에 대해서도 동일하게 진행하면 해당 문장에 대한 셀프어텐션이 끝난다
  • 셀프어텐션은 트랜스포머 네트워크의 핵심이다

 

모델  구현

 

구현해야 할 것

  • 멀티헤드 어텐션
  • 서브시퀀스 마스크 어텐션
  • 포지션-와이즈 피드 포워드 네트워크
  • 리지듀얼 커넥션

 

멀티헤드 어텐션

  • 내적 어텐션 구조가 중첩된 형태
  • 1) 스케일 내적 어텐션
    • 쿼리
      • 사전에서 찾고자 하는 단어
      • 사전의 색인어
      • 색인어의 뜻
    •  
    •  
    • 2) 순방향 마스크 어텐션
      • 자신보다 뒤에 있는 단어는 참고하지 않게 마스킹
    • 3) 멀티 헤드 어텐션
      • 어텐션 맵을 여러게 만들어 다양한 특징에 대한 어텐션을 볼 수 있게 한 방법

 

포지션-와이즈 피드포워드 네트워크

  • 셀프 어센션 층을 거친 다음 피드포워드 네트워크를 거치도록 되어 있다

 

리지듀얼 커넥션

  • 이건 잘 알지?

 

인코더

  • 입력값에 대한 정보를 추출하는 모듈
  • 멀티 헤드 어텐션 + 피드포워드 네트워크 + 리지듀얼 커넥션

 

디코더

  •  
  • 인코더와는 조금 다르게 하나의 층이 더 추가된 형태이다
    • 인코더의 경우 하나의 블록이 2개의 층으로 구성돼 있는데 디코더의 경우 3개의 층으로 구성돼 있다는 것
      • 두 개의 어텐션과 하나의 피드포워드 층으로 구성
        • 첫번째 어텐션
          • 디코더의 입력 사이의 관계를 계산하는 셀프 어텐션
          • 예측을 해야하는 디코더의 경우 특정 단어 이후의 단어를 참고하지 않도록 마스크 기법을 사용
        • 두번째 어텐션
          • 입력이 외부에서 들어옴
            • 인코드의 결과값
    •  

 

포지션 인코딩

  • 트랜스포머는 단어를 하나하나 넣지 않고 한번에 넣는다
    • 그래서 순서정보를 부가적으로 주입할 필요가 있다
      • 첫번째 수식
        • 피처 차원에서 인덱스가 짝수인 경우에 대해서 사인 함수 값을 할당하는 것
      • 두번째 수식
        • 인덱스가 홀수인 경우에 코사인 값을 할당하는 것
      • 사인함수와 코사인 함수 안에 있는 식은 각 시퀀스 위치에 따라 피처 차원 인덱스에 각자 위치 정보를 주고자 하는 의도
      •  

학습

  • seq2seq 보다 빠름