Source-linked AI summary
Natural Language Processing (almost) from Scratch
Ronan Collobert, Jason Weston, Leon Bottou, Michael Karlen, Koray Kavukcuoglu, Pavel Kuksa
TL;DR
NLP 시스템은 전통적으로 task-specific hand-designed feature에 의존해 과제마다 별도의 engineering 부담을 만들었다. 이 논문은 대부분 비라벨 데이터에서 representation을 학습하는 unified neural architecture를 제안하며, 네 과제에서 기존 접근법과 비슷한 수준의 성능을 내고 빠르고 효율적인 tagger를 만든다.
문제
전통적인 NLP는 task-specific hand-designed feature에 의존하므로, 새로운 과제마다 별도의 경험적 feature engineering이 필요하다.
방법
Unified multilayer neural network가 대규모 비라벨 데이터셋에서 공유 internal representation을 학습하면서 NLP 과제 전반의 task-specific engineering을 최소화한다.
결과
Out-of-the-box로 학습한 neural network는 benchmark system보다 뒤처졌지만 성능은 비슷한 수준을 유지했으며, semi-supervised initialization은 모든 과제에서 generalization을 크게 향상했다.
시사점 및 한계
이 연구는 광범위한 task-specific feature engineering 대신 학습된 representation에 기반한 빠르고 효율적인 범용 NLP tagger를 뒷받침한다.
시사점 및 한계
학습에는 많은 계산 비용이 들며, semantic role labeling에는 약 3일이 걸린다.
Abstract
from arXiv · showhide
We propose a unified neural network architecture and learning algorithm that can be applied to various natural language processing tasks including: part-of-speech tagging, chunking, named entity recognition, and semantic role labeling. This versatility is achieved by trying to avoid task-specific engineering and therefore disregarding a lot of prior knowledge. Instead of exploiting man-made input features carefully optimized for each task, our system learns internal representations on the basis of vast amounts of mostly unlabeled training data. This work is then used as a basis for building a freely available tagging system with good performance and minimal computational requirements.
1. 서론
완전한 의미 표현은 여전히 해결되지 않았으므로, NLP 시스템은 실제 과제를 위해 제한된 통사 또는 의미 표현을 대상으로 한다. 이 논문은 과제별로 설계된 feature에 의존하지 않고 내부 표현을 발견하는 하나의 학습 시스템으로 여러 benchmark에서 높은 성능을 달성하고자 한다.
- 동기: 자연언어 의미의 완전하고 모호하지 않은 표현은 여전히 해결되지 않았으므로, NLP 연구는 제한된 통사 또는 의미 표현을 대상으로 한다.예로는 품사 태깅, chunking, parsing, 단어 의미 중의성 해소, semantic role labeling, named entity extraction, anaphora resolution이 있다.
- 기존 시스템의 한계: 대부분의 state-of-the-art NLP 시스템은 임시로 구성된 과제별 feature에 선형 통계 모델을 적용하며, 이러한 feature는 기존 시스템에서 도출되는 경우가 많고 상당한 언어학적 engineering에 의존한다.이렇게 설계된 중간 표현은 효과적이지만 복잡한 runtime dependency를 만들 수 있다.
- 기여: 저자들은 과제별 engineering을 사용하는 대신 적절한 내부 표현을 발견하는 하나의 학습 시스템으로 여러 benchmark에서 뛰어난 성능을 내고자 한다.저자들은 benchmark 성능을 표현 품질의 간접적 측정으로 보고, 학습된 표현이 개별 benchmark보다 더 일반적이라고 주장한다.
- 논문 구성: 이 논문은 supervised benchmark model을 평가하고, 약 852 million개의 비라벨 단어에서 학습한 표현을 전이하며, multitask supervised training을 조사한다.서론에서는 benchmark 과제, unified model, language-model pretraining, supervised model로의 전이, multitask training을 미리 소개한다.
2. 벤치마크 과제
이 절에서는 네 가지 벤치마크 NLP 과제인 POS, chunking, NER, SRL을 정의하고, 표준 데이터셋과 평가 설정 및 기존 비교 시스템을 요약한다. 또한 일반적으로 더 복잡한 과제일수록 단순한 과제보다 더 많은 engineered feature가 필요하다는 점을 언급한다.
- 벤치마크 범위: 이 논문은 Table 1에 요약된 표준 실험 설정에서 part-of-speech tagging, chunking, named entity recognition, semantic role labeling을 벤치마크한다.State-of-the-art 시스템과 evaluation metric은 Table 2에 보고된다.
- Chunking: Chunking은 명사구나 동사구 같은 통사적 구성 성분으로 문장 구간에 레이블을 부여하며, 학습에는 WSJ sections 15–18, 테스트에는 section 20이 포함된 CoNLL 2000을 사용한다.인용된 시스템은 SVMs, voting, dynamic programming 또는 이차 random fields를 사용해 단어, POS, tag context를 활용하며, 최대 95.23% F1을 보고한다.
- Named Entity Recognition: NER은 CoNLL 2003 Reuters 설정에서 token을 PERSON이나 LOCATION 같은 entity category로 라벨링하며, 이 설정은 training, validation, test set을 제공한다.인용된 시스템은 word, POS 및 chunk tag, affix, gazetteer, classifier output 또는 unlabeled data를 결합하며, 보고된 성능은 최대 89.31% F1이다.
- Semantic Role Labeling: SRL은 predicate argument에 ARG0–5 같은 semantic role을 할당하며, state-of-the-art 시스템은 parsing, argument identification, classification 및 다양한 parse-tree feature를 사용한다.인용된 SRL 시스템은 해당 과제에서 제공되는 두 개의 parse tree를 사용하고 SVM classifier로 77.30% F1을 얻는다.
- 벤치마크 선정과 과제 복잡도: 공정한 비교를 위해 벤치마크 시스템은 external data를 사용하지 않는 확립된 최고 성능 시스템으로 선정하되, 선택된 NER benchmark만 추가 unlabeled data를 사용한다.네 과제 전반에서 정확도가 낮은 더 복잡한 과제일수록 더 많은 engineered feature에 의존하는 경향이 있으며, SRL은 feature를 가장 많이 사용하는 과제로 설명된다.
3. 네트워크
이 절에서는 task-specific hand-engineered features를 end-to-end multilayer neural network로 대체한다. 이 네트워크는 backpropagation을 통해 task-relevant representations를 학습한다. 아키텍처는 먼저 단어 수준 features를 추출한 뒤, standard neural-network layers를 적용하기 전에 local window 또는 전체 문장의 sequence structure를 모델링한다.
- 동기와 접근법: 제안된 접근법은 preprocessing을 최소화하고 multilayer neural network를 end to end로 학습하며, backpropagation을 통해 task-relevant feature representations를 학습한다.이는 경험적으로 선택된 task-dependent hand-designed features를 사용하고 상당한 computational costs를 초래할 수 있는 전통적 NLP 시스템과 대조된다.
- 아키텍처: 네트워크의 첫 번째 layer는 각 단어의 features를 추출하고, 두 번째 layer는 local and global sequence structure로서 word window 또는 전체 문장을 포착한다.문장은 bag of words가 아니라 sequence로 취급된다.
- 아키텍처: 아키텍처는 Figures 1 and 2의 별도 window-based 및 sentence-based network diagrams로 요약된다.window 접근법은 Figure 1에, sentence 접근법은 Figure 2에 제시된다.
- 아키텍처: word-level 및 sequence-processing layers 이후, 네트워크는 standard neural-network layers를 사용한다.이 절에서는 general feed-forward network notation 안에서 이러한 구성요소를 소개한다.
3.1 단어를 특징 벡터로 변환
이 architecture는 주로 학습 가능한 lookup table의 feature vector로 단어를 표현하므로, 거의 가공되지 않은 단어를 효과적으로 처리할 수 있다. 선택적 discrete feature는 더 풍부한 representation으로 concatenate되어 이후 neural layer에 입력될 수 있다.
- 3.1 단어를 특징 벡터로 변환: 학습 가능한 lookup table은 dictionary의 단어 index를 dense feature vector로 매핑하며, 거의 가공되지 않은 단어를 효과적으로 처리하는 것이 architecture의 핵심이다.이 방법은 상당한 task-specific input information을 부호화하기보다 유용한 단어 representation을 학습하는 데 의존한다.
- 3.1 단어를 특징 벡터로 변환: 하나의 sequence에 동일한 lookup operation을 적용하면 downstream neural-network layer에 입력할 단어 vector matrix가 생성된다.각 단어는 사용자가 지정한 차원의 vector를 받고, 그 결과인 sequence matrix는 추가 layer로 전달된다.
- 3.1 단어를 특징 벡터로 변환: lookup-table feature는 단어에 걸친 pattern을 추출하고 궁극적으로 완전한 문장을 표현할 수 있게 하는 trainable representation이다.저자들은 preprocessing으로 lowercasing과 capitalization encoding을 사용했으며, letter sequence에서 직접 학습하는 것은 이 연구의 범위를 넘어서는 것으로 남겨 두었다.
3.2 단어 특징 벡터에서 상위 수준 특징 추출
이 아키텍처는 고정 window 또는 convolutional sentence network를 통해 word feature vector를 결합하고, nonlinear feature extraction과 task-specific tag scoring을 사용한다. 관련 predicate가 local window 밖에 있을 수 있는 semantic role labeling 같은 task에는 sentence 방식이 필요하다.
- 아키텍처: 이 모델은 tagging을 위해 word feature vector를 결합하는 두 가지 방식을 제공한다. 각 target word 주변의 fixed-size window 또는 complete sentence 전체에 적용하는 convolutional sentence 방식이다.두 방식 모두 추출한 feature를 후속 neural-network layer에 입력하여 각 word에 대한 tag decision을 생성한다.
- 아키텍처: Stacked affine layer와 HardTanh layer는 점점 더 nonlinear해지는 feature를 추출한 뒤, final layer가 가능한 각 tag에 하나의 score를 할당한다.HardTanh는 정확한 hyperbolic tangent보다 계산 비용이 낮으면서 generalization performance는 변하지 않는다.
- Convolutional sentence 방식: Window 방식은 대부분의 대상 NLP task에서 잘 작동하지만, 관련 predicate가 local window 밖에 있을 때 SRL에서는 실패하므로 whole-sentence processing이 필요하다.SRL에서는 각 word와 각 verb에 대해 sentence operation을 수행하고, tagging 대상 word를 지정하는 추가 input marker를 사용한다.
- Convolutional sentence 방식: Convolutional 방식은 complete sentence를 처리하고, shared weight로 local feature를 추출한 뒤 이를 standard affine layer에 입력할 fixed-size global vector로 결합한다.Convolutional layer를 쌓을 때는 그 뒤에 nonlinearity가 와야 하며, Max layer는 variable-length sequence를 fixed-size representation으로 집계할 수 있다.
- Output tagging: POS는 word에 직접 label을 할당하는 반면, 다른 task는 IOB, IOE 또는 IOBES 같은 boundary-aware scheme을 사용해 sentence segment에 label을 할당한다.일반적으로 명확하게 가장 우수한 tagging scheme은 없다고 설명한다.
3.3 학습
네트워크는 stochastic gradient ascent로 likelihood를 최대화하며 학습되고, 독립적인 word-level tag 또는 sentence-level tag path를 사용한다. Sentence-level 학습은 tag dependency를 모델링하고 효율적인 dynamic-programming inference를 지원하지만, benchmark 결과는 여전히 기존 시스템에 뒤처진다.
- Likelihood 학습: 학습은 stochastic gradient ascent를 통해 network parameter에 대한 dataset log-likelihood를 최대화한다.각 update는 무작위 training example을 선택하고 learning rate λ로 제어되는 step을 수행한다.
- Word-level likelihood: Word-level 접근법은 softmax로 network tag score를 conditional probability로 변환하지만 각 단어를 독립적으로 처리한다.이 cross-entropy criterion은 chunking, NER, SRL에서 나타나는 인접 tag 간 correlation을 버린다.
- Sentence-level likelihood: Sentence-level 접근법은 학습된 transition 및 initial score를 추가하고, 완전한 tag path 전체에 대해 normalize하며, true path를 기준으로 학습한다.Path normalization은 recursion을 통해 linear time에 계산되고, Viterbi decoding은 logadd를 max로 대체해 최적 path를 찾는다.
- Optimization 및 implementation: Gradient는 network와 sentence recursion을 따라 chain rule을 적용해 구하며, 필요한 경우 미분 불가능한 update는 건너뛴다.Modular implementation을 사용하면 network module이 input 및 trainable parameter에 대한 derivative를 독립적으로 계산하고 학습할 수 있다.
- Benchmark 비교: Word-level 및 sentence-level likelihood를 사용하는 Vanilla neural network는 POS, chunking, NER, SRL에서 benchmark system에 뒤처진다.성능은 POS의 경우 per-word accuracy로, 다른 task의 경우 F1로 보고된다.
3.4 지도학습 벤치마크 결과
지도학습 네트워크는 task-specific architecture와 raw word feature를 사용해 POS, chunking, NER, SRL에서 평가되었으나 baseline system에는 뒤처졌고 기존 접근법과는 대체로 비슷한 성능을 보였다. Sentence-level likelihood는 POS보다 chunking, NER, SRL을 더 크게 향상시켰으며, 이는 이후 unlabeled data를 사용해 embedding을 개선하는 동기가 되었다.
- Input feature와 training: 모든 네트워크는 두 개의 raw text input으로 소문자화한 단어와 capital-letter feature를 사용했으며, word-level과 sentence-level log-likelihood를 비교하는 실험을 수행했다.소문자화는 dictionary size를 제한했지만, capitalization feature는 대문자 정보를 보존했다.
- 종합 결과: neural network는 baseline benchmark system에 뒤처졌지만, 평가한 task 전반에서 기존 접근법의 성능 범위 안에 머물렀다.결과는 POS에 per-word accuracy를, 다른 task에 F1을 사용했다.
- Training criterion: Sentence-level likelihood는 chunking, NER, SRL 성능을 향상시켰지만, POS에는 거의 이점을 제공하지 않았다.POS, chunking, NER에는 window architecture를 사용했고, SRL에는 sentence approach를 사용했다.
- 전환: 다음 절에서는 unlabeled data를 사용해 word embedding을 개선하며, 저자들은 이것이 모든 task에서 성능을 향상시킬 것으로 기대한다.이는 supervised benchmark evaluation에서 unlabeled data 활용으로 전환됨을 의미한다.
- Training time: Training에는 chunking과 NER에 약 한 시간, POS에 몇 시간, SRL에 약 3일이 필요했다.저자들은 training speed 최적화보다 작은 learning rate를 유지했으며, 더 큰 learning rate나 second-order method를 가능한 가속 방법으로 제안했다.
4. 비라벨 데이터 다량 활용
저자들은 pairwise ranking objective를 사용해 대규모 비라벨 영어 코퍼스에서 window-based neural language model을 학습함으로써 word embedding을 개선한다. 이 embedding으로 supervised task network를 초기화하면 여러 task에서 일반화가 크게 향상되며, 비라벨 데이터가 많을수록 추가 성능 향상이 나타난다.
- 비라벨 코퍼스: 저자들은 약 631 million개의 Wikipedia 단어와 Reuters 단어 221 million개가 추가된 확장 코퍼스에서 language model을 학습한다.두 번째 코퍼스는 더 많은 비라벨 데이터가 성능을 향상하는지 검증하기 위해 dictionary도 100,000단어에서 130,000단어로 확장한다.
- Language-model 학습: 모델은 window architecture를 사용하며, 올바른 구문이 잘못된 구문보다 높은 점수를 받도록 하는 pairwise ranking criterion으로 word embedding을 학습한다.학습에서는 문장-단어 쌍을 샘플링하면서 stochastic gradient minimization을 수행한다.
- Embedding 품질: 생성된 embedding은 통사적으로, 의미적으로 관련된 nearest neighbor를 보이며, supervised benchmark task만으로 학습한 embedding보다 더 매력적이다.Table 7은 LM1 model에서 무작위로 선택한 query word의 nearest neighbor를 보고한다.
- 결과: 학습된 embedding으로 supervised network를 초기화하면 모든 task에서 일반화 성능이 크게 향상되며, 더 큰 language model은 한층 더 나은 성능을 보인다.이 결과는 더 큰 비라벨 dataset이 추가적인 이점을 제공할 수 있음을 시사한다.
- 한계: 이 접근법은 parse tree 없이 비라벨 데이터에서 계층적 통사 정보와 의미 정보를 학습하는 것을 목표로 하지만, 현재의 restrictive language-model structure는 학습된 word embedding만 활용한다.따라서 저자들은 ranking criterion이 개념적으로 풍부한 정보를 포착할 수 있다고 보면서도 현재 architecture의 한계를 인정한다.
5. 멀티태스크 학습
이 절에서는 POS, CHUNK, NER, SRL 모델을 공유 파라미터로 공동 학습하여 태스크 간 공통 표현을 찾는 멀티태스크 학습을 적용한다. 통합 architecture는 우수한 성능을 보이지만, 별도로 학습한 태스크별 architecture보다 향상 폭이 없거나 미미하다.
- Architecture: 모델은 공유 lookup-table 파라미터로 공동 학습되며, 태스크별 output layer가 각 태스크의 예측을 생성한다.신경 멀티태스킹 설계에서는 lookup table과 첫 번째 hidden layer를 공유하고, 마지막 layer는 태스크별로 유지한다.
- Experimental setup: SRL은 predicate 관련 의존성이 장거리이므로 sentence-level network가 필요했지만, POS, CHUNK, NER은 window network로 공동 학습했다.window model은 공유되는 첫 번째 hidden layer의 크기를 n1_hu = 500으로 늘렸고, embedding dimension은 d0 = 50으로 유지했다.
- Training: 공동 학습은 태스크 예제를 번갈아 사용하고 태스크별 파라미터와 공유 파라미터를 모두 업데이트하여 태스크 간 평균 loss를 최소화하며, 모든 태스크에 동일한 가중치를 부여한다.학습 세트와 테스트 세트는 태스크 간에 겹치지 않으며, 각 태스크의 일반화 성능은 해당 태스크의 전통적인 테스트 데이터에서 평가한다.
- Results: 멀티태스크 학습은 POS, CHUNK, NER, SRL 전반에서 우수한 성능을 보이는 하나의 통합 architecture를 만들었지만, 별도의 태스크 architecture보다 향상 폭은 없거나 미미했다.별도의 architecture도 여전히 semi-supervised learning을 사용했으며, 이는 가장 중요한 멀티태스크 구성 요소로 확인되었다.
6. 유혹
이 절에서는 task-specific engineering이 대체로 generic한 neural architecture를 어떻게 바꾸는지 검토하고, suffixes, related-task tags, parse-tree information이 성능을 향상할 수 있음을 보인다. 또한 기본적인 preprocessing 때문에 이 접근법이 완전히 from scratch인 것은 아니며, 계산량은 여전히 가볍다고 설명한다.
- 범위: 이 방법은 기본적인 raw-input preprocessing을 수행하므로 “almost” from scratch다. 완전히 from-scratch인 시스템이라면 words 대신 letters, speech 또는 optical recognition을 사용한다.이 한정은 논문 제목의 “almost”를 설명한다.
- Word features: 각 word의 마지막 두 characters를 discrete suffix features로 추가하면 POS가 소폭 향상되며, suffix dictionary는 455 entries로 구성된다.Porter-stemmer suffixes는 two-character suffixes와 동일한 성능을 낸다.
- Related-task features: CHUNK와 NER에 gold POS tags를, SRL에 gold CHUNK tags를 추가하면 해당 task 전반에서 중간 정도의 향상이 나타난다.실험에서는 neural POS system의 더 정확한 predictions가 아니라 CoNLL challenge가 제공한 POS 및 CHUNK tags를 사용한다.
- Parse-tree information: SRL에서는 parse-tree leaves가 chunking features보다 우수하며, network 자체의 PT0 predictions를 입력하면 Charniak predictions와 비슷한 성능을 내고 CHUNK보다 일관되게 더 우수하다.BIES segmentation prefixes를 무시하면 leaves와 chunking은 동일하게 labeling되지만, parse trees는 더 풍부한 정보를 제공한다.
- 효율성: task-specific features를 추가해도 시스템은 여전히 가볍다. POS와 SRL taggers는 각각 32MB와 120MB의 RAM을 사용하며, 인용된 대안보다 상당히 빠르게 실행된다.Shen 및 Toutanova taggers는 2.2GB와 800MB보다 훨씬 적은 메모리에서 실행되지만, Koomen tagger는 최소 3GB를 요구한다.
7. 비판적 논의
저자들은 자신의 작업을 “NLP from scratch”를 향한 한 단계로 제시하면서, 목표와 multilayer neural networks에 대한 의존 모두에 제기될 수 있는 비판을 인정한다. 이들은 task-general learning과 scalable stochastic learning을 통해 표현을 발견하는 neural networks의 능력을 옹호한다.
- 저자들은 “NLP from scratch”라는 목표와 이를 추구하는 데 사용한 수단 모두가 비판받을 수 있음을 인정한다.
- 비판자들은 대규모 neural networks를 훈련하는 데 필요한 능력을 익히기 위해 NLP feature-engineering 전문성을 포기하는 것이 타당한지 의문을 제기할 수 있다.저자들은 단일 NLP task가 NLP의 목표를 모두 포괄하지 못하므로 task-specific engineering을 피하는 방법이 필요하다고 주장한다.
- 저자들은 example 수에 따라 선형적으로 확장되는 stochastic learning을 통해 hidden representations를 발견할 수 있기 때문에 multilayer neural networks를 선택했다.저자들은 이 기술이 대략 이십 년 된 것으로 규정하며, 필요한 neural-network 기술의 상당 부분이 그보다 십 년 앞서 기술되었다고 지적한다.
8. 결론
이 논문은 대규모 비라벨 데이터셋에서 유용한 표현을 학습함으로써 task-specific engineering을 최소화하는, 여러 NLP task를 위한 빠르고 정확한 multilayer neural network를 제시한다.
- 8. 결론: 제안한 multilayer neural network는 속도와 정확성을 모두 확보하면서 task-specific engineering을 최소화하고 여러 NLP task를 처리한다.대규모 비라벨 데이터셋에 의존하며, training algorithm이 여러 task에 유용한 내부 표현을 스스로 발견하도록 한다.
- 8. 결론: 학습된 표현은 빠르고 효율적인 범용 NLP tagger를 뒷받침한다.
Appendix A. Neural Network Gradients
부록에서는 feed-forward computation을 layered functions로 표현하고 generalized chain-rule backpropagation을 적용해 네트워크의 stochastic-gradient training을 유도한다. 이어서 논문에서 사용하는 네트워크 layers와 training criteria에 맞춰 gradient computation을 구체화한다.
- General setup: Training은 negated likelihood와 ranking criterion을 포함한 stochastic gradients를 사용해 network parameters에 대한 cost를 최소화한다.cost는 likelihood를 negating한 뒤 C(fθ(·))로 쓴다.
- General setup: Generalized chain-rule backpropagation은 parameters를 layer별로 나누고, final output에서 gradient를 초기화한 뒤 각 layer를 거치며 gradient를 재귀적으로 전파한다.각 layer는 output에 도착한 gradient로부터 자신의 parameters와 inputs에 대한 gradients를 계산한다.
- Layer gradients: 부록에서는 lookup-table, linear, window-based, parameter-free layers에 대한 layer-specific gradients를 유도하며, sequence windows에 걸친 accumulation도 다룬다.Lookup-table updates에서는 sequence에 없는 indices에 해당하는 columns를 제외하고, parameter-free layer는 input gradients만 필요하며 non-differentiability points는 무시한다.
- Training criteria: word-level 및 sentence-level likelihood에서는 tag scores와 sentence-level logadd recursion을 통해 gradients를 구하는 반면, ranking criterion에서는 zero-point non-differentiability를 무시하는 hinge-style gradient를 사용한다.Sentence-level differentiation에서는 recursion 동안 network inputs와 transition scores에 대한 gradients를 누적한다.