본문 바로가기
AI · 인공지능/AI 칼럼

알리바바, 고객 서비스 만족도를 대화 로그로 예측

by 두우우부 2020. 1. 7.
반응형

3 개의 요점

✔️ 고객 서비스에 대한 만족도를 대화 로그를 토대로 분석

✔️ 고객 서비스에 특화된 신경망 모델을 제안

✔️ 종래의 감정분석 모델에 비해 높은 성능으로 고객의 만족도를 예측 가능

Using Customer Service Dialogues for Satisfaction Analysis with Context -Assisted Multiple Instance Learning
Kaisong Song, Lidong Bing, Wei Gao, Jun Lin, Lujun Zhao, Jiancheng Wang, Changlong Sun, Xiaozhong Liu, Qiong Zhang (EMNLP 2019)

Alibaba Group Context-Assisted Multiple Instance Learning.pdf
0.70MB

BtoC 비즈니스 (Business to Consumer의 약어로 기업이 일반 소비자를 대상으로 하는 비즈니스 형태)에서 고객이 기업과 접촉하는 수단의 하나로 고객 서비스 센터가 있습니다. 고객 서비스는 고객과 기업이 직접 접촉하기 때문에 여기서의 대응이 곧 기업 이미지에 직결됩니다. 따라서 고객 서비스를 이용한 고객들이 만족하고 있는지를 분석하고 서비스 개선으로 이어 나가는 것이 중요합니다. 당연히 인력만으로는 그 모든 대화 로그를 분석하기 어렵기 때문에 자연언어처리 기술 분석을 자동화해야 합니다. 여기서는 2019년 자연언어처리의 최고 콘퍼런스인 EMNLP2019에서 알리바바 그룹이 발표한 고객 서비스 만족도 분석에 관한 논문을 소개합니다.

 

또한 본 연구에서 사용된 고객 서비스 데이터셋은 아래에 등록되어 있습니다(단어 ID만 배포되며 실제 대화는 복원할 수 없도록 되어 있습니다).

 

songkaisong/ssa

service satisfactory analysis. Contribute to songkaisong/ssa development by creating an account on GitHub.

github.com

 

고객 서비스의 만족도

위 그림은 본 연구에서 상정하고 있는 고객 서비스를 보여줍니다. 이번에 상정하고 있는 고객 서비스는 1명의 고객 (Customer)과 1명의 담당자 (Server)에 의한 여러 차례의 발화 (Utterance)가 이루어집니다. 실제 서비스와 마찬가지로 각 화자가 몇 번이고 연속해서 대화하는 상황도 고려되고 있습니다.

 

고객 서비스의 각 발화는 긍정적 (Positive) · 중립 (Neutral) · 부정적 (Negative)의 세 가지 감정이 바탕으로 되어 있다고 가정하고 그림에서는 각각 빨강, 오렌지, 파랑 말풍선으로 회화의 감정을 나타냅니다. 그림에서 알 수 있듯이 해당 담당자의 발화는 지속적으로 중립적인 반면, 고객의 발화는 대화를 통해 다양하게 변화합니다. 위의 예에서는 대화가 진행되면서 부정적으로 변해갑니다. 결과적으로 이 서비스 전반에 걸쳐 고객 만족도(Satisfaction Rating)는 별 1개로 되어 있으며, 대체로 불만족스러웠다고 평가되었습니다.

 

본 연구에서는 이러한 고객 서비스의 대화 로그를 입력하고 대화가 끝난 시점에서 가장 알맞은 고객 만족도를 출력하는 태스크로 문제를 정의하고 있습니다. 또한, 그림에서는 만족도가 별 다섯 개로 평가되고 있지만, 실험에서 별 1 ~ 2가 불만, 3이 보통, 4 ~ 5를 만족으로 간주하여 셋으로 분류하여 문제를 다룹니다.

 

고객 서비스에 특화된 만족도 판정 모델

만족도 예측의 핵심은 담당자의 발화

고객 서비스 대화 로그에서 고객 만족도를 예측할 때 간단한 방법으로는 고객의 발화를 바탕으로 감정 분석을 할 것으로 생각됩니다. 위에서 언급한 대화의 예는 후반부터 고객의 발화가 모두 부정적 감정에 의한 것이기 때문에, 서비스에 대한 만족도도 낮은 것으로 생각할 수 있습니다. 또는 고객의 발화에 부정적 감정이 많은 경우 서비스에 대한 만족도가 낮은 것으로 분류하는 것도 생각할 수 있습니다. 그러나 이러한 고객에 의한 발화만을 의지한 기술은 고객의 부정적인 감정이 서비스 담당자에 기인한 것인지를 판단할 수 없습니다.

 

예를 들어 구입한 상품의 불만 접수를 했는데, 환불받을 수 있는 것을 알게 된 고객이 대응에 만족한 사례를 생각해 봅시다. 고객의 발화 중 거의 절반을 상품에 대한 불만을 진술할 경우 위에서 언급한 방법으로는 대화의 대부분이 부정적인 발화가 되어 고객 서비스에 불만을 품은 것으로 판정되어 버립니다.

 

따라서 본 연구에서는 고객 서비스 담당자의 발화에 더 유용한 정보가 들어 있다고 생각하고, 이를 활용할 수 있는 모델을 제안하고 있습니다. 본 논문에서 제안된 방법은 담당자의 발화에서 다음의 두 가지 단서를 고려하도록 설계되어 있습니다.

 

고객의 감정과 관련된 단서 (Sentiment Clue)는 고객의 감정의 변화를 일으키는 담당자의 발화입니다. 담당자의 발화는 기본적으로 중립적이지만, 그 발화를 바탕으로 고객의 감정은 다양하게 변화합니다. 예를 들어 위의 대화의 예라면 u6의 발화에서 담당자가 '품질에 문제가 없다면, 배송비 환불은 해줄 수 없다'라고 발화한 것이 u7에서의 고객의 부정적 발언을 일으킨 원인이라 생각됩니다.

고객의 발언을 보충하기 위한 단서 (Reasoning Clue)는 고객과 담당자의 대화의 흐름을 잡는 데 사용됩니다. 담당자의 회화가 고객의 어떤 발화에 대응하고 있는지를 고려하여 더 정확하게 대화 내용을 파악하는 것을 목적으로 하고 있습니다. 예를 들어 위의 대화 예제에서는 u6의 발화는 이전 u5에서 고객이 '어떻게 배송비를 환불받는가?'라는 질문에 대응하고 있습니다. 이 예제만으로는 느낌이 잘 안 오지만, 다양한 문의가 쏟아질 때 담당자가 답변해 나가는 상황이라면, 이 단서(Reasoning Clue)를 고려하여 담당자의 어떤 발화가 어떤 질문에 대응하고 있는지를 분석하면 성능에 좋은 영향을 미칠 것으로 생각됩니다.

 

고객과 담당자의 발화에 따른 분류 모델

위 그림은 본 논문에서 제안된 모델의 개요를 보여줍니다. Input Representation Layer에서 대화 로그를 인코딩합니다. 고객 담당자 각각의 발화를 LSTM 벡터로 인코딩하여 화자마다 벡터를 나누어 둡니다. 그림에서는 인코딩 된 벡터가 각각 Server Utterances와 Customer Utterances에 배분되고 있음을 확인할 수 있습니다.

 

인코딩 된 고객의 발화는 그림 오른쪽의 만족도 분류기로 전송됩니다. Sentiment Classification Layer에서 인코딩 된 고객의 발화를 사용하여 감정 분석을 수행합니다. 이 레이어에서는 고객의 회화가 긍정적 · 부정적 · 중립 중 어떤 감정에 의해 발생했는지 예측합니다. 상술한 바와 같이, 제안된 방법은 담당자의 회화가 고객의 만족도를 분석하는 데 있어서 중요하다고 생각하고 있습니다. 그래서 고객별 발화 담당자의 어떤 발화가 영향을 미치고 있는지를 그림 왼쪽의 레이어에서 계산하고 그 요소를 포함시키도록 설계되어야 합니다.(그림에서는 ⊕에서 담당자 측의 발화 정보가 유입되고 있는 것에 주목하십시오)

 

예측된 감정 분석 결과와, 인코딩 된 고객의 발화를 기반으로 하여 Satisfaction Classification Layer는 전체 대화에서 고객 만족도가 만족 · 불만 · 보통 중 어떤 것인가를 예측합니다. 만족도를 예측하는 데 중요한 고객의 발화에 주목하기 위해 감정분석의 예측 결과를 이용한 주의 기구를 도입하고 있습니다.

 

제안된 방법은 최종 고객의 만족도만을 지도 신호로 학습을 실시합니다. 즉, 감정 분석에 대한 지도 신호는 이용하지 않고 각 발화의 감정을 자동으로 예측하는 모델입니다. 대화 로그의 각 발화 감정에 대한 라벨을 부여할 필요가 없기 때문에 데이터를 만들 때 도 어노테이션의 수고를 줄일 수 있어 좋은 모델이 되고 있습니다.

 

기존 기술보다 정밀하게 만족도를 분류 가능

제안된 방법은 인터넷 쇼핑 사이트에서 수집된 실제 고객 서비스 대화 로그를 사용하여 평가되고 있습니다. 아래 표는 의류 분야 고객 서비스의 만족도 분류 성능을 보여줍니다. 표 상단은 단문의 감정 분석을 위해 제안된 기존 방법이고, 하단은 대화의 감정 분석을 위해 제안된 방법입니다. 본 논문에서 제안된 방법은 CAMIL로 표기되어 있으며, 기존 방법에 비해 높은 성능으로 만족도를 예측하고 있는 것을 알 수 있습니다. 표에서는 각 만족도 라벨마다 WS : 만족, MT : 보통, US : 불만으로 모델 성능을 나타내는 F1 값이 계산되어 있어, 기존 기술에 비해 특히 만족 라벨에서 성능이 크게 향상되고 있는 것을 알 수 있습니다.

 

제안된 방법은 담당자의 발화에 Sentiment Clue와 Reasoning Clue라는 두 가지 단서가 있다고 가정하고 있습니다. 표를 보시면 CAMIL_s는 감정 단서만 이용한 방법, CAMIL_r는 고객 발언 단서만 이용한 방법, CAMIL_full는 둘 다 이용한 방법입니다. 결과에 의하면 감정 단서가 상대적으로 중요하다는 것을 알 수 있습니다. 특히 두 단서를 동시에 사용함으로써 성능을 크게 향상할 수 있음을 보여줍니다.

 

 

아래 그림은 어느 고객 서비스의 상호 작용에 대해 제안된 방법(빨간색)과 기존 기술(파란색)로 예측한 고객의 감정 라벨과 대화 전체의 만족도를 보여줍니다. 기존의 방식이 전체 대화의 만족도를 충분하다고 예측하고 있는 반면, 제안된 방법은 정확히 불만이라고 예측하고 있는 것도 확인할 수 있습니다.

 

정리

이 문서에서는 고객 서비스 대화 로그로 고객 만족도를 예측하는 실질적인 방법에 대해 소개했습니다. 고객 서비스 만족도 분석은 클레임 대응 등의 서비스 향상 등에 있어서 매우 중요한 작업이며, 앞으로의 연구 동향도 주목하고 싶은 분야입니다.

 

본 연구는 알리바바 그룹에서 발표되었으며 (명기되어 있지 않지만) 실험에 사용된 데이터는 아마 알리바바 그룹의 서비스에서 생성된 것으로 생각됩니다. 이러한 원시 데이터를 다루는 연구는 데이터를 소유한 기업이기에 가능한 연구라 할 수 있습니다. 이번 연구에 사용된 데이터는 Github상에 공개되어 있기 때문에 실제로 직접 모델을 만들어 실험해 볼 수 있습니다. 물론 개인정보 보호를 위해 모든 단어는 ID화 되고 있어 실제 대화를 읽을 수는 없습니다. 하지만 이렇게 중요한 데이터 세트를 공개한 것은 그것만으로도 높은 평가를 주고 싶습니다. 앞으로도 본 데이터 세트를 이용한 새로운 기술발전이 기대됩니다.

 

songkaisong/ssa

service satisfactory analysis. Contribute to songkaisong/ssa development by creating an account on GitHub.

github.com

반응형