본문 바로가기
Deep Learning/NLP

BERT의 동작 방식

by em12 2024. 10. 7.
본 글은 "구글 BERT의 정석" 책을 참고하여 작성하였습니다.

 

BERT의 기본 개념

BERT는  2018년에 구글이 공개한 사전 훈련된 모델이다. BERT의 가장 큰 특징은 문맥을 고려한 임베딩 모델이라는 점이다. 

 

문맥 기반 임베딩 모델 vs. 문맥 독립 임베딩 모델

A문장: Apple is my favorite fruit

B문장: I bought new phone from Apple

 

A문장과 B문장에서 모두 'Apple'이라는 동일한 단어가 사용되었지만, 그 의미는 각각 다르다. A문장의 'Apple'은 과일 중 하나인 '사과'를 뜻하지만, B문장의 'Apple'은 회사 애플 (Apple Inc.)을 뜻한다. 

Word2Vec와 같은 임베딩 모델은 A문장과 B문장의 'Apple'을 동일한 임베딩으로 표현한다. 이는 Word2Vec를 포함한 문맥 독립 임베딩 모델들은 문맥과 상관 없이 'Apple'이라는 단어에 대해 항상 동일한 임베딩으로 표현하기 때문이다.

이와 달리, BERT와 같은 문맥 기반 모델은 문장의 문맥을 이해한 다음 문맥에 따라 단어 임베딩을 제공한다. BERT는 모든 든 단어의 문맥상 의미를 이해하기 위해 문장의 각 단어를 문장의 다른 모든 단어와 연결시켜 이해한다. 이 과정에서 특정 단어로부터 다른 모든 단어와의 관계를 파악하며 연결 관계의 강도를 파악한다.

 

 

BERT의 동작 방식

BERT는 트랜스포머 모델을 기반으로 하며, 인코더-디코더가 있는 트랜스포머 모델과는 달리 인코더만 사용한다. BERT 트랜스포머 아키텍처의 일종으로 주어진 문장의 모든 단어에 대한 표현 벡터를 출력한다. (이 표현벡터는 해당 단어의 의미와 주변 문맥을 반영한 정보를 담고 있다.) 트랜스포머 인코더에 문장을 입력하면 문장의 각 단어에 대한 표현 벡터가 출력되는데 이것을 곧 BERT의 표현벡터 혹은 트랜스포머 인코더라고 볼 수 있다.

BERT의 가장 큰 특징 중 하나가 양방향 학습이 가능하다는 것이다. 이는 트랜스포머 인코더가 원래 양방향으로 문장을 읽을 수 있기 때문이다. 이 때문에 BERT가 양방향 인코더인 것이다.

 

그렇다면 BERT는 어떻게 트랜스포머에서 양방향 인코더 표현을 할 수 있는 것일까?

문장을 트랜스포머의 인코더에 입력하면 문장의 각 단어에 대한 문맥 표현(임베딩)이 출력된다. 인코더에 문장을 입력하면 인코더는 멀티 헤드 어텐션 메커니즘을 사용해 문장의 각 단어의 문맥을 이해해서 문장에 있는 각 단어의 문맥 표현을 출력으로 변환한다. 

*멀티 헤드 어텐션 메커니즘: 트랜스포머의 핵심 메커니즘 중 하나로, 어텐션 메커니즘을 여러 개의 헤드로 분할하여 각 헤드가 다양한 관점에서 정보를 추출하고 결합하는 방식이다. 이를 통해 모델은 더욱 풍부한 문맥을 학습하고 병렬적으로 정보를 처리할 수 있다.

*헤드: 어텐션 연산을 병렬로 수행하는 부분을 의미한다. 각 헤드는 독립적인 어텐션 메커니즘을 가지며, 서로 다른 관점에서 입력 시퀀스의 정보를 학습한다.

*어텐션 메커니즘: 입력 시퀀스의 각 요소에 대해 가중치를 할당하여 특정 부분에 주의를 집중할 수 있도록 하는 메커니즘이다.

 

[그림1] '구글 BERT의 정석' p71을 참고하여 그림

 

 

위 그림을 보면, 앞서 다뤘던 문장 'Apple is my favorite fruit'을 트랜스포머의 인코더에 입력했고, 문장의 각 단어를 출력으로 표시하고 있다. 그림과 같이 인코더는 N개 쌓을 수 있다. 각 토큰의 표현 크기는 인코더 레이더의 출력의 차원이며, 인코더 레이어의 차원이 768이라고 가정하면 각 표현의 표현 크기는 768이 된다. 이는 곧 해당 토큰을 모델이 학습한 정보를 768 차원의 벡터로 표현한다는 것을 의미한다.

이와 같이 문장을 트랜스포머 인코더에 입력하면 문장의 각 단어에 대한 문맥 표현을 얻을 수 있다.

'Deep Learning > NLP' 카테고리의 다른 글

BERT 파생 모델: ELECTRA, RoBERTa, DeBERTa  (1) 2024.10.07
BERT 사전학습(3) - 언어 모델링의 종류  (0) 2024.10.07
BERT 사전 학습(2) - BERT의 입력 표현  (1) 2024.10.07
BERT 사전 학습(1)  (0) 2024.10.07
BERT의 구조  (0) 2024.10.07