Paper: Wizard of Wikipedia: Knowledge-Powered Conversational Agents
Wizard of Wikipedia: Knowledge-Powered Conversational Agents, Dinan, Emily, et al., ICLR 2019
1. Contributions
2. Problems of existing works
- 기존 Dialogue tasks의 한계: knowledge 사용에 대한 연구가 없었음
- 그 중, goal-directed dialogue의 한계: 데이터베이스에 접근하거나 API 형태의 knowledge에 근거함
3. Solution
- Unstructured dialogue dataset에서, open-domain setting으로, knowledge를 포함한 multi-turn dialogue를 수행하는 모델을 제안함
4. Data Collection
5. Methodology — Modules
- 그림에서 보는 것처럼, 논문에서 제시한 모듈은 크게 세 가지로 구성되어 있음.
(1) Knowledge Retrieval
- Response와 관련된 knowledge를 탐색하는 것이 목적
- 현재 step의 utterance와 last two turns의 utterance를 query로 해서 retrieval
- 위 세 가지를 하나의 쿼리로 합쳤을 때 더 좋은 성능이 나왔음.
- Top 7 articles를 retrieved
- 검색된 article을 하나의 문장으로 flatten시키고, title을 붙임
(2) Knowledge Attention
- Retrieved knowledge와 dialogue context간 attention을 수행
- Memory에 있는 각 문장(knowledge sentences)와 dialogue context를 각각 transformer encoder로 인코딩
- 그 다음, memory candidate와 dialogue context사이 dot-product attention 수행
(3) Utterance Prediction
- Knowledge attention에서 생성된 hidden states를 입력받아, 다음 utterance를 생성하는 것이 목적
- 모델의 retrieval version과 generative version을 고려해서 knowledge attention과 utterance prediction 부분이 변형될 수 있음
6. Methodology — Models
- Type 1. Retrieval Transformer Memory Network
(1) Knowledge sentence와 dialogue context를 Transformer encoder로 각각 인코딩
(2) 최종 input encoding은 knowledge sentences에 dot-product attention을 적용한 결과, 여기서 나온 벡터의 weighted sum한 것과 dialogue context encoding을 더한 것
(3) 그리고 response candidates를 Transformer encoder로 인코딩
(4) 최종 response는 위의 두 임베딩의 cosine similairty를 구하고 argmax한 것
(5) loss는 cross-entropy loss를 사용 - Type 2. Generative Transformer Memory Network
(1) Knowledge selection과 utterance prediction을 나누느냐, end-to-end로 하느냐에 따라 다시 two type으로 나눔(end-to-end ver., two-stage ver.)
(2) End-to-end ver.에서는 candidate encoding에 Universal Sentence Encoder(Cer et al., 2018)에서 제시한 normalization을 이용
(3) Two-stage ver.에서는 knowledge selection이 generator에 큰 영향을 주기 때문에 knowledge selection의 퍼포먼스를 최대화하고자 stage를 나눔
(4) 이 때, knowledge dropout으로 이 부분을 해결했음 (novelty technique)
7. Experiments and Results
7.1 Knowledge selection task
- Best performing Transformer 모델을 two-stage generative Memory Network에 사용함
7.2 Full task: Dialogue with knowledge
- Human annotator가 선택한 gold knowledge sentence를 주거나, 어떤 knowledge를 선택해야하는지 맞추게 하거나, 두 옵션으로 retrieval and generative model을 평가함
- 결과적으로 retrieval model이 가장 좋은 성능을 보였음
7.2.1 Retrieval Experiments
- Knowledge selection experiments와 비슷하게 baseline을 설정
- Recall@1: 100개의 knowledge 중에서 gold response는 한 개 (나머지 99는 randomly chosen)
- unigram F1 사용: gold response의 기준
- 결과: knowledge를 포함한, Transformer MemNet (raddit+SQuAD pretrained)가 가장 좋은 성능을 보임
7.2.2 Generative Experiments
- E2E model과 Two-stage 모델 비교
- PPL과 F1으로 측정
- 결과: Predicted Knowledge 옵션에서는 Two-stage Transformer MemNet (with K.D)가 좋은 성능을 보였고, Gold Knowledge가 주어진 경우, E2E Transformer MemNet(with axiliary loss)가 좋은 성능을 보임
- 위 결과는 two-stage model이 knowledge selection module의 영향을 많이 받는 다는 것을 의미함
- 그리고, E2E model에서 추가적인 knowledge selection supervision (auxiliary los)가 성능에 좋은 영향을 미친 것을 확인
7.3 Human Evaluation
- Crowd-sourced works로 human evaluation 수행
- 인간-모델간 3–5번의 대화 턴으로 특정 주제에 대해 대화
- 대화를 마친 후, 1–5 점수로 평가
- 그 다음, wiki F1이라는 스코어로 평가함
(모델이 얼마나 많은 wiki 지식을 보여주는 지 평가한 것)
(모델이 선택한 주제에 대한 위키백과 페이지의 처음 10문장과 겹쳐서 f1 계산) - Generative model의 경우, knowledge 사용 여부에 따라 성능 차이가 있음
Seen과 unseen에서 retrieval model과 generative model 차이가 나는데, 이것은 retrieval 특성상, 안 본 문장들이 retrieval 결과로 나타나지 않기 때문