• Natural Langauge Generations

    • 보통 auto-regressive task(이전의 나의 상태가 미래의 나의 상태를 좌우한다.)로 접근
      • Language model을 통해 주어진 단어들을 기반으로 다음단어를 예측하는 형태
    • Machine Translation
      • 한때 자연어처리의 꽃
      • SeqtoSeq와 Attention의 등장으로 가장먼저 상용화 성공
  • Sequence to Sequnce

    Untitled

    • Encoder
      • Sequence를 하나의 context vector로 압축
      • 전체 문장을 받아서 하나의 벡터로 압축
    • Decoder
      • Context Vector를 condition으로 받는 조건부 언어모델
    • Generator
      • Decoder의 hidden state를 softmax를 통해 multinoulli 분포로 변환
      • 다음 단어를 추측하기 위한 확률분포 변환
  • Attention이 없는 Transformer → 긴 문장에 대처가 되지 않는다.

  • 번역에서의 Attention

    • 쿼리를 날리고 키를 매칭하고, 비슷한 정도대로 정보를 취합하여 가져온다.
  • Linear Transformation

    • 마음의 상태(State)를 잘 반영하면서 좋은 검색 결과를 이끌어내는 쿼리를 얻기 위함.
    • 내가 필요한 정보 → 좋은 검색 결과를 이끌어내는 쿼리
  • Attention

    • 미분 가능한 Key-Value Function
      • Attention 함수의 입력은 Query, Key, Value
    • 정보를 잘 얻기위한 Query를 변환하는 방법을 배우는 과정
  • Attention을 통해 RNN의 hidden state의 한계를 극복가능

    • LSTM을 쓰더라도 context vector에 모든 정보를 담기에는 한계가 있음
    • 더 긴 길이의 입출력에도 대처 가능
  • Masking at Attention

    • 각 문장은 길이가 다 다른데 남은 공간에는 pad가 들어감
    • 문제는 해당 패드도 유사도를 가지게 됨.
    • pad처리 한 부분을 -무한대를 치환 (마스크 적용)
    • 그 후 softmax에 넣어 경계 정보를 가지고 오지 않음
  • 서로 길이가 다른 시퀀스들이 미니배치로 묶일 경우 <PAD>가 빈칸에 할당됨

    • 이에 따라 <PAD>에 attention weight가 할당 될 수 있음
  • Dot-product 결과 값에 masking을 통해 음의 무한대 값을 넣으므로서, Softmax이후의 attention weight를 0으로 만들 수 있음.

    • 이를 통해 <PAD>에 attention weight가 할당되는 것을 막거나,
    • 학습 시, 미래의 time-stap에 attention weight가 할당되는 것을 막을 수 있음.
  • Transformer Overview

    • Attention 연산을 통해 정보의 encoding / decoding을 해결

      • RNN과 달리 위치(순서 = Position Encoding)정보를 따로 넣어주어야 함.
    • 3가지 attention으로 구성

      • Self-attention @encoder

        → 밑에 레이어부터 올라오는 것

      • Self-attention with mask @decoder

        → 밑에 레이어부터 올라오는 것 + 마스킹

      • Attention from encoder @decoder

        → Cross Attention

    • Residual connection으로 깊게 쌓을 수 있음

      • 추후 BERT와 같은 Big LM이 가능하게 됨
  • Multi-head Attention

    • Attention @seq2seq
      • Dot-product연산은 consine similarity와 매우 유사
      • 즉, attention은 query를 잘 만들어내서, query와 유사한 key를 찾는 과정
      • 그리고, 해당 key-value로 부터 필요한 정보를 얻어내는 과정
      • Decorder의 각 time-step마다 encoder로 부터 attention을 통해 정보를 얻어와서 생성 토큰의 품질을 향상
    • Multi-head Attention @Transformer
      • 각 head별로 attention을 수행하여 다양한 정보를 얻어올 수 있음
      • Self-attention을 통해 이전 layer의 정보를 encoding,decoding
      • Attention을 통해 encoder의 정보를 얻어옴.