[ACL 2020] Spelling Error Correction with Soft-Masked BERT 논문정리
ACL 2020 논문 읽기 (1)
[paper]
Abstract만 읽고 정리해보기
- Chinese spelling error correction (CSC) task
- 문제점: BERT의 학습 방식 (masking) 때문에, 어디에 error가 있는지 탐지하는 능력이 부족하다.
- detection 모델은 BERT가 아닌 모델로 하고, correction에서 BERT based 모델을 사용해서 이어주는 방식 (soft-masking technique)로 새로운 모델을 제시
- Better than BERT baselines in two datasets (심지어 하나는 BERT based)
- 다른 언어에서도 통할 것으로 기대 (이 paper는 중국어에 대해서만 다룸)
Introduction
Spelling error correction은 말 그대로 text 내의 spelling error를 고치는 task (word-level, character-level)
이 논문에서는 character-level의 Chinese spelling error correction을 다룸
Previous approaches (Related work)
- Traditional machine learning
- Zhang et al. (2015): error detection, candidate generation, final candidate selection 의 pipeline을 갖는 unified framework을 제안
2. Deep learning
- Wang et al. (2019): 입력 문장을 spelling error가 교정된 새로운 문장으로 변환하는 copy mechanism의 Seq2Seq 모델을 제안
3. BERT
- BERT는 CSC를 포함한 많은 understanding tasks에 성공적으로 적용 가능
- character-level BERT을 큰 unlabeled dataset에 pretrain하고, labeled dataset에 fine-tuning하여 학습한 방식
- 주어진 문장의 각 위치에서 후보 중 가장 가능성이 높은 character를 예측
- labeled data에 large confusion table을 이용하여 spelling error를 만드는 data augmentation 기법도 사용
Observation
실험 결과에서 BERT method의 정확도를 더 개선할 수 있을 것으로 보여짐
: error detection 능력이 충분히 높지 않음
→ error가 detection되고 나면, 올바르게 보정할 수 있는 가능성이 높아짐
가정: 이는 BERT가 pre-training 하는 방식 (Mask Language Modeling) 때문
(텍스트 내 약 15%의 문자가 마스킹되고, 따라서 masked token의 distribution에 대해서만 학습하게 되어 수정을 하지 않게 되는 경향이 있음)
이 현상은 널리 퍼져 있고, 특정 task에서 BERT를 사용하는 데 보편적인 challenge
Proposal
이 문제를 해결하기 위해 새로운 뉴럴 아키텍쳐 Soft-Masked BERT를 제안
soft masking은 기존의 ‘hard masking’의 extension으로, error일 확률이 1과 같을 때 전자가 후자로 줄어듦(?)
Problem and Motivation
Chinese spelling error correction (CSC)
- n characters 의 sequence를 같은 길이의 sequence로 변환하는 Task
- X 내의 부정확한 character를 알맞은 character로 변환하여 Y를 얻어내야 함 (error correction)
- 일종의 sequential labeling problem으로 볼 수 있음
- 그래도 다른 sequential labeling 보다 쉬운 점은 대부분의 character는 그대로 라는 점
Soft-Masked BERT for CSC

Bi-GRU 기반의 detection network + BERT 기반의 correction network
- detection network은 error의 확률을 예측하고 correction network은 error correction의 확률을 예측함
- detection network은 예측 결과를 correction network로 soft masking을 이용하여 넘겨줌
모델의 흐름 (Figure)
문장 내 각 character에 대해서 임베딩을 생성 (input embedding)
→ embedding sequence를 입력받아 detection network를 통해 sequence에 대한 error 확률을 출력 (the probabilities of errors)
→ input embedding과 error 확률에 기반한 [MASK] embedding의 weighted sum을 계산 (soft-masked embedding: sequence 내 error가 있을 법한 곳에 soft한 방식으로 masking)

→ soft-masked embedding을 입력받아 correction network를 통해 error correction의 확률을 출력 (the probabilities of error correction: BERT의 final layer에서 모든 character에 대하여 softmax)
* 별도로 input embedding과 final layer의 embedding 간 residual connection
학습 (Learning)

end-to-end으로 학습하고, detection network의 objective와 correction network의 objective의 linearly combined으로 전체 objective function이 이루어짐
My Discussion
ACL 2020 accepted paper list가 나오면서 arxiv에서 검색하다가 읽게 된 논문인데, “가정 + 아이디어 + 실험 검증 + 실험 결과”가 잘 정리된 논문 같아서 읽게 되었다. 실제로 읽는 데 술술 읽혔고, 이런 아이디어를 얻게 된 계기를 묻고 싶다. (나는 아이디어가 안 나와..) 재밌는 task이기도 하면서 한자가 무수히 많은 중국어에서도 좋은 결과가 나왔으니 한국어에도 적용하면 잘 될 것 같다.