Yoon Kim - 문장 분류를 위한 컨볼루션 신경망

Jmnote (토론 | 기여)님의 2020년 6월 28일 (일) 17:07 판 (→‎모델)
Convolutional Neural Networks for Sentence Classification
문장 분류를 위한 컨볼루션 신경망
초록

문장 수준 분류 작업을 위해 사전 훈련된 단어 벡터에 대해 학습하는 CNN(Convolutional Neural Network)을 사용한 일련의 실험에 대해 보고한다. 하이퍼 파라미터 튜닝과 정적 벡터가 거의 없는 간단한 CNN으로 여러 벤치마크에서 우수한 결과를 달성했다. 미세조정(fine-tuning)을 통해 작업별 벡터를 학습하면 성능이 더욱 향상된다. 또한 작업별 벡터와 정적 벡터를 모두 사용할 수 있도록 아키텍처에 대한 간단한 수정을 제안한다. 여기서 논의된 CNN 모델은 감성 분석 및 질문 분류를 포함하여 7개의 작업 중 4개 작업에서 최신 기술을 개선했다.

1 서론

딥러닝 모델은 최근 몇 년 동안 컴퓨터 비전(Krizhevsky et al., 2012) 및 음성 인식(Graves et al., 2013)에서 놀라운 결과를 달성했다. 자연어 처리에서, 딥러닝 방법을 사용한 많은 작업들은 신경 언어 모델을 통한 단어 벡터 표현 학습(Bengio et al., 2003; Yih et al., 2011; Mikolov et al., 2013)과 분류를 위한 학습된 단어 벡터를 통한 구성(Collobert et al., 2011)과 관련된다. 은닉층을 통해 희소한 1-of-V 인코딩(여기서 V는 어휘 크기)에서 더 낮은 차원의 벡터 공간으로 투영되는 워드 벡터는 본질적으로 차원의 단어의 의미적 특징을 인코딩하는 피처 추출기이다. 조밀한(dense) 표현에서도, 의미적으로 가까운(유클리드 또는 코사인 거리로) 단어들은 더 낮은 차원의 벡터 공간에 가깝다.

CNN(Convolutional Neural Network)은 로컬 피처에 적용되는 복잡한 필터가 있는 레이어를 활용한다(LeCun et al., 1998). 본래 컴퓨터 비전을 위해 발명되었던 CNN 모델은 NLP에도 효과적이며, 시맨틱 파싱(Yih et al., 2014), 검색 쿼리 조회(Shen et al., 2014), 문장 모델링(Kalchbrenner et al., 2014), 기타 전통적인 NLP 작업 (Collobert et al., 2011)에서 탁월한 결과를 보였다.

현재 연구에서 우리는 비지도 뉴럴 언어 모델에서 얻은 단어 벡터 위에 하나의 컨볼루션 레이어로 간단한 CNN을 훈련시킨다. 이들 벡터는 Mikolov et al. (2013)가 Google 뉴스의 단어 1000억개를 학습시킨 것으로 공개적으로 사용가능하다. 처음에는 단어 벡터를 정적으로 유지한 채로 모델의 다른 매개변수만 학습시킨다. 하이퍼파라미터를 거의 튜닝하지 않아도, 이 간단한 모델은 여러 벤치마크에서 우수한 결과를 보였다. 이는 사전훈련된 벡터들이 다양한 분류 작업에 활용할 수있는 '범용' 피처 추출기임을 의미한다. 미세조정을 통해 작업별 벡터를 학습하면 추가 향상이 이루어진다. 마지막으로는 여러 채널에서 사전학습, 작업별 벡터를 모두 쓸 수 있게 한 아키텍처의 간단한 변경을 설명한다.

우리 연구는, 다양한 작업(피처 추출기를 훈련시키는 본래의 작업과 매우 다른 작업들 포함)에서 잘 작동하는 사전훈련된 딥러닝모델로 얻은 피처 추출기, 이미지 분류를 선보인 Razavian et al. (2014)의 연구와 철학적으로 유사하다.

2 모델

파일:Screen-Shot-2015-11-06-at-8.03.47-AM-1024x413.png
그림 1: 예시 문장에 대한 두 채널을 가진 모델 아키텍처


그림 1에 표시된 모델 아키텍처는 Collobert et al. (2011)의 CNN 아키텍처를 약간 변형한 것이다. [math]\displaystyle{ \mathbf{x}_i ∈ ℝ^k }[/math]를 문장에서 i번째 단어에 해당하는 k-차원 단어 벡터라고 해보자. 길이 n의 문장 (필요시 채워짐padded)은 다음과 같이 표현된다.

[math]\displaystyle{ \mathbf{x}_{1:n} = \mathbf{x}_1 ⊕ \mathbf{x}_2 ⊕ \cdots ⊕ \mathbf{x}_n, }[/math]

 

 

 

 

(1)

여기서 ⊕는 연결concatenation 연산자이다. 일반적으로 [math]\displaystyle{ \mathbf{x}_{i:i+j} }[/math]는 단어 [math]\displaystyle{ \mathbf{x}_i, \mathbf{x}_{i+1}, \cdots, \mathbf{x}_{i+j} }[/math]의 연결을 나타낸다. 컨볼루션 연산은, 새로운 특성을 만들기 위해 h 단어들의 윈도우에 적용되는 필터 [math]\displaystyle{ w ∈ ℝ^{hk} }[/math]를 수반한다. 예를 들어, 특성 [math]\displaystyle{ c_i }[/math]는 다음과 같이 단어 [math]\displaystyle{ \mathbf{x}_{i:i+j} }[/math]의 윈도우로부터 생성된다.

[math]\displaystyle{ c_i = f(w · \mathbf{x}_{i:i+h-1} + b). }[/math]

 

 

 

 

(2)

여기서 [math]\displaystyle{ b ∈ ℝ }[/math]은 편향항bias term이고 f는 쌍곡선 탄젠트와 같은 비선형 함수이다. 이 필터는 문장 [math]\displaystyle{ \{\mathbf{x}_{1:h}, \mathbf{x}_{2:h+1}, \cdots, \mathbf{x}_{n−h+1:n}\} }[/math]에서 가능한 단어의 각 윈도우에 적용되어 다음의 특성 맵을 생성한다.

2.1 정규화

3 데이터세트 및 실험 셋업

다양한 벤치마크에서 모델을 테스트한다. 데이터 세트의 요약 통계는 표 1에 있다.

  • MR : 한 문장 짜리 영화 리뷰. 분류에는 긍정적/부정적 리뷰 판별이 포함되어 있다 (Pang and Lee, 2005).
  • SST-1 : 스탠포스 감성 트리뱅크(Stanford Sentiment Treebank) – MR의 확장판인데 훈련/개발/테스트 분할과 세부 레이블(매우 긍정, 긍정, 중립, 부정, 매우 부정)을 있다 (Socher et al. 2013).
  • SST-2 : SST-1과 동일하지만 중립 리뷰가 제거되고 이진 레이블이 있다.
  • Subj : 문장이 주관적인 것과 객관적인 것으로 문장을 분류하는 주관성 데이터 세트 (Pang and Lee, 2004).
  • TREC : TREC 질문 데이터 셋 — 과제는 질문을 6가지 유형(질문이 사람, 장소, 숫자 정보 등에 관한 것인지 여부) 분류에 관한 것이다 (Li and Roth, 2002).
  • CR : 다양한 제품(카메라, MP3 등)에 대한 고객 리뷰. 과제는 긍정적/부정적 리뷰를 예측하는 것이다 (Hu and Liu, 2004).
  • MPQA : MPQA 데이터 세트의 의견 극성 분석 서브태스크 (Wiebe et al., 2005).

3.1 하이퍼파라미터와 훈련

3.2 사전훈련된 워드 벡터

3.3 모델 변형판

4 결과 및 논의

다른 방법에 대한 모델의 결과는 표 2에 나열되어 있다. 모든 랜덤 초기화된 단어(CNN-rand)가 있는 기준 모델은 자체적으로 잘 수행되지 않는다. 사전훈련된 벡터 사용으로 성능이 향상될 것을 기대했는데, 이득이 커서 놀라웠다. 정적 벡터(CNN-static)를 사용하는 간단한 모델도 성능이 뛰어나, 복잡한 풀링 스킴를 사용하거나(Kalchbrenner et al., 2014) 사전에 파싱트리를 계산해야 하는(Socheret al., 2013) 보다 복잡한 딥러닝 모델들에 비해 경쟁력 있는 결과를 보였다. 이러한 결과는 사전훈련된 벡터가 괜찮은 '범용' 특성 추출기이며 데이터세트들에 대해 활용할 수 있음을 나타낸다. 각 작업에 대해 사전훈련된 벡터를 미세조정하면 추가 개선이 있다(CNN-비정적).

4.1 멀터채널 vs 싱글채널 모델

우리는 처음에 멀티 채널 아키텍처가 (학습된 벡터가 원래 값에서 너무 멀지 않도록 함으로써) 오버피팅을 방지하고 특히 작은 데이터 세트에서 단일 채널 모델보다 더 잘 작동하기를 기대했다. 그러나 결과는 혼재되어 미세조정 프로세스를 정규화하는 추가 작업이 필요하다. 예를 들어, 비정적 부분에 추가 채널을 사용하는 대신, 단일 채널을 유지하고 훈련중 변경가능한 추가 차원을 적용할 수 있다.

4.2 정적 vs 비정적 표현

단일 채널 비정적 모델의 경우와 마찬가지로 다중 채널 모델은 비정적 채널을 미세조정하여 직접 처리할 수 있다. 예를 들어, good은 word2vec에서 bad와 가장 유사하다. 아마도 거의 문법적으로 동일하기 때문이다. 그러나 SST-2 데이터세트에서 미세조정된 비정적 채널의 벡터의 경우에는 더 이상 적용되지 않는다 (표 3). 마찬가지로 good은 감정 표현에서 great보다 nice에 더 가깝고, 이는 실제로 학습된 벡터에 반영된다.

사전훈련 벡터 셋에 없는 (랜덤 초기화된) 토큰의 경우, 미세조정을 통해 보다 의미있는 표현을 학습할 수 있다. 네트워크는 느낌표가 과장된 표현과 관련있고 쉼표가 접속어라는 것을 학습한다 (표 3).

4.3 추가 의견

몇 가지 추가적인 실험과 관찰에 대해 보고한다.

  • Kalchbrenner et al. (2014)는 단일 채널 모델과 본질적으로 동일한 아키텍처를 가진 CNN으로 훨씬 더 나쁜 결과를 보고했다. 예를 들어 랜덤 초기화된 단어가 있는 Max-TDNN (Time Delay Neural Network)은 SST-1 데이터세트에서 37.4 %가 나왔다 (우리 모델은 45.0 %). 이런 차이는 우리 CNN이 훨씬 더 많은 용량(멀티 필터 너비 및 특성 맵)을 가졌기 때문이라고 본다.
  • 드롭아웃은 필요한 네트워크보다 더 큰 네트워크를 사용하여 드롭아웃으로 정규화하는 것이 괜찮은 정규화 장치라는 것을 입증한다. 드롭아웃은 일관되게 2 % ~ 4 %의 상대적 성능을 더 냈다.
  • word2vec에 없는 단어를 랜덤 초기화할 때, 랜덤 초기화된 벡터가 사전훈련된 벡터와 동일한 분산을 갖도록 a가 선택된 U[-a, a]에서 각 차원을 샘플링하여 약간의 개선을 얻었다. 초기화 과정에서 사전훈련된 벡터의 분포를 반영하는 보다 정교한 방법을 사용하여 추가 개선이 있는지를 알아보면 흥미로울 것이다.
  • Collobert et al. (2011)이 위키백과를 통해 학습시킨 공개적으로 사용가능한 다른 단어 벡터들 세트로 간단히 실험했고, word2vec이 훨씬 뛰어난 성능을 보이는 것을 확인했다. 이것이 Mikolov et al. (2013)의 아키텍처에 의한 것인지, 1000억 단어 구글 뉴스 데이터세트에 의한 것인지는 확실치 않다.
  • Adadelta (Zeiler, 2012)는 Adagrad와 비슷한 결과를 보였지만 (Duchi et al., 2011), 더 적은 epoch가 필요했다.

5 결론

본 연구에서 우리는 word2vec 위에 구축된 컨볼루션 신경망을 이용한 일련의 실험을 설명했다. 하이퍼파라미터 튜닝이 적음에도 하나의 컨볼루션 레이어가 있는 간단한 CNN을 상당히 잘 수행한다. 이 결과는 단어 벡터의 비지도 사전훈련이 NLP 딥러닝의 주요 요소라는 잘 확립된 증거로 추가되었다.

6 같이 보기

7 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}