1. intro
- slot filling은 sequential labeling task로 취급됨.
- sequence tagging에 사용할 수 있는 조건부 무작위장(CRF) 등과 함께, RNN 및 CNN 구조를 사용하여 context를 고려하는 word representation을 학습한다.
- word level slot filling 과 utterance level intent detection은 동시에 수행되어 협력적인 효과를 낼 수 있다.
- 어떤 단어가 slot "artist"로 분류되었다면 intent는 "AddtoPlayList"등이 "GetWeather"와 같은 경우 보다 더 그럴듯 할 것이다.
- RNN의 마지막 hidden state, CNN output의 attention-weighted sum 등을 통해 intent를 예측하는 모델이 여럿 제시되었음.
- 그러나 이러한 모델은 단어와 slot, intent 간의 계층적인 정보를 직접적으로 활용하지는 않았다.
- 문장 길이가 늘어나면 모든 문맥 정보를 하나의 vector로 표현하기 어려움.
- 본 논문에서는 그러한 계층적인 정보를 활용하기 위해, capsule network를 도입하였다.
- "Sungmin"이라는 단어가 "artist"라는 slot으로 연결되고, 유사한 slot들("playlist", "playlist_owner")이 함께 "AddtoPlayList" intent를 예측하도록 한다.
- Capsnet에서 사용하는 dynamic routing-by-agreement 방식은 저단계 캡슐의 가장 큰 weight를 가장 그럴듯한 고단계 캡슐로 연결(할당)한다.
- 반대로, intent 추론을 통해 slot filling을 결정, 개선할 수 있다.
- 이를 위해 rerouting schema를 제안하였음.
- 단어 캡슐과 slot 캡슐간의 dynamic routing에 intent 캡슐이 관여할 수 있도록 하였다.
2. 네트워크 구조
1) 3가지의 계층적인 캡슐로 구성됨.
(1) Wordcaps
- 문맥을 고려한 단어 표현(word representation)을 학습
- Bert, ELMo같은 pretrained model을 사용할 수도 있음
(2) Slotcaps
- dynamic routing을 통해 각 단어를 slot type에 따라 적절히 분류하고, 그 slot에 해당하는 단어들의 representation을 기반으로 slot representation을 학습한다.
- routing-by-agreement 방식은 word representation이 slot representation과 큰 상호 연관성이 있을 경우에 저단계(Wordcaps)의 feature를 고단계(Slotcaps)의 capsule로 보내준다.
- Wordcaps의 word representation을 기반으로, 예측 벡터 p_(k|t)를 생성한다. FC network를 사용하며 activation function은 tanh등을 사용할 수 있다.
- agreement value: 한 단어가 어떤 slot에 연결될 가능성을 알려주는 값. dynamic routing-by-agreement 알고리즘을 통해 결정된다. 한 단어가 다른 slot에 연결될 때 마다 다르다.
- slot representation은 unsupervised 학습이 진행된다.
(3) Intentcaps
- 발화 문맥 및 slot representation을 적절히 고려하여 발화 혹은 문장의 intent를 분류한다.
- 먼저 slot representation을 FC network에 통과시켜 예측 벡터 q_(l|k)를 생성한다.
- Slotcaps에서 p_(k|t)를 생성한 것과 같은 방법
- 똑같이 dynamic routing-by-agreement 알고리즘을 적용한다. 이를 통해 intent의 representation을 구한다.
- intent 예측 시 최대 norm을 갖는 경우를 찾는다.
2) Re-Routing
-
3. 실험 setting
1) dataset: SNIPS와 ATIS 사용
2020/11/22 최초 작성