논문 리뷰를 끝내고 내가 궁금했던 부분이 완전히 해소가 되지 않아서 다시 찾아서 글을 쓴다.
내 궁금증은 이거다.
BERT는 encoder를 여러 개 쌓은 형태인데 자연어를 벡터로 변화시켜주는 역할이 encoder다. 근데 그걸 여러 개 쌓았다고 어떤 결과가 출력되는거지..?
1. encoder는 단순히 벡터로 변화시켜주는 역할이 아니다.
먼저 입력 문장의 토큰 간 관계를 학습해서 각 단어가 문장에서 어떤 맥락에 있는지를 학습한다. 따라서 동음이의어가 해당 문장에서 어떤 의미로 사용되었는지를 파악할 수 있다.
또한 encoder는 문장을 입력받아 각 단어를 고차원 벡터로 변환한다. 해당 벡터는 단어의 문맥적 의미를 담고 있으며 이후 작업에 사용된다.
2. 왜 encoder만 여러 개 쌓을까?
encoder를 여러 층으로 쌓으면 입력 문장의 의미를 더 정교하게 학습할 수 있다. 첫 번째 layer는 단순 패턴을 학습하고 더 높은 layer로 갈수록 더 추상적이고 복잡한 관계를 학습할 수 있다.
또한 encoder 내부에는 self-attention 메커니즘이 포함되어 있어서 문장 내 모든 단어가 서로를 참고하여 의미를 조정하게 된다.
encoder만 사용해서 문장을 벡터로 변환하면 해당 벡터를 기반으로 다양한 downstream task에 적용할 수 있다.
3. 결과를 무엇일까?
BERT는 encoder의 마지막 층에서 학습된 벡터를 사용하여 결과를 출력한다.
Sentence-Level Task라면 마지막 layer의 [CLS] 토큰 벡터를 분류기에 전달되어 결과를 출력한다.
Token-Level Task는 마지막 layer의 각 토큰 벡터를 사용하여 토큰별로 출력을 생성한다.
4. Encoder만 있어도 충분한 이유는?
BERT는 언어 이해에 초점이 맞춰져 있다. encoder는 입력된 문장을 깊이 이해하고 이를 벡터로 표현하는 데 최적화되어 있으며 이는 BERT가 다양한 NLP 작업에서 뛰어난 성능을 보이는 이유이다. 반면, decoder는 언어 생성에 최적화되어 있어서 GPT에서 이를 decoder의 층으로 사용하는 것이다.
'Paper Review' 카테고리의 다른 글
[Paper Review] Dense Passage Retrieval for Open-Domain Question Answering (0) | 2025.01.10 |
---|---|
[논문 리뷰] DeBERTa: Decoding-enhanced BERT with Disentangled Attention (3) | 2025.01.03 |
[논문리뷰] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2) | 2024.12.26 |
RNN, LSTM, GRU 부터 Transformer까지 (1) | 2024.12.24 |
Multi Agent Reinforcement Learning (1) | 2024.12.24 |