Character Embedding Layer (CNN) + Word Embedding Layer (GloVe) + Highway Networks
-> Contextual Embedding Layer (LSTM)
-> Attention Flow Layer
-> Modeling Layer (bi-LSTM)
-> Output Layer
참고: 는 의 -th column이라는 notation
: plain feed forward network (: affine transformation)
: Highway Networks
는 각각 -th, -th column을 의미하며,
는 element-wise multiplication을, 는 각각 -dimensional vector이므로 는 -dimensional trainable weight vector임
위 식에서 는 -th context word에 해당하는 column, 는 세 vector는 합치는(fuses) trainable vector function임
는 여러 방법으로 구현(e.g. multiple dense layer)할 수 있지만, 가장 좋은 방법은 simple concatenation이었음()
단순하게, query(question)을 bi-GRU 통과시켜 나온 representation을 각 단어의 representation과 dot product 한 것! 이후 softmax 이용해 정답일 확률이 가장 높은 단어를 뽑아낸다!
Attention-over-Attention model Cui et al. (2016):
MemNN(multihop)
Weston et al., 2015, Hill et al., 2016 등등 많이 사용되었던 모델
SQuAD (Rajpurkar et al., 2016)와 해당 데이터에 모델을 적용한 결과를 서술
when, where, who 같은 단어는 word embedding만 거치면 해당 단어가 무엇을 지칭하는지 모델이 잘 파악하지 못하지만, contextual embedding을 지나면 극적으로 달라짐(각 row의 위가 word embedding만 거쳤을 때, 아래는 contextual embedding까지 거쳤을 때)
t-SNE으로 나타냈을 때에도, word embedding만 거치면 'May'가 다른 월들을 지칭하는 단어들과 동떨어져 있는데, contextual embedding을 거치면 May의 사용법이 구별됨
attention matrices를 시각화한 결과, query에 매칭되는 context의 단어들을 확인할 수 있었음
CNN dataset, Daily Mail dataset을 이용해 cloze-style test를 진행하였음