cs

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리딩] Character-Aware Neural Language Models
    논문 리딩/NLP 2020. 7. 14. 15:21
    Character-Aware Neural Language Models
    2015, Y. Kim, Y. Jernite, D. Sontag, A. M. Rush

    Abstract

    이 논문에서는 캐릭터 단위(character-level)의 입력값을 받는 간단한 신경망 언어 모델을 제안한다.

    모델은 CNN(Convolutional Neural Network)와 캐릭터들에 대한 highway network를 사용하고,

    그 출력을 LSTM(Long Short Term Memory) 순환신경망 언어 모델의 입력값으로서 사용한다.

    English Penn Treebank 영어 데이터셋에서 제안된 모델은 여타 SOTA 수준의 다른 모델의 60% 정도의 매개변수(parameter)만 사용하면서도 비슷한 정확도를 보인다.

    복잡한 형태적 구성을 가진 언어의 경우 제안된 모델은 더 적은 매개변수 개수를 가지고도 단어 기반/형태소 기반 LSTM 베이스라인 모델의 성능을 뛰어넘는다.

    이 결과는 많은 언어에서 캐릭터 단위 모델을 사용 가능하다는 것을 의미한다.

    제안된 모델의 캐릭터 조합 단계에서 도출되는 단어 임베딩을 살펴봄으로써, 제안된 모델이 캐릭터로부터 의미적인, 또 철자적인 정보를 얻을 수 있다는 결론을 내릴 수 있다.

     

    Introduction

    언어 모델은 인공지능과 자연어 처리(NLP)에 있어서의 핵심적인 과제이며, 음성 인식, 텍스트 생성, 기계 번역등의 응용 분야를 가지고 있다.

    언어 모델은 단어(문자열)의 순열에 대한 확률 분포로 이해할 수 있는데,

    전통적인 방식은 주로 $n$차의 마르코프 추측을 세우고, 카운팅과 subsequent smoothing을 통해 $n$-그램 확률을 근사했다.

    카운트 기반 모델은 학습하기 쉽지만, 데이터 희소 문제(data spasity)에 의해 잘 나타나지 않는 $n$-그램에 대한 확률을 정확히 측정하기 어렵다.

     

    NLM(Neural Language Model)은 $n$-그램 데이터 희소 문제를 단어를 임베딩해 인공 신경망에 넣는 방식으로 해결한다. 이 때 쓰이는 매개변수들은 학습 과정에서 학습된다.

    NLM을 통해 얻게 되는 단어 임베딩에서는 의미적으로 유사한 단어들이 유도된 벡터 공간에서도 가까이 위치하게 된다.

     

    NLM은 $n$-그램 언어 모델보다 뛰어난 성능을 보였지만, 여전히 형태소와 같은 단어 내 구조를 반영할 수는 없었다.

    예컨대 eventful, eventfully, uneventful, uneventful 과 같은 단어들은 구조적으로 연관된 임베딩 벡터를 가져야 한다.

    드물게 등장하는 단어의 임베딩에 대한 성능은 좋지 않아서, 드문 단어와 그 주변 단어의 perplexity는 높게 된다.

    이 문제는 형태학적으로 복잡성질을 가져서, 단어 빈도의 분포가 긴 꼬리를 가지게 되는 언어나 소셜 미디어와 같은 변동성이 있는 사전을 가지는 분야에서 특히 두드러진다.

     

    이 논문에서 소개하는 모델은 character 단위 CNN을 통해 단어 내 구조 정보를 활용하고, 

    그 출력값을 순환 신경망 언어 모델의 입력값으로 사용한다.

    형태로 정보를 이용해 단어 내 구조 정보를 활용하는 이전의 연구들과 다르게, 제안된 모델은 전처리 과정에서 형태소 태깅을 필요로 하지 않는다.

    또한, character 단위 모델을 단어 임베딩과 결합한 최근의 연구와 다르게, 이 논문에서 제안된 모델은 입력 레이어에서 단어 임베딩을 활용하지 않는다.

    NLM에서 단어 임베딩 단계의 매개변수가 전체 매개변수의 대부분을 차지하기 때문에, 제안된 모델은 기존의 NLM보다 훨씬 적은 매개변수를 가진다.

     

    요약하자면 이 논문이 기여하는 점은 아래와 같다.

    • (영어) 기존 모델의 60%정도의 매개변수를 갖고도 PTB(Penn  Treebank) 데이터셋에서 SOTA의 성능을 보임
    • (아라비아어, 체코어, 프랑스어, 독일어, 스페인어, 러시아어) 복잡한 형태적 구성을 가진 언어에서 더 적은 매개변수로 베이스라인 모델을 뛰어넘는 성능을 보임

     

    그림1. 모델의 구조

     

    Model

    제안된 모델의 구조는 그림1에 나타나 있다.

    전통적인 NLM이 임베딩된 단어를 입력값으로 갖는 반면, 제안된 모델은 character 단위의 1-layer CNN과 max-over-time pooling을 거친 출력값을 입력값으로 갖는다.

    Recurrent Neural Network

    (이 절의 내용은 RNN과 LSTM에 대한 개요로, 논문에서 새롭게 소개되는 내용은 아니다.)

    더보기

    순환 신경망(RNN, Recurrent Neural Network)는 순차적인 현상을 모델링하기에 적합한 인공 신경망 구조이다.

    각 타임 스텝 $t$에서, RNN은 입력 벡터 $\mathbf{x}_t \in \mathbb{R}^m$ 와 히든 스테이트 벡터 $\mathbf{h}_{t-1} \in \mathbb{R}^m$ 를 받아 아래와 같이 다음 히든 스테이트 벡터 $\mathbb{h}_t$를 생성한다.

     

    $\mathbf{h}_t = f(\mathbf{W}\mathbf{x}_t + \mathbf{Uh}_{t-1} + \mathbf{b})$

     

    $\mathbf{W} \in \mathbb{R}^{m \times n}, \mathbf{U} \in \mathbb{R}^{m \times m}, \mathbf{b} \in \mathbb{R}^{m}$: affine 변환의 매개변수

    $f$: 요소별(element-wise) 비선형성

     

    이론적으로 RNN은 시간 $t$전에 발생한 모든 과거의 정보를 히든 스테이트 $\mathbf{h}_t$에 담을 수 있다.

    그러나 현실적으로, 바닐라 RNN에 긴 범위의 의존성을 학습시키는 것은 vanishing/exploding gradient 문제로 인해 어렵다.

     

    LSTM(Long short-term memory)는 이 문제에 대해 각 타임 스텝마다 memory cell vector $\mathbf{c}_t \in \mathbb{R}^n$을 추가하는 방향으로 접근한다.

    LSTRM의 각 스텝은 $\mathbf{x}_t, \mathbf{h}_{t-1}, \mathbf{c}_{t-1}$을 입력값으로 받아 $\mathbf{h}_t, \mathbf{c}_t$를 출력값으로 내놓는데, 이 때 이루어지는 연산은 다음과 같다.

     

    $\mathbf{i}_t = \sigma(\mathbf{W}^i\mathbf{x}_t + \mathbf{U}^i \mathbf{h}_{t-1} + \mathbf{b}^i)$

    $\mathbf{f}_t = \sigma(\mathbf{W}^f\mathbf{x}_t + \mathbf{U}^f \mathbf{h}_{t-1} + \mathbf{b}^f)$

    $\mathbf{o}_t = \sigma(\mathbf{W}^o\mathbf{x}_t + \mathbf{U}^o \mathbf{h}_{t-1} + \mathbf{b}^o)$

    $\mathbf{g}_t = \tanh(\mathbf{W}^i\mathbf{x}_t + \mathbf{U}^g \mathbf{h}_{t-1} + \mathbf{b}^g)$

    $\mathbf{c}_t = \mathbf{f}_t \odot \mathbf{c}_{t-1} + \mathbf{i}_t \odot \mathbf{g}_t$

    $\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t)$

     

    위 식에서 $\sigma(\cdot), \tanh(\cdot)$은 element-wise 시그모이드와 하이퍼볼릭 탄젠트 함수이고,

    $\odot$는 element-wise 곱셈 연산자이다.

    $\mathbb{i}_t, \mathbb{f}_t, \mathbb{o}_t$는 각각 입력 게이트(input gate), 망각 게이트(forget gate), 출력 게이트(output gate)라고 한다.

    $\mathbf{h}_0, \mathbf{c}_0$ 은 영벡터로 초기화된다.

    LSTM의 매개변수는 각 $j \in \left\{ i, f, o, g\right\}$ 에 대한 $\mathbf{W}^j, \mathbf{U}^j, \mathbf{b}^j$이다.

     

    LSTM의 메모리 셀은 시간에 따라 더해가는 구조이기 때문에 vanishing gradient 문제를 어느 정도 해소할 수 있다.

    gradient exploding 문제는 이로 인해 해소되지는 않으나, 현실에서 gradient clipping과 같은 간단한 최적화 전략이 효과가 좋다.

    LSTM은 언어 모델링을 포함한 많은 과제에 있어 바닐라 RNN에 비해 훌륭한 성능을 보였다.

    RNN/LSTM을 두개 이상의 레이어를 갖도록 확장하는 것은 어렵지 않은 일이며, 이 경우 $t$에서의 입력값은 첫 번째 레이어에서 가져온 $\mathbf{h}_t$가 된다.

    Recurrent Neural Network Language Model

    (이 절의 내용은 순환 신경망을 활용한 언어 모델에 대한 내용으로, 논문에서 새롭게 소개된 내용은 아니다.)

    더보기

    $\mathcal{V}$: 고정된 사이즈의 단어 사전

     

    언어 모델은 과거의 순차적 정보 $w_{1:t} = [w_1, \ldots, w_t]$가 주어졌을 때 다음에 올 단어 $w_{t+1}$에 대한 확률을 추론한다.

    RNN-LM(Recurrent Neural Network Language Model)은 hidden layer에 affine변환을 가하고 softmax를 취함으로써 이 과제를 수행한다.

     

    $\Pr(w_{t+1} = j | w_{1:t}) = \frac{\exp(\mathbf{h}_t \cdot \mathbf{p}^j + q^j)}{\sum_{j' \in V} \exp(\mathbf{h}_t \cdot \mathbf{p}^{j'} + q^{j'})}$

     

    $\mathbf{P} \in \mathbb{R}^{m \times |\mathcal{V}|}$: 결과 임베딩(output embedding)

    $\mathbf{p}^j$: $\mathbf{P}$의 $j$번째 열

    $q^j$: bias 항

     

    유사하게, 주로 단어를 입력값으로 받는 관습적 RNN-LM에서 $w_t=k$ 라면,

    시간 $t$ 에서의 RNN-LM의 입력값은 입력 임베딩(input embedding) 행렬 $\mathbf{X} \in \mathbb{R}^{n \times |\mathcal{V}|}$ 의 $k$번째 열인 $\mathbf{x}^k$이다.

     

    학습 말뭉치의 단어 시퀀스를 $w_{1:T} = [w_1, \ldots, w_T]$라고 한다면,

    학습 과정에는 다음과 같은 negative log likelihood(NLL)을 최소화해야 하는 과정이 포함되고, 이는 대부분 시간에 따른backpropagation에 의해 수행된다.

     

    $\textit{NLL} = - \sum_{t = 1} ^ T \log \Pr(w_t | w_{1:t-1})$

     

     

    Character-level Convolutional Neural Network

     

    논문에서 제안된 모델에서, 시각 $t$에서의 입력값은 CharCNN(character-level CNN)의 출력값이다.

    이 장에서는 CharCNN에 대해서 설명한다.

     

    CNN은 컴퓨터 비전 분야에서 SOTA의 결과를 달성했고, 자연어 처리 분야의 여러 과제에 대해서도 효과적이라는 것이 보여졌다.

    자연어 처리 분야에서는 공간적(spatial) 컨볼루션보다는 시간적(temporal) 컨볼루션이 주로 적용된다.

     

    $\mathcal{C}$: character의 사전

    $d$: character를 임베딩할 차원

    $\mathbf{Q} \in \mathbb{R}^{d \times |\mathcal{C}|}$: character 임베딩 행렬

     

    길이가 $l$인 단어 $k \in \mathcal{V}$가 $[c-1, \ldots, c_l]$ 과 같은 character의 나열로 이루어졌다고 하자.

    $\mathbf{C}^k \in \mathbb{R}^{d \times l}$의 $j$번째 열이 $c_j$의 character 임베딩(\mathbf{Q}) 의 $c_j$ 번째 열)이라고 할 때,

    행렬 $\mathbf{C}^k$ 는 단어 $k$의 character 단위 임베딩이 된다.

     

    이제 $\mathcal{C}^k$와, 너비가 $w$인 필터(혹은 커널) $\mathbf{H} \in \mathbb{R}^{d \times w}$ 사이에 얇은 컨볼루션을 적용한다.

    그 결과에 bias를 더한 후 하이퍼볼릭 탄젠트 함수를 통해 비선형성을 적용하고, 최종적으로 feature map $\mathbf{f}^k \in \mathbb{R}^{l-w+1}$을 얻는다.

    구체적으로, $\mathbf{f}^k$의 $i$번째 원소는 다음과 같이 주어진다

     

    $\mathbf{f}^k[i] = \tanh(<\mathbf{C}^k[*, i:i+w-1], \mathbf{H}> + b)$

     

    $\mathbf{C}^k[*, i:i+w-1]$: $\mathbf{C}^k$ 의 $i$ 에서 $i+w-1$ 번째 열

    $<\mathbf{A}, \mathbf{B}> = \textit{Tr} (\mathbf{A}\mathbf{B}^T)$: Frobenius inner product

     

    마지막으로, 시간에 따른 최대값(max-over-time)을 구한다.

     

    $y^k = \max_{i} \mathbf{f}^k[i]$

     

    위 값은 필터 $\mathbf{H}$에 상응하는 feature이며, 주어진 필터의 가장 큰 값을 찾아낼 수 있다.

    기본적으로 필터는 character $n$-그램을 골라내는 역할을 하며, $n$-그램의 사이즈는 필터의 크기에 따라 결정된다.

     

    위에서 묘사한 과정을 통해 한 필터 행렬로부터 한 feature가 얻어지게 된다.

    CharCNN은 서로 다른 너비를 가진 여러 개의 필터를 사용해 단어 $k$에 대한 feature 벡터를 얻어낸다.

    $h$개의 필터 $\mathbf{H}_1, \ldots, \mathbf{H}_h$가 주어진다면, $k$의 입력 임베딩(input representation)은  $\mathbf{y}^k = [y_1^k, \ldots, y_h^k]$가 된다.

     

    많은 자연어 처리 응용 분야에서 $h$는 일반적으로 100에서 1000사이의 값으로 정해진다.

     

    Highway Network

    RNN-LM 에 위에서 구한 $\mathbf{y}^k$를 그대로 입력값으로 넣을 수 있고, 이런 간단한 모델의 성능도 나쁘지 않다.

    $\mathbf{y}^k$ 는 각 필터들에 의해 선택된 $n$-그램으로 이루어져 있으므로, $\mathbf{y}^k$에 MLP(Multi Layer Perceptron)을 적용해 그 사이의 상호작용을 모델링해보고자 할 수 있다.

    그러나 이러한 시도의 경우 오히려 성능이 나빠지는 결과가 있었다.

     

    대신 저자들은 $\mathbf{y}^k$ 를 highway network라고 하는 구조에 집어 넣는다.

    MLP의 한 레이어는 아래 식과 같이 affine 변환과 비선형성을 가해 새로운 변수를 얻는다.

     

    $\mathbf{z} = g(\mathbf{Wy} + \mathbf{b})$

     

     반면 highway network의 한 레이어는 다음과 같이 동작한다.

     

    $\mathbf{z} = \mathbf{t} \odot g(\mathbf{W}_H\mathbf{y} + \mathbf{b}_H) + (1-\mathbf{t})\odot \mathbf{y}$

     

    $g$: 비선형 함수

    $\mathbf{t} = \sigma(\mathbf{W}_T\mathbf{y} + \mathbf{b}_T)$: transform gate

    $(1-\mathbf{t})$: carry gate

     

    LSTM의 메모리 셀과 유사하게, highway layer는 입력값의 일부를 출력값으로 직접 carry함으로써 딥 네트워크를  adaptivelt하게 학습한다.

     

    설계상 $\mathbf{y}$ 와 $\mathbf{z}$의 차원을 일치해야 하므로 $\mathbf{W}_T, \mathbf{W}_H$는 정사각행렬이다.

     

    Experimental Setup

    다른 언어 모델링 평가에서 보편적으로 쓰이는 것과 같이, 본 논문에서도 perplexity(PPL)을 이용해 모델을 평가한다.순차적 단어 $[w_1, \ldots w_T]$가 주어졌을 때 모델의 perplexity는 다음과 같이 정의된다.

     

    $\textit{PPL} = \exp(\frac{\textit{NLL}}{\textit{T}})$

     

    $\textit{NLL} = - \sum_{t = 1} ^ T \log \Pr(w_t | w_{1:t-1})$NLL은 위와 같이 주어지므로, 이를 이용해 식을 전개하면 다음과 같다.

     

    $\textit{NLL} = \sqrt[T]{\frac{1}{\prod_{i=1}^T \Pr(w_t | w_{1:t-1})}}$

     

    저자들은 다양한 언어와 크기의 말뭉치에 대해 모델을 테스트했으며,하이퍼파라미터 구성과 모델 점검은 English Penn Treebank(PTB)을 이용해서 이루어졌다.

    학습, 검증, 테스트 세트는 일반적인 것을 사용했고, Mikolov 등이 2010년에 쓴 논문에서의 pre-processing을 그대로 사용했다.PTB를 이용해 최적의 하이퍼파라미터를 찾은 후 모델을 형태학적으로 복잡한 다른 여러 언어에 적용했다.

    (체코어, 독일어,  프랑스어, 스페인어, 러시아어, 아라비아어)

    아라비아어를 제외한 다른 언어에 대한 데이터셋은 2013 ACL Workshop on Machine Translation 에서 공개되어 있는 데이터를 사용했다.

    원천 데이터는 공개되어 있고, 저자들은 전처리가 완료된 버전을 사용했다.

    저자들은 언어당 1,000,000개 정도로 이루어진 작은 데이터셋(DATA-S)와, PTB보다 훨씬 큰 영어 데이터셋을 포함한 큰 데이터셋(DATA-L)에 대해 각각 실험을 진행했다.

    아라비아어 데이터는 뉴스 댓글 말뭉치에서 구했으며, 직접 전처리와 학습/검증/테스트 세트를 나누었다.

     

    이 데이터셋들에서 단 한 번 등장하는 단어들은 <unk>로 마스킹되었고, 이에 따라 전체 단어 사전을 효율적으로 쓸 수 있었다.

    제안된 모델은 OOV(Out of Vocabulary) 단어를 학습할 수 있지만, (캐릭터 단위 모델에 대한 불리함을 고려하고도) 이전 모델들과의 정확한 비교를 위해 전처리된 버전을 사용하였다. 

     

    Optimization

    모델은 시간에 따른 truncated backpropagation에 의해 학습되었다.

    저자들은 stochasitc gradient descent를 이용해 backpropagation을 35번 수행했는데,

    러닝 레이트는 초기에 1.0으로 설정되고 한 epoch에 검증 세트에서 perplexity가 1.0 보다 많이 줄어들지 않는다면 러닝 레이트를 반으로 줄였다.

     

    DATA-S에서는 배치 사이즈를 20으로 사용했고 DATA-L에서는 효율성을 위해 배치 사이즈를 100으로 사용했다.

    gradient는 각 배치마다 평균을 냈다.

     

    저자들은 아라비아어가 아닌 언어에서는 25 epoch, 아라비아어에서는 30 epoch로 학습해 검증 세트에서 가장 좋은 성능을 내는 모델을 골랐다.

     

    모델의 매개변수는 [-0.05, 0.05] 사이의 uniform distribution에서 임의로 선택되었다.

     

    정규화(regularization)을 위해서 LSTM input-to-hidden 레이어와 hidden-to-output softmax 레이어에 확률을 0.5로 가지는 dropout 기법을 사용했는데, LSTM레이어 전의 초기 Highway레이어에서는 dropout을 적용하지 않았다.

     

    또한 gradient의 크기를 5 이하로 제한했는데, 이는 모델 학습에 있어 중요한 역할을 했다.

    만약 gradient가 5보다 커진다면, 업데이트 전에 크기가 5가 되도록 재 정규화를 했다.

    이런 기법은 Zaremba 등의 LSTM을 이용한 단어 단위 언어 모델링 연구에서 큰 영향을 받았다.

     

    마지막으로, DATA-L에서의 학습 속도를 높이기 위해 계층적(hierarchial) softmax 기법을 사용했다. (이전 포스트 참고)

    이는 아주 큰 단어 사전을 가진 모델을 학습하기 위해 일반적인 softmax 함수 대신으로 자주 쓰이는 기법이다.

    먼저 클러스터의 개수 $\lceil \sqrt{|\mathcal{V}|} \rceil$를 정하고, $\mathcal{V}$를 임의로 서로 겹치지 않고 합치면 $\mathcal{V}$가 되는, 거의 같은 크기의 $c$ 개의 부분집합 $\mathcal{V}_1, \ldots, \mathcal{V}_c$로 나눈다.

    그러면, $\Pr(w_{t+1} =j | w_{1:t})$은 다음과 같이 주어진다.

     

    $\Pr(w_{t+1}=j|w_{1:t}) = \frac{\exp(\mathbf{h}_t \cdot \mathbf{s}^r + t^r)}{\sum_{r'=1}^c \exp(\mathbf{h}_t \cdot \mathbf{s}^{r'} + t^{r'})} \times \frac{\exp(\mathbf{h}_t \cdot \mathbf{p}_r^j + q_r^j)}{\sum_{j' \in \mathcal{V}_r} \exp(\mathbf{h}_t \cdot \mathbf{p}_r^{j'} + q_r^{j'})}$

     

    이 때 $r$ 은 $j \in \mathcal{V}_r$ 인 클러스터의 인덱스이다.

    첫 번째 항은 클러스터 $r$을 고르게 되는 확률이고, 두 번째 항은 클러스터 $r$이 주어졌을 때 단어 $j$를 고르게 되는 확률이다.

     

    DATA-S에 대한 학습에서는 계층적 소프트맥스는 필요하지 않다.

     

    Results

    English Penn Treebank

    저자들은 성능과 사이즈의 trade-off를 평가하기 위해 두 가지 버전의 모델을 학습시켰다.

    작은 모델(LSTM-Char-Small)과 큰 모델(LSTM-Char-Large)의 아키텍처는 테이블 2에 나와 있다.

     

     

    테이블 2

     

    다른 베이스라인으로써, 저자들은 워드 임베딩을 사용하는 두 개의 LSTM 모델 (LSTM-Word-Small: 200 hidden units, LSTM-Word-Large: 650 hidden units)을 훈련시킨다.

    워드 임베딩 사이즈 역시 각각 200과 650으로 다르다.

     

    테이블 3

     

    테이블 3에서 확인할 수 있듯이, 제시된 큰 모델은 지금까지 모델들의 60%수준의 매개변수 개수를 가지면서도 SOTA수준을 달성한다.

    제시된 작은 모델 역시 OOV 단어들이 <unk>로 마스킹되었다는 불리한 조건에도 비슷한 사이즈의 다른 NLM보다 좋은 성능을 가진다.

    앙상블 모델에서는 perplexity수준이 낮기 때문에,  제시 모델과 비교하기 힘들기 때문에 포함하지 않았다.

     

     

    Other Languages

    영어 PTB 데이터셋을 통해 다른 모델들과 성능을 비교할 수 있었다.

    그러나 영어는 상대적으로 단순한 형태적 특성을 가진 언어이기 때문에, 이 절에서는 조금 더 복잡한 형태적 특성을 가진 언어와 비교하도록 하겠다.

     

    저자들은 제시된 모델을 MLBL(morphological log-bilinear) 모델과 비교한다.

    MLBL 모델은 입력 레이어와 출력 레이어에서 합산된 형태소 임베딩을 통해 단어의 내부 구조를 반영한다.

    MLBL 모델에 대한 비교는 LSTM이 MLBL모델에서 사용된 feed-forward/log-bilinear의 성능을 한참 능가하기 때문에 혼란스러워진다.

    따라서 저자들은 형태학적 NLM의 LSTM버전을 만들어 학습한다.

    이 모델에서 LSTM의 인풋 레이어에는 단어에 포함된 형태소들이 임베딩된 벡터의 합이 들어간다.

    이 때, 형태소들은 비지도 형태소 태거를 통해 얻어진다.

    구체적으로 살펴보기 위해 다음을 정의하자.

     

     

    $\mathcal{M}$: 주어진 언어의 형태소 집합

    $\mathbf{B} \in \mathbb{R}^{n \times |\mathcal{M}|}$:  형태소 임베딩 행렬

    $\mathbf{j}$: $\mathbf{M}$의 $j$번째 열 ($j$번째 형태소가 임베딩된 벡터)

     

    $k$: 주어진 단어

    $\mathbf{x}^k$: $k$에 대한 단어 레벨의 임베딩

    $\mathcal{M} \subset \mathcal{M}$: 단어 $k$에 속한 형태소들의 집합

     

    단어 $k$에 대해서, LSTM의 입력값으로 들어가는 벡터는 다음과 같다.

     

    $\mathbf{x}^k + \sum_{j \in \mathcal{M}_k} \mathbf{m}^j$

     

     

     

    테이블 4

     

     

    테이블 4를 통해, DATA-S에서 character 기반 모델이 기존의 단어 기반 모델이나 형태소 기반 모델보다 더 작으면서 좋은 성능을 보인다는 것을 확인할 수 있다.

    여기에서, 형태소 기반 모델이 단어 기반 모델보다 더 많은 매개변수 개수를 갖는 이유는 형태소 기반 모델의 경우 단어 임베딩 역시 수행해야 하기 때문이다.

     

     

    테이블 5

     

    메모리 제약 때문에 저자들은 DATA-L에 대해서는 작은 모델만 학습시킬 수 있었다. 

    인상적인 발견은, 스페인어, 프랑스어, 영어에서 단어 단위 임베딩과 형태소 단위 임베딩 사이에 큰 성능차가 없었다는 것이다.

    캐릭터 모델은 큰 데이터 세트에 대해서도 단어 기반, 형태소 기반 모델보다 높은 성능을 보였다.

    또한, 제시된 모델은 단어 사전의 크기가 클 때도 영어에 대해 상당한 수준으로 perplexity를 감소시킬 수 있었다.

     

    마지막으로, 저자들은 모든 언어에 대해 같은 아키텍처를 사용하고, 언어별로 다른 hyperparameter 튜닝을 하지 않았다고 한다.

     

    Discussion

    Learned Word Representations

    PTB를 통해 학습된 모델의 단어 표현을 알아보자.

     

    테이블 6

     

    테이블 6에서 각각 단어 기반/character기반 모델에 대해 예시 단어와 유사하다고 판단된 단어들을 볼 수 있다.

     

    character 단위 모델의 경우 highway 레이어를 포함한 모델과 포함하지 않은 모델을 서로 비교한다.

    highway 레이어를 포함하기 전에는 단어의 임베딩이 단어의 표면적 형식에 전적으로 의존하는 것처럼 보인다.

    예컨대, you의 유사어는 your, young, four, youth인데, 이 단어들은 edit distance상에서 you와 유사하다.

     

    그러나 highway 레이어를 거친 후에는 단어의 철자에만 의존하기보다는 의미적인 특성을 반영하는 것처럼 보인다.

    예를 들어 you의 유사어는 we인데, 이는 you와 철자상으로는 전혀 다르다.

     

    다른 예시로는 while과 though가 있는데, 이 단어들은 edit distance상으로 서로 크게 떨어져 있지만,

    highway 레이어를 도입한 모델은 이 둘 사이의 유사도를 식별하는 것이 가능했다.

     

    모델은 his와 hhs를 비슷하다고 판단하는 듯 명백한 실수를 하기도 하지만, 이는 작은 크기의 데이터셋이 가지는 한계일 수 있다.

     

    computer-aided, misinformed와 같은 OOV 단어들은 같은 형태소를 가지는 단어들과 비슷하게 임베딩되는 것으로 보인다.

    제안된 모델은 또한, looooook와 같은 틀린/표준이 아닌 철자법을 가진 단어를 교정할 수 있어,

    노이즈가 많은 도메인에서의 텍스트 정규화에 활용될 수 있는 가능성이 있다.

     

    Learned Character N-gram Representations

    CharCNN의 각 필터는 특정한 character $n$-그램을 탐지하는 것을 학습한다.

    저자들의 처음 기대는 각 필터가 서로 다른 형태소에 민감하게 학습되고, 식별된 형태소들에 기초에 단어의 의미론적 표현을 구축하는 것이었다.

    그러나 각 필터에 대해 골라내어진 $n$-그램을 확인해본 결과, 해당 $n$그램들이 유효한 형태소에 대응하지 않는다는 것을 알게 되었다.

     

    그림2. red: 접두사(prefixes), blue: 접미사(suffixes), orange: 하이픈으로 연결된 단어 (hyphenated), grey: 기타

     

    character 조합 모델이 무엇을 학습하고 있는지에 대한 보다 확실한 직관을 얻기 위해, 

    학습 결과로 얻은 모든 character $n$-그램들에 대한 주성분 분석을 실행했다.

    (이 때, 최소한 두 번 이상 등장한 단어를 구성하는 $n$-그램으로 한정했다.)

     

    저자들은 각각의 character $n$-그램을 CharCNN의 입력값으로 주어, 그 결과값을 각 character $n$-그램에 대한 (고정된 차원의) 임베딩 벡터로 사용했다.

    그림 2에서 확인할 수 있듯이, 모델은 접두사, 접미사, 그 외의 차이를 구별하는 것을 학습한다.

    또한, 임베딩된 벡터들은 특히 하이픈(-)을 포함한 $n$-그램에 민감한데, 이 이유는 이것이 단어의 형태소를 분리하는 중요한 근거이기 때문일 것 같다.

     

    Highway Layers

    저자들은 ablation study를 통해 highway 네트워크 레이어의 효과를 정량적으로 검증한다.

     

     

    테이블 7

    테이블 7에서 확인할 수 있듯이, highway 레이어 없이 학습을 진행할 경우 성능이 상당히 저하된다.

    성능의 차이가 줄어든 모델의 크기에 영향을 받을 수 있으므로, 저자들은 $\mathbf{y}^k$ 를 입력값으로 받아 단일 레이어를 가지는 MLP를 거쳐 LSTM의 입력값으로 쓰는 모델을 추가적으로 학습한다.

    그 결과 MLP레이어를 거치는 모델의 성능은 좋지 않았다. (이는 최적화 문제일수도 있다.)

     

    저자들은 highway 네트워크가 개별 필터로 탐지된 국지적(local) 특징들을 적응적으로 잘 결합하기 때문에  CNN과 함께 쓰기에 특히 적합하다는 가정을 세운다.

     

    또한 저자들이 실험으로부터 관찰한 사항들은 다음과 같다.

    1. 한 개 혹은 두 개의 highway 레이어를 모델에 적용하는 것은 중요하지만, 그보다 많은 highway 레이어를 추가해도 성능은 비슷하다 (그러나 이것은 데이터셋의 사이즈에 의존적일 수 있다.)
    2. max-pooling 전에 더 많은 컨벌루션 레이어를 추가하는 것은 성능 향상에 도움이 되지 않았다.
    3. 단어 단위로 임베딩을 사용했을 경우 highway 레이어는 성능을 향상시키지 않았다.

     

    Effect of Corpus/Vocab Sizes

    이 절은 학습 말뭉치/단어 사전의 크기가 서로 다른 모델의 상대적 성능에 끼치는 영향에 대해서 설명한다.

    저자들은 DATA-L의 독일어 데이터를 사용해 학습 말뭉치/단어 사전의 크기를 다양하게 해 가며,

    작은 단어 단위 모델과 작은 캐릭터 단위 모델의 perplexity의 차이를 측정한다.

     

    테이블 8

     

    단어 사전의 크기를 다양하게 하기 위해 가장 자주 등장하는 $k$개 단어를 제외한 나머지를 <unk>로 마스킹한다.

    이전의 실험에서와 마찬가지로 character 단위 모델은 <unk>의 표면적 형태를 활용하지 않으며, 이것을 하나의 다른 토큰으로 대한다.

     

    테이블 8에 의하면 단어 사전의 크기가 커질수록 perplexity의 줄어드는 정도가 덜 두드러진다.

    하지만 모든 경우에서 character 단위 모델은 단어 단위 모델보다 좋은 성능을 보인다.

     

     

     

     

    댓글

:D