Deep Contextualized Word Representations
paper| https://arxiv.org/abs/1802.05365
같은 표기의 단어라도 문맥에 따라서 다르게 word embedding할 수 있으면 자연어 처리의 성능을 올릴 수 있지 않을까?
→ word embedding시 문맥을 고려해서 embedding하겠다는 idea
⇒ 문맥을 반영한 word embedding (Contextualized Word embedding)
Abstract
¹ 단어 사용의 복잡한 특성들(ex. syntax, semantics)과, 이러한 사용이 ² 언어적 맥락(즉, 다의어를 모델링하기 위해)에 따라 어떻게 다른지, 얼마나 다양한지를 모델링하는 새로운 유형의 Deep contextualizaed word representation Model 소개
단어 vector는 large text corpus가 pre-train된 deep bidirectional language model (biLM)의 내부 상태에 대한 학습된 함수로 표현 가능
이러한 표현은 ¹ 기존 모델에 쉽게 추가될 수 있고, ² 질문답변, 텍스트 수반 및 감정 분석을 포함한 6가지 NLP 문제에서 SOTA 달성
서로 다른 semi-supervision signal을 혼합하도록 downstream model을 허용하는 pre-train된 network의 deep internal을 노출시키는 것이 중요하다는 것을 보여주는 분석을 제시
1 Introduction
pre-train된 단어 표현은 많은 neural language 이해 모델이 핵심 요소
But 고품질 표현을 학습하는 것은 어려움
고품질 표현
¹ 단어 사용의 복잡한 특성 (syntax와 semantics)과 ² 이러한 사용이 언어적 맥락(즉, 다의어를 모델링하기 위해)에 따라 어떻게 다른지를 둘 다 이상적으로 모델링한 것
- ² 언어적 맥락 ex) 눈 : eye라는 의미 or snow라는 의미
본 논문에서는
두 문제를 직접으로 해결하는 ¹ 기존 모델에 쉽게 통할 될 수 있고, ² 다양한 언어 이해 문제에 걸쳐 모든 사례에서 SOTA를 개선하는 deep contextualized 단어 표현을 소개
여기서의 표현은 각 토큰에 전체 input 문장의 함수인 표현이 할당된다는 점에서 전통적은 단어 타입 embedding과는 다름
- 각 layer 마다 출력 값 존재 → 두개의 LM의 출력값을 한번에 사용하기 위해 각 layer의 output값을 concatenate
- concatenate된 각 vector에 정규화된 weight 곱하기 (이 weight는 학습시, 최적화됨)
- 각 layer의 vector를 더해서 하나의 embedding으로 만들기
위쪽 vector는 문맥 정보를 많이 가짐
아래쪽 vector는 문법정보를 많이 가짐
∴ 보다 효율적인 임베딩 가능 - 최종적으로 $\gamma$ 곱하기
$\gamma$는 특히 ELMo의 최종 layer 출력값만을 임베딩으로 사용할 떄, 더 필요하다고 함
대량의 corpus로 학습된 한쌍의 LM, bi-LSTM에서 파생된 벡터를 사용
→ 이런 단어 표현을 ELMo(embeddings from language models) representation이라고 함
2 Related work
label이 지정되지 않은 대규모 text에서 단어의 syntactic & semantic 정보를 잘 포착하는 pre-train된 단어 vector는 question answering, textual entailment, semantic role labeling을 포함하는 대부분의 SOTA NLP architecture의 standard component
But, word vector를 학습하기 위한 이런 접근 방식은 각 단어에 대해 single context-independent representation만 생성 가능
이전에 제안된 method는 하위단어 정보로 보강하거나 각 word sense에 대해 별도의 vector를 학습하여 traditional word vector의 일부 단점을 극복
본 논문의 접근법은 character convolution을 사용해서 하위 단어 단위로부터 이점을 제공하며, 사전 정의된 sense class를 예측하는 명시적인 training없이 multi-sense 정보를 downstream task에 원활하게 통합함
다른 연구는 문맥 의존적인 표현(context-dependent representation)을 학습하는 데 초점을 둠
context2vec은 양방향 LSTM(Long Short Term Memory)을 사용하여 pivot word 주변의 context를 encoding
문맥상 embedding을 학습하기 위한 다른 접근법은 pivot word 자체를 표현에 포함하고, 지도 neural Machine Translation system (CoVe) or an 비지도 language model의 encoder로 계산됨
비록 MT(기계 번역) 접근법이 병렬 corpus의 크기에 의해 제한되지만, 이 접근법은 대규모 dataset으로부터 이점을 누림.
본 논문에서, 풍부한 단일언어 data에 대한 접근 방법의 최대 이점을 활용하고, 대략 3천만개의 문장이 있는 corpus에서 biLM을 train함
deep한 맥락적 표현에 대한 이러한 접근 방식을 일반화하여 광범위한 다양한 NLP task에서 잘 작동하는 것을 보여주ㅁ
이전 연구에서는 deep biRNN의 서로 다른 layer가 서로 다른 type의 정보를 encoding한다는 것을 보여줌
예를 들어, deep LSTM의 낮은 level에서 다중 task syntactic supervision(ex. 음성 부분 tag)을 도입하면 종속 구문 분석 or CCG super tagging과 같은 상위 level task의 전반적인 성능을 향상시킬 수 있음
RNN기반 encoder-decoder 기계 번역 시스템에서, 2-layer LSRM encoder의 첫 번째 layer에서 학습한 표현이 두 번째 layer보다 POS tag 예측을 더 잘 함
마지막으로, 단어 문맥 encoding을 위한 LSTM의 최상위 layer는 단어 sense의 표현을 학습하는 것으로 나타남
ELMo 표현의 수정된 언어 model 목표에 의해서 유사한 signal이 유도된다는 것을 보여주고, 다양한 type의 semi-supervision을 혼합하는 downstream task에 대한 model을 학습하는 것은 매우 유익할 수 있음
언어 model과 sequence auto-encoder를 사용하여 encoder-decoder 쌍을 pre-train한 다음 task별 supervision으로 fine-tuning
반대로, label이 지정되지 않음 data로 biLM을 pre-train한 후, weight를 고정하고, 특정 모델 capacity에 대한 추가 작업을 해서 downstream traing data 크기가 더 작은 지도학습 모델을 지시하는 경우에 대해, 크고, 풍부하고 보편적인 biLM 표현 활용 가능
3 ELMo: Embeddings from Language Models
가장 널리 사용되는 단어 embedding(GloVe; Penningtonet al., 2014)과 달리 ELMo의 단어 표현은 전체 input sentence의 함수
Sec 3.1:2-layer biLM
Sec 3.2: 내부 network의 선형 함수
Sec 3.3: 기존 광범위한 neural NLP architecture에 쉽게 통합됨
Sec 4.3: biNM이 큰규모로 pre train되는 준지도학습 수행
3.1 Bidirectional Language models
$$p(t_1, t_2, ... , t_N) = \prod^N_{k=1} p(t_k | t_1, t_2, ..., t_{k-1})$$
일반적인 언어모델은 N개의 토큰 시퀀스 ($t_1, t_2, ..., t_N$)가 주어지면, forward language model은 ($t_1,...,t_{k-1}$)이 주어진 상황에서 token $t_k$의 확률을 모델링 함으로써 시퀀스의 확률을 계산
[input $t_1, ..., t_{k-1}$을 받은 상황에서 output $t_k$를 예측하기 위해 위의 식(조건부 확률)을 통해 계산]
이전 SOTA neural 언어 model
문백에 독립적인 token 표현 $x^{LM}_k$ (token embedding or character위 CNN)을 만들고, forward LSTM레이어 L을 통과
각 위치 k에서, 각 LSTM 레이어는 context 의존적 표현 $\overrightarrow{h^{LM}_{k,j}}$를 출력 ($j=1,...,L$)
최상위 layer LSTM output $\overrightarrow{h^{LM}_{k,j}}$는 softmax layer가 있는 다음 token $t_{k+1}$을 예측하는데 사용
$$p(t_1, t_2,...,t_N) = \prod^N_{K=1} p(t_k | t_{k+1}, t_{k+2},...,t_N)$$
backward LM은 forward LM과 유사하지만 역방향으로 실행되어 미래의 상황에서 이전 token을 예측
$L$ layer deep model에서 역방향 LSTM layer j를 통해 주어진 $(t_{k+1},...,t_N)$ $t_k$의 표현 $\overleftarrow{h^{LM}_{k,j}}$을 생성하는 forward LM과 유사한 방법으로 구현될 수 있음
biLM은 forward LM과 backward LM을 모두 결합
완전히 독립적인 parameter을 사용하는 대신 방향간 일부 weight를 공유한다는 점을 제외하고, Petes et al.(2017)의 접근 방식과 유사 (https://arxiv.org/abs/1705.00108)
$\Theta_x$ : token 표현 ($t_1,...,t_N$) 에 대한 parameter
$\Theta_s$: softmax layer에 대한 parameter
두 parameter는 전체 방향에 관계없이 같은 값 공유 → embedding과 softmax는 동일한 값을 사용한다는 것
이걸 제외한 LSTM의 parameter들은 두 LSTM model이 서로 다른 값을 가짐
3.2 ELMo
ELMo는 biLM에서 중간 layer 표현의 task별 조합
각 token $t_k$에서, L-layer biLM은 $2L+1$ 표현의 집합을 계산
$h^{LM}_{k,0}$ → token layer
$h^{LM}_{k,j} = [\overrightarrow{h^{LM}_{k,j}} ; \overleftarrow{h^{LM}_{k,j}}]$ → 각각의 biLSTM layer
$s^{task}$는 softmax-normalized weight
scalar parameter $\gamma^{task}$를 사용하면 task model을 전체 ELMo vector로 확장 할 수 있음
$\gamma$는 최적화를 지원하는데 실질적으로 중요
각 biLM layer의 활성화가 서로 다른 분포를 갖는다는 점을 고려할 때, 몇몇 경우에는 weight를 부여하기 전에 각 biLM layer에 layer normalization을 적용하는 데 도움이 되기도 했음
ELMo에서는 기존과 다른 문맥을 반영하는 표현을 사용 → 이를 얻기 위해 LSTM layer의 개수를 L이라고 하면 2L+1개의 표현을 concatenate해야 함
input 표현 layer 1개와 forward, backward LSTM 각각 L개
3.3 Using biLMs for supervised NLP tasks
사전 학습된 biLM과 target NLP task에 대한 supervised architecture가 주어질 때,
task model을 향상시키기 위한 biLM을 사용하는 것은 간단한 프로세스
- 단순히 biLM을 실행하고, 각 단어에 대해 모든 layer representations 기록
- end task model이 아래처럼 representations의 선형 결합 학습
- 먼저 biLM 없는 지도학습 model의 가장 낮은 layer 고려
대부분의 supervised NLP모델은 가장 하단 layer의 아키텍처를 공유
∴ 일관되고, 통합된 방식으로 ELMo 추가 가능 ⇒ 여기에 ELMo 붙이기 - token 시퀀스 $(t_1,...,t_N)$이 주어질 때, 사전 학습 word embedding과 선택적으로 character-based 표현을 사용해 각 token 위치에 대한 context-independent token representation 를 형성 → 이게 standard
- 그 다음, 모델은 context-sensitive representation 를 형성하고, 일반적으로 양방향 RNN, CNN, feed forward nework 사용
- 먼저 biLM 없는 지도학습 model의 가장 낮은 layer 고려
supervised model에 ELMo를 추가하려면, 우선 biLM의 weight를 고정한 다음, ELMo vector $ELMo_k^{task}$를 $x_k$와 concatenate → ELMo의 강화된 표현 $[x_k;ELMo_k^{task}]$을 task RNN에 넣기
특정 task(ex. SNLI, SQuAD) 경우, 다른 특정 output linear weight set을 도입하고, $h_k$를 $[h_k; ELMo_k^{task}]$로 대체해서 task RNN의 output에 ELMo를 포함해서 추가적으로 개선
(→ ELMo를 task RNN의 output단계에도 포함, 대신 로 바꾸는게 더 좋음)
마지막으로 ELMo에 적절한 droput을 추가 & 경우에 따라 loss에 $\lambda||w||^2_2$를 더해 ELMo weight를 정규화하는게 좋음
→ 이는 모든 biLM레이어의 평균이 가깝게 유지하기 위해 ELMo weight에 inductive bias를 부과
3.4 Pre-trained Bidirectional language model architecture
본 논문에서 pre-trained biLMs는 양방향의 joint training을 하고, LSTM layer사이에 residual connection(잔차 연결) 추가하도록 수정
대규모 biLM에 초점을 둠 (forward-only LM과 대규모 training보다 biLM을 사용하는 것의 중요성을 강조했기 때문)
모델 크기 및 계산 요구사항에 따른 전반적인 언어 모델 복잡성의 균형을 맞추기 위해 단일 최고 모델인 CNN-BIG-LSTM의 모든 embedding과 hidden dimensions을 절반으로 줄임
최종 모델은4096 unit과 512 dimension preojection를 가진 $L=2$ biLSTM layers를 사용하고, 첫번째에서 두번째 layer 사이에 residual connection을 추가
문맥에 민감하지 않은 type 표현은 2048 character n-gram convolutional filter를 사용한 다음, 두개의 highway layer와 512 표현까지 linear projection down(선형 투영)
결론적으로 biLM은 [purely character input으로 외부의 training set을 포함하는] 각 input token에 대해 표현의 3-layers를 제공(BiLSTM2, CNN1).
대조적으로, 전통적인 word embedding method는 고정된 vocabulary에서 token에 대한 one-layer의 표현만 제공
pre-train 후, biLM은 어떤 task에 대해서든 representations을 계산 가능
경우에 따라, biLM을 domain별 data에서 fine tuning했더니 perplexity는 낮아지고, downstream task performance는 증가
즉, biLM을 가지고 한 일종의 domain transfer라고 볼 수 있음
⇒ 그 결과, 대부분의 경우, downstream task에서 fine-tuning 된 biLM을 사용
4 Evaluation
Table 1은 6가지 benchmark NLP task의 다양한 set에 대한 ELMo 성능
Qustion answering
SQuAD(Stanford Question Answering Dataset)은 Wikipedia 단락의 범위인 100K 이상의 클라우드 소싱 질의응답 쌍이 포함
baseline model: Bidirectional Attention Flow model의 개선된 version
bidirectional attention 요소 뒤에 self-attention layer 추가하고, 몇몇의 pooling 작업을 단순화하고, gated recurrent units (GRUs)을 SLTM으로 대체
Textual entailment
premise(전제)이 주어지면 hypothesis(가설)이 참인지 여부를 결정하는 작업
SNLI(Stanford Natural Language Inference) corpus 약 550k개의 hypothesis/premise 쌍을 제공
baseline model: ESIM sequence model은 전제와 가정을 encode하기 위해 biLSTM 사용
그 다음, matrix attention layer, local inference layer, 다른 biLSTM inference composition layer 그리고 마지막으로 output layer 전에 pooling 작업 수행
Sementic role labeling
SRL(Semantic Role Labeling) 시스템은 문장의 술어-요자 구조를 모델링하고, '누가 누구에게 무엇을 했는지'라고 대답하는 것으로 묘사
baseline model: SRL을 BIO tagging 문제로 모델링하고, forward&backward 방향이 끼워넣어진 8-layer deep biLSTM을 사용
Coreference resolution
동일한 근원적인 실제 entity를 참조하는 text의 mention을 클러스터링하는 task
baseline model: end-to-end span 기반 neural model
biLSTM와 attention mechanism을 사용하여 먼저 span 표현을 계산한 다음, softmax mention ranking model을 상호 참조 chain을 찾는 것에 적용
Named entity extraction
CoNLL 2003 NER task는 4가지의 다른 entuty type (PER, LOC, ORG, MISC)으로 tag가 지정된 Reuters RCV1 corpus로부터 newswire로 구성
baseline model: pre-train된 word embedding, character기반 CNN 표현, 두개의 biLSTM layer, CRF(conditional random field) loss 사용
Sentiment analysis
SST-5(Stanford Sentiment Treebank)의 세분화된 감정 분류 task는 영화 리뷰에서 문장을 설명하기 위해 5개의 lavel(매우 부정적인 레이블에서 매우 긍정적인 레이블까지) 중 하나를 선택하는 것을 포함
문장에는 관용구와 같은 다양한 언어와 모델이 배우기 어려운 부정과 같은 복잡한 구문 구조가 포함
baseline model: BCN(이중 attention 분류 network). CoVe embedding으로 증강될 때, 이전의 SOTA 결과도 보유
5 Analysis
5.1 Alternate layer weighting schemes
regularization parameter 에 따른 성능 비교
모든 biLM layer를 사용하여 ELMo를 표현하고 적절한 를 적용하였을 때 가장 좋은 성능을 보임
ELMo의 임베딩은 최상위 레이어만 사용한 다른 모델들보다 더 나은 성능을 보여줌
ELMo벡터를 구할때 각 레이어에 대한 가중치인 $s^{task}_j$를 부여해 가중합을 통해 구한다고 했는데, 이때 가중치를 어떻게 두어야 성능에 좋을지에 대한 분석이다.
가장좋은 방법은 task에 맞게 weight를 조정하는것
그다음으로 모두 동등한 weight를 주는것
그다음으로 high-level레이어에 가중치를 크게 주는것
마지막으로 low-level 레이어에 가중치를 크게 주는것
이 순서대로 성능이 나빠짐
5.2 Where to include ELMo?
ELMo representation이 추가되는 위치에 따른 성능 비교
단순히 input의 위치에서만 ELMo를 추가하는 것이 아닌, 입,출력 동시에 추가했을 경우, 출력에만 추가했을 경우를 비교
세가지 Task의 결과가 일치되지는 않았지만 대체로 입,출력에 모두 ELMo를 적용한 모델 성능이 좋았음
하지만 이를 통해, Task 별로 ELMo representation이 필요한 위치가 다름을 직관적으로 알 수 있음
앞내용에 ELMo를 더한 representation 부분에서 input과 output두 곳 모두에서 ELMo벡터를 concat시켜야 성능이 더 좋아진다고 했는데, 과연 한곳에서만 사용해도 성능이 좋아지는지에대한 분석이다.
가장 좋은 방법은 input, output 두 곳 모두에서 사용하는것
그다음으로 input부분에서만 사용하는것
그다음으로 output부분에서만 사용하는것
마지막으로 사용하지 않는것
이 순서대로 성능이 나빠짐
5.3 What information is captured by the biLM's representations?
GloVe와 ELMo의 차이점
Table 4를 보면 GloVe는 play에 대해서 스포츠와 관련된 context를 학습
biLM은 context에 따라 단어의 의미를 구별할 수 있음
Word sense disambiguation
POS tagging
Implications for supervised tasks
5.4 Sample efficienct
train set의 크기에 따른 성능 비교
학습데이터가 작을수록 ELMo를 사용하면 더 효율적인 학습이 가능함을 확인 가능
5.5 Visualization of learned weights
task의 Input Layer와 Output Layer가 더 높은 가중치를 두는 biLM layer를 확인하기 위한 시각화 결과
Input Layer는 상대적으로 첫번째 layer에 높은 가중치를 두었으며,
Output Layer는 상대적으로 모든 layer에 대해 균형잡힌 가중치를 두고 있음을 확인 가능
6 Conclusion
biLM에서 고품질의 deep한 문맥 의존적 표현을 학습하기 위한 일반적인 접근 방식을 도입
광범위한 NLP task에 ELMo를 적용할 때 큰 향상을 보임
절제 및 제어된 실험을 통해, biLM layer가 문맥 내 단어에 대한 다양한 type의 구문 및 의미 정보를 효율적으로 encoding하고, 모든 layer를 사용하면 전반적인 작업 성능이 향상된다는 것을 확인
GloVe; Global Vectors for Word Representation
Word2Vec의 장점 (embedding된 단어 벡터 간 유사도 측정을 수월하게) + LSA의 장점 (말뭉치 전체의 통계정보 반영)
LSA
단어-문맥 행렬에 특이값 분해를 통해 데이터 차원을 줄여 잠재된 의미를 도출하는 방식
각 단어의 빈도수를 카운트한 행렬이라는 통계정보를 입력
Word2Vec
실제값과 예측값의 오차를 손실함수를 통해 줄여나가는 학습(예측) 기반의 방식
목적: embedding된 중심단어 vector와 주변단어 vector의 내적이 전체 corpus에서의 동시 등장 확률이 되도록 만들기
참고| https://wikidocs.net/33930
09-09 엘모(Embeddings from Language Model, ELMo)
 논문 링크 : https://aclweb.org/antholog…
wikidocs.net
[논문 리뷰] Deep contextualized word representations
이번에 리뷰할 논문은 바로 ELMo의 시작, "Deep contextualized word representations"입니다. Abstract 본 논문에서는 새로운 타입의 deep contextualized word representation을 소개하고 있습니다.
velog.io
'공부 끄적끄적 > 논문리뷰' 카테고리의 다른 글
[X:AI] RetinaNet; Focal Loss for Dense Object Detection (0) | 2023.04.07 |
---|---|
[X:AI] U-Net: Convolutional Networks for Biomedical Image Segmentation (0) | 2023.04.03 |
[X:AI] Transformer; Attention Is All You Need (0) | 2023.03.23 |
[2022D&A] DCGAN (0) | 2022.08.17 |
[2022D&A]CLIP 논문 (0) | 2022.08.06 |