2019. 2. 10. 21:00ㆍ풀잎스쿨 NLP Bootcamp
논문링크: https://arxiv.org/abs/1702.02098
참고자료: (백병인님 자료)Fast and Accurate Entity Recognition with Iterated Dilated.pdf
Abstract
Contribution
CNN Model Description
이 모델에서는 기존 Bi-LSTM-CNN-CRF방식 대신 CNN만을 사용한 모델을 제시한다.
하지만 CNN을 사용할 경우, 모든 Feature를 한꺼번에 커버하기 위해서는 상당히 많은 수의 Layer가 필요해진다. 위 그림을 살펴보면, 4개의 Layer가 7개의 Feature에 대한 정보를 포함할 수 있고, 커버할 수 있는 Feature의 갯수는 Layer의 갯수에 선형적으로 비례하여 증가하게 된다.
만약 Dilated CNN을 사용하게 된다면 커버할 수 있는 Feature의 갯수는 Layer의 갯수에 지수적으로 지례하여 증가하게 된다. 위 그림을 따라 살펴보면 4개의 Layer가 포함할 수 있는 Feature 정보의 갯수는 15개이다. 4개의 Layer는 최대 33개의 Token을 포함할 수 있으며, 8개의 Layer를 사용한다면 최대 1000개 이상의 Token을 커버할 수 있게 된다. 이는 포함하고자 하는 Feature 정보의 갯수가 늘어감에 따라 필요한 Layer가 기하급수적으로 많이 차이가 나게 된다.
그렇다면 Dilated CNN은 반드시 좋은 방법이 되는걸까? 실험을 통해서 살펴본 바는 그렇지 않다. Dilated Conv.를 사용할 경우, Overfitting이 쉽게 일어난다는 단점이 있으며, Dilated Conv. Layer를 깊게 쌓을수록 학습이 진행되지 않는다는 단점이 존재한다. 그렇다면 이러한 단점을 해결할 방법이 있을까?
이 논문에서는 Iterated Dilated CNN(ID-CNN)이라는 방식을 통해 해결책을 제시한다. 여기서는 3개의 Dilated Layer만을 사용하여 Block을 만든 후, 해당 Block을 계속 재사용하여 학습하는 방식을 제시한다. 이러한 방식의 장점은 CRF처럼 Label간의 관련성을 직접 고려하지 않더라도, 간접적으로 오류 수정 효과를 기대할 수 있다는 점, 계산이 훨씬 간단하다는 점, 그리고 Vanishing Gradient에 대해 더 안전하다는 점이다.
학습에 사용한 Loss는 Maximum Log-likelihood이며, Average Loss Minimization을 사용하고 있다.
<Maximum log-likelihood>
<Average Loss Minimization>
Dropout
Result & Conclusion
Result
일단 결과 몇가지만 소개하고자 한다.
모델의 성능은 논문에서 제시했던 대로 Bi-LSTM-CRF에 비해 크게 개선되지는 않았다. BI-LSTM-CRF와 비교해보면 오차 범위 이내에 드는 것을 확인할 수 있다.
속도에서는 기존 방식에 비해 큰폭으로 증가한 것을 볼 수 있다. Bi-LSTM-CRF가 LSTM-RNN방식때문에 중첩되는 Sequential Model을 갖게 됨으로써 속도가 느려진 부분이 있었다면, 해당 논문에서는 CNN방식을 통해 병렬처리에 유리한 구조를 가지게 됨으로써 확실하게 성능 개선을 이루어 냈다. 다만 CRF Layer를 사용할 경우, 여전히 느린 모델이라는 점은 동일하다.
Dropout을 사용할 경우에 어느정도의 성능 개선을 보인다. 다른 방식에 비해 Dropout을 사용할 때 성능이 늘어난 폭이 큰 것을 확인할 수 있다.