[EMNLP 2024] Detecting Ambiguous Utterances in an Intelligent Assistant

안녕하세요. 최근에 모호한 명령어를 정확하게 수행하는 Task 관련하여 흥미가 생겨 해당 논문 분야로 새롭게 읽어봤습니다. EMNLP 논문으로, 모호한 발화를 잘 탐지하기 위해서 데이터셋 구축 및 방법론을 추가로 제시하였습니다. 그럼 리뷰 시작하겠습니다..!

1. Introduction

최근 몇 년간, Siri와 같이 Intelligent Assistants는 다양한 곳에서 많이 사용되며 많은 인기를 끌고 있습니다. Intelligent Assistants는 다양한 기능을 가지고 있어 일상 생활에 많이 사용되비만, 사용자간의 상호작용 속에서 발생하는 문제 중에 하나는 바로 사용자의 발화의 모소함입니다. 즉, 사용자가 말한 말이 정확히 어떤 의도를 담고 있는지 파악하기 어렵다는 점입니다.

예를 들어, 사용자가 “I’m hungry”라고 말할 때, 단순한 대화일 수도 있고, 음식점을 찾기 위한 요청일 수도 있습니다. 이러한 모호한 발화는 intelligent assistants가 사용자 의도를 정확하게 파악하는데 하나의 큰 challenge가 되는데, 발화를 잘 못 이해하여 명령을 잘 수행하지 못하게 될 수도 있기 때문입니다.

Figure 1을 예로 들어보겠습니다. 사용자가 “My stomach upset today”라고 말하는 상황에서, 사용자는 대화(chat)을 하기 위한 의도로 해당 발화를 하였는데, Intelligent assistant의 경우, task intent로 의해하여 바로 병원을 찾겠다 라는 멘트를 발화합니다. 발화에서 사용자의 의도가 정확하게 들어내지 않아 모호함으로 인해 잘못 명령을 수행한 것입니다. 하지만 모호함을 detection하여 이를 반영하면 사용자의 의도에 맞게 “Did you eat too much yesterday? Need a hospital?”이라고 발화하는 것을 확인할 수 있습니다.

이 때문에, 모호한 발화를 효과적으로 감지하고 분류하는 과정이 필요로 하게 됩니다. 본 논문에서는 위의 문제를 해결하기 위해서 intelligent assistants에서 모호한 의사를 탐지하고 이를 효과적으로 처리하는 방법을 제시합니다. 먼저, 실제 intelligent assistants의 diaglogue log를 분석하고, 다양한 발화에 대한 데이터를 수집하여 이를 라벨링합니다. 이를 통해 사전 학습된 classification model을 통해 각 발화가 어떤 의도를 가지고 있는지 판단합니다.

2. Detecting Ambiguous Utterances in Intelligent Assistants

2.1 Intelligent Assistant

본 논문에서 사용한 Intelligent Assistant는 Apple의 Siri, Amazon의 Alexa를 예로 들 수 있습니다. 플랫폼 마다, 시스템 마다 차이가 있겠지만, 이러한 Siri, Alexa와 같은 시스템은 일반적으로 웹 기반의 정보 검색(예를 들어, 날씨 예보)와 터미널 작업(예를 들어 전화 걸기 혹은 애플리케이션 열기)과 같은 multi-domain task-oriented dialogue system의 전형적인 기능을 갖추고 있습니다. 여기에 더해서 인간과 같이 채팅을 포함한 open-domain non-task-oriented dialogue system의 기능도 가지고 있습니다. 이 때문에 전통적인 대화 시스템보다 더 넓은 범위의 요구 사항에 대응하는 것이 필수적이죠. 저자는 일본의 intelligent assistant인 Yahoo! Voice Assist를 이용하여 dialogue log를 수집하였습니다.

2.2 Task Settings

기존에는 일반적으로 발화가 속하는 도메인이나 의도가 도메인 내에 있는지를 분류하는 식으로 설정하였는데, intelligent assistants는 multi-domain oriented하며 open-domain non-task-oriented dialogue system의 하이브리드 형태이기 때문에 두 가지 발화를 모두 처리하는 할 필요가 있습니다. 또한 일반적인 대화 시스템은 상세하게 도메인이나 의도를 분류하는데, 시간이 지남에 따라 도메인은 확장되기 때문에 학습 데이터를 구성하고 이를 업데이트 하는 식으로 구성하는 것은 cost가 많이 들게 됩니다.

이러한 점을 고려하여 사용자의 발화가 intelligent assistant에서 ‘task’(task-oriented intent)인지, ‘chat’(non-task-oriented intent)인지 결정하는 task를 설정하였습니다. 또한 여기에 발화의 의도가 불확실하거나 결정하기 어렵다는 것을 나타내기 위해서 ‘ambiguos’ 라벨을 추가하였습니다. 이를 통해 problem setting을 단순화하고 주어진 발화가 ‘ambiguos’로 감지되면 명확한 질문을 할 수 있게 됩니다. 예를 들어서, “My neck hurts”의 경우, ‘ambiguos’로 감지하면 시스템은 “You must be in a lot of pain. Can I help you find a hospital?”와 같이 대답할 수 있게 됩니다.

위의 내용을 정리해서, 본 논문에서는 모호한 발화를 다음과 같이 정의합니다.

  • 모호한 발화: 의도를 유일하게 결정할 수 없는 발화

모호한 발화에는 두 가지 유형이 있습니다. 특정 task 의도가 어떤 것인지 분명하지 않은 경우(예를 들어, 지도 검색 혹은 웹 검색에서의 “University of Tokyo”)와 task 의도와 chat 의도 간의 구분이 명확하지 않은 경우(예를 들어, “I have a headache”라는 문장에 대해서 근처 병원을 검색할지 혹은 대화를 위한 자기 표현인지 구분하기 어려움)가 있습니다. 본 논문에서는 이러한 경우를 모두 ambiguos로 라벨링 하였습니다.

3. Dataset

본 논문에서는 사용자 발화의 모호성을 명확하게 구분하기 위해 데이터셋 구축을 수행하였습니다. 먼저, Yahoo! Voice Assist라는 대화 기반 intelligent assistant의 수집된 log를 이용하여 구축하였습니다. 수집된 데이터는 사용자의 발화($$u_0$$), 이전 시스템의 응답($$r_{-1}, r_{-2}$$), 이전 사용자의 발화($$u_{-1}, u_{-2}$$)로 구성되어 있습니다. 현재 발화 외에 이전 발화도 가져감으로써 대화의 흐름 또한 파악하여 분류할 수 있도록 하였습니다.

Table 1을 보면 해당 발화가 어떻게 labeling 되는지 파악할 수 있습니다. Chat, Task, Ambigous로 라벨링되며, Chat의 경우 사용자와 시스템이 대화하는 것을 의미하고, Task의 경우 해당 발화를 통해 어떠한 행위를 수행하는 발화를 의미합니다. Ambigous의 경우, Chat이나 Task와 달리 명확하게 구분되지 않는 발화를 말하는데, “I’m sleepy”와 같은 발화를 의미합니다.

Table 2를 통해 구축한 데이터셋의 통계를 확인할 수 있습니다. ambigous가 chat이나 task에 비해서 발화 수가 높은 것을 통해 기존에 많은 intelligent assistant 사용자들이 모호하게 발화하는 경우가 많다는 것을 간접적으로 알 수 있습니다. 또한, lectters나 tokens 수를 통해서 각 labele된 발화의 글자 수를 비교할 수 있는데, Chat이나 Task의 글자 수나 단어 수를 보면 7 혹은 4로 Ambigous의 5 혹은 2와 비교하면 확연히 많은 것을 알 수 있습니다. 즉, 짧은 발화일 수록 모호할 가능성이 높다는 것을 말해주는 것이기도 합니다.

Table 3을 통해서 데이터셋 구성이 어떻게 되는지 확인할 수 있습니다. 각 발화에 따른 특성 및 오류를 볼 수 있습니다. 예를 들어서 Speech Recognition을 보면 사용자가 “Today’s Toko’s”와 같이 단답성으로 발화를 하는데, 이러한 경우 문맥의나 의미를 제대로 파악하지 못해 사용자의 의도에 맞게 행동하기 어렵습니다. 또는 Noun의 “Meeting space”과 같은 발화는 길 찾기 또는 정보 검색을 지칭할 수 있기 때문에 모호함을 가집니다.

4. Detection Method

본 논문에서는 BERT를 base classifier $BERT(\cdot)$로 사용합니다. 이를 기반으로 fine-tuning을 진행하여 multi-class classification을 수행하는데요. 그런데 intelligent assistant의 발화가 종종 짧고, 잡음이 많아 정확하게 분류하는 것이 어렵습니다.

이를 완화하고자 이전 연구에서는 language 모델을 이용하여 task intent에 해당하는 search query log와 chat intent에 해당하는 X log로 학습된 발화를 계산합니다. 본 논문에서도 마찬가지로 이와 유사하게 language 모델에서 파생된 feature들을 BERT 모델에 입력합니다.

Figue 2를 통해서 방법론의 개요를 확인하실 수 있습니다. 해당 방법론은 먼저 search query log와 X log를 사용하여 두 개의 BERT 모델을 사전학습 합니다. 이러한 모델로부터 비지도 학습 모델인 SimCES를 사용하여 문장 임베딩 모델 $SimCSE_{query}$와 $SimCES_{post}$를 구축합니다.

detection 단계에서, self-attention mechanism을 $SimCSE(u_0){query}, SimCSE(u_0){post}, BERT((u_0,r_{-1},u_{-2},r_{-2},u_{-2}))$에 다음과 같이 적용합니다.

위에 방법에 대해서 설명하자면, 먼저 각각 $e$가 BERT 임베딩과 문장 임베딩을 나타내는 경우에 대해서 $x_{ij}$와 $e_i,e_j$간의 유사성을 얻습니다. 그런 다음 feed-forward network로 구성된 additive attention을 사용하여 alignment 점수를 계산합니다. 그런 다음 softmax 함수를 상용하여 importance weight $\alpha_{ij}$를 계산합니다. 결과적으로 얻은 $\bar{e_i}$는 concat하여 output $o$로 사용됩니다.

5. Experiments

논문의 실험 파트 입니다. 해당 논문에서 아쉬운 부분이 실험 파트라고 생각되는데, 단 두개의 table에서만 실험을 수행하였고, 따로 ablation study와 같이 좀 더 제안된 방법론을 어필하기 위한 실험이 따로 없어 아쉽다고 생각됩니다.

먼저, Table 5를 통해 제안된 방법론과 다른 방법론 간의 성능 차이를 볼 수 있습니다. 여기서 All ambigous란 것이 조금 생소하실텐데, 모든 선택지에 대해서 ambigous라고 응답한 것을 의미합니다. 제안된 방법론의 경우 다른 방법론들과는 월등하게 성능이 높게 나오는 것을 알 수 있는데, 조금 신기하게 봤던 부분은 GPT-4o에 비해서 BERT의 성능이 높게 나왔다는 점입니다.

Table 6을 통해 각 label에 대해서 F1-score를 측정한 것을 볼 수 있습니다. 클래스가 불균형한 경우 모델이 다수의 클래스를 잘 분류하는 것만으로도 acc가 높게 나올 수 있기 때문에 클래스 샘플이 다양하다면 꼭 확인해봐야하는 것이 바로 F1-score입니다. 제안된 방법론의 경우, 다른 방법론에 비해서 가장 높은 score를 달성한 것을 통해 소수 클래스도 잘 분류할 수 있다는 것을 확인할 수 있습니다.

Author: 김 주연

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다