본문 바로가기
NLP

[TDS] 논문 Coorperative Memory Network for Personalized Task-oriented Dialogue Systems with Incomplete User Profiles 요약

by 방구석 몽상가 2021. 8. 14.
Coorperative Memory Network for Personalized Task-oriented Dialogue Systems with Incomplete User Profiles

이 글은 Personalized TDSs (Task-Oriented Dialogue Systems)에 대한 논문 중 하나인 WWW 2021에 게재된 논문 Coorperative Memory Network for Personalized Task-oriented Dialogue Systems with Incomplete User Profiles에 대한 요약이다.

Task 정의

Personalized Task-oriented Dialogue Systems (TDS)

Dialogue models은 rank-based models과 generation-based models로 나눌 수 있다. 이 논문에서 목표로 하는 rank-based models은 랜덤한 후보에서 최고의 응답을 고르는 response selection에 집중한다.

주로 unstructured persona information을 이용하는 Personalized Open-ended Dialogue systems (ODS)과 달리, TDS는 structured user profiles를 이용한다.

수식을 이용한 task의 정의는 다음과 같다.


번째 대화 턴에서 a dialogue context 가 주어지면,

후보 responses 로부터 적절한 response를 선택하는 것이 목표

: turn 에서 Dialogue history, : turn 에서 System response

: 개의 속성 값 pairs 로 구성된 user profile

: 번째 속성, : 의 후보 값


다음 예시를 한 번 봐보자.

오른쪽 대화에서 user profile은 {(Gender, Male), (Age, Young), (Dietary, Non-vegetarian), (Favorite food, Fish and Chips)}로 표기된다. 은 dialogue history 이고 historical utterances 로부터 집약된 a sequence of words로 표시된다. 마지막으로, 는 현재 user utterance이면서 user의 현재 request로 표현된다.

Motivations

이전 작업들은 대부분 혹은 모든 유저들의 완전한 유저 프로필을 이용가능하다고 가정한다. 이러한 가정은 다음 이유 때문에 비현실적이다.

1) 사생활 걱정 때문에 모든 사람들이 흔쾌히 프로필을 노출하지는 않는다.

2) 풍부한 유저 프로필은 수많은 속성을 포함할 수도 있다. (e.g., gender, age, tastes, ...)

따라서 이 논문에서는 user profile이 완전하다는 가정 없이 Personalized TDS를 수행한다.

CoMemNN (Cooperative Memory Network)

대화 과정으로 user profiles을 풍부하게 하는 동시에 풍부해진 profiles을 기반으로 response selection을 향상시키는 신규 매커니즘

=> 각 dialogue turn에서 유용한 정보를 이용함으로써 user profiles이 점차 향상되고, Dialogue Response Selection (DRS)의 성능은 풍부해진 프로필을 기반으로 향상된다.

  • 직관 : Profiles과 dialogues가 상호작용하며 서로 향상시킨다.
  • 가정 : 비슷한 유저들끼리 비슷한 preferences을 가질 것이다! => 이를 user profile에 반영

1) User Profile Enrichment (UPE)

기능 : 현재 대화뿐만 아니라 이웃 users로부터 collaborative 정보를 활용함으로써 불완전한 user profiles을 풍부하게 한다.

UPE는 유저의 현재 request를 나타내는 query representation 를 학습한다. 현재 time 의 user utterance 로 초기화된 는 UPE에 의해 dialogue와 user profile에서의 personal information를 통합함으로써 업데이트 된다. UPE는 다음 세 가지 모듈로 user profiles과 dialogues 간 interaction을 캡쳐한다. 이 글에선 각 모듈에 대해 최대한 수식을 제외하고 요약한다.

Memory Initialization (MI), Memory Updating (MU), Memory Reading (MR)

Memory Initialization (MI)

MI는 user-profile 관계를 모델링하는 profile memory와 user-dialogue 관계를 모델링하는 dialogue memory를 초기화한다.

먼저, profile memory는 현재 user 프로필과 이웃 user들의 profile을 사용하여 초기화된다. 각 user profile의 번째 속성은 one-hot vector로 표현되고 user profile은 그 속성 vector의 concatenation으로 표현된다. 그리고 one-hot 표현된 각 user profile은 linear transformation function에 의해 임베딩 차원 의 벡터로 project된다. 여기서 이웃 users는 dot product similarity를 기반으로 찾는다.

Dialogue memory는 현재 user의 대화와 이웃 user의 대화의 representation으로 초기화된다. 대화 representation은 업데이트된 query와 dialogue history를 내적한 벡터를 dialogue history에 다시 한 번 곱하여 addressing하여 계산된다. 여기서 query와 dialogue history의 utterances는 V 차원의 bag으로 mapping 후 embedding matrix를 곱하여 표현된다.

Memory Updating (MU)

Dialogue memory는 새롭게 업데이트된 query 를 사용하여 기존 dialogue memory 를 업데이트한다. 말보단 다음 수식으로 보는 것이 이해가 편할 것이다.

Profile memory는 다른 users의 profiles을 참고하여 각 user의 profile을 업데이트한다.

Dialogue memory와 달리 새로운 memory로 바로 업데이트되는 것이 아니라 profile memory를 이용하여 업데이트된다. 여기서 은 MLP로 구현된 mapping function이다.

Memory Reading (MR)

Memory의 첫 번째 slot이 현재 user에 대응하기 때문에, dialogue memory와 profile memory의 첫 번째 slot 과 query를 더 해서 query를 업데이트한다. 위 이미지를 참고하면 이해하기 편하다.

2) Dialogue Response Selection (DRS)

UPE에서 업데이트된 query를 가지고 후보 responses 중 최적의 응답을 선택한다.

이때, 이전 작업을 따라 후보 응답를 가지고 KB (Knowledge Base) entries에 대한 user bias 를 모델링한다. 는 KB entry의 번째 후보 response 가 KB entry의 번째 속성을 언급하지 않으면 0이다. 그렇지 않은 경우는 의 값을 가지게 되는데 여기서 은 현재 user profile의 one-hot 벡터고, 는 user profiles을 KB entry로 mapping 시킨다. 나는 후보 응답들 중 현재 user profile에 있는 속성을 많이 언급한 후보 응답이 많은 bias를 가지도록 하는 것이라 이해했다. 이를 자세히 이해하기 위해서 Learning Personalized End-to-End Goal-Oriented Dialog 논문을 읽어보는게 좋을 것 같다.

실험

Personalized bAbI dialogue benchmark 데이터셋에 실험

Response selection accuracy는 SoTA보다 3.06% 향상되었고, user profile의 속성 값을 랜덤하게 버려서 user profile이 불완전할 때 robustness함을 검증한다.

댓글