NL-155, Less is More: Learning to Refine Dialogue History for Personalized Dialogue Generation, NAACL 2022
0 Abstract
- 개인화 된 대화 시스템은 최근 몇 년 동안 많은 관심을 불러일으킨 사용자의 성격과 일치하는 응답을 생성하는 문제를 탐구합니다.
- 기존의 개인화된 대화 시스템은 개인화된 응답 생성을 안내하기 위해 대화 기록에서 사용자 프로필을 추출하려고 했습니다.
- 대화 내역은 일반적으로 길고 시끄럽기 때문에 대부분의 기존 방법은 사용자의 성격을 모델링하기 위해 대화 내역을 자릅니다.
- 이러한 방법은 일부 개인화된 응답을 생성할 수 있지만 대화 기록의 많은 부분이 낭비되어 개인화된 응답 생성의 성능이 최적화되지 않습니다.
- 이 작업에서 우리는 더 많은 대화 내역을 처리하고 더 풍부하고 정확한 페르소나 정보를 얻을 수 있는 기반으로 사용자 대화 내역을 대규모로 개선할 것을 제안합니다.
- 구체적으로, 우리는 3개의 개인 정보 정제기와 개인화된 응답 생성기로 구성된 MSP 모델을 설계합니다.
- 이러한 다단계 정제를 통해 대화 기록에서 가장 가치 있는 정보(토큰)를 드물게 추출하고 다른 유사한 사용자의 데이터를 활용하여 개인화를 향상할 수 있습니다.
- 두 개의 실제 데이터 세트에 대한 실험 결과는 보다 유익하고 개인화된 응답을 생성하는 데 있어 우리 모델의 우수성을 보여줍니다.
1 Introduction
- 최근 몇 년 동안 개인화된 대화 시스템을 구축하는 데 큰 진전이 있었습니다.
- 일반적으로 이전 작업은 두 가지 경로를 통해 개인화된 대화 시스템을 구축하는 방법을 탐구합니다.
- (1) 미리 정의된 페르소나 설명 또는 사용자 속성에서 사용자 성격을 직접 모델링합니다(Qian et al., 2018; Zhang et al., 2018; Song et al., 2019). 그리고
- (2) 사용자의 대화 기록에서 사용자 성격을 암시적으로 모델링합니다(Li et al., 2016c; Ma et al., 2021).
- 후자는 대화 이력을 얻기 쉽고 풍부한 개인 정보를 포함하기 때문에 우수하다고 간주됩니다.
- 이 백서에서는 개인화된 응답 생성을 지원하기 위해 사용자의 대화 기록에서 암시적 사용자 프로필을 자동으로 학습하는 두 번째 경로를 따릅니다.
- 대화 기록에서 직접 사용자 성격을 모델링하는 것은 어렵습니다.
- 주된 이유는 사용자의 대화 기록이 모델에 로드하기에는 너무 무거우며 잡음이 있을 수 있는 방대한 기록 대화를 포함할 수 있기 때문입니다.
- 간단한 해결책은 기존 작업에서 수행한 대로 대화 기록을 자르는 것입니다(Ma et al., 2021; Qian et al., 2021a).
- 그러나 엄청난 정보가 낭비되면서 모델의 성능도 영향을 받습니다.
- 반면에 다른 사용자의 대화 기록도 현재 사용자에 대한 개인화된 응답을 생성하는 데 도움이 될 수 있음을 관찰했습니다.
- 예를 들어, "축구"에 대해 동일한 관심을 가진 사용자가 그러한 주제에 대해 유사한 것에 대해 이야기할 수 있습니다.
- 이것은 기존 방법에서 간과되었습니다.
- 직관적으로 'data explosion' 문제는 후자의 경우(다른 유사 사용자의 대화 이력도 고려할 때) 훨씬 더 심각합니다.
- 이러한 문제를 완화하기 위해 계층적 리파이너 구조를 사용하여 현재 및 다른 유사한 사용자의 대화 기록에서 가장 가치 있는 쿼리 인식 페르소나 정보를 드물게 추출할 것을 제안합니다.
- 이를 통해 사용자의 성격을 학습하고 응답 생성을 개선하기 위해 더 많은 대화 기록을 활용할 수 있습니다.
- 우리의 모델은 개인화된 응답을 생성하기 위해 대화 기록에서 Modeling and Selecting user Personality을 나타내는 MSP라고 합니다.
- 모든 대화 기록에 주의를 기울이는 대신 MSP는 사용자의 성격을 잘 묘사하고 응답 생성을 안내할 수 있는 가장 가치 있는 기록 정보를 정제합니다.
- 구체적으로, MSP는 서로 다른 수준에서 일하는 3개의 personal information refiners와 personalized response generator로 구성됩니다.
- 처음에 사용자 구체화는 현재 사용자와 비슷한 관심사를 가진 사용자 그룹을 선택하도록 설계되었습니다.
- 사용자 수준에서 대화 내역을 정제함으로써 유사한 데이터를 획득하여 유사한 사용자와 정보를 공유하고 다른 사용자와의 상호 간섭을 피할 수 있습니다.
- 그런 다음, 주제 구체화는 문장 수준에서 현재 쿼리와 다른 주제를 가진 현재 및 유사한 사용자의 대화 기록을 필터링합니다.
- 다음으로 토큰 수준의 나머지 대화 기록에서 가장 가치 있는 쿼리 인식 사용자 프로필을 추출하는 토큰 정제기를 설계합니다.
- 마지막으로 개인화된 응답 생성기는 사용자 프로필과 현재 쿼리를 결합하여 응답을 생성합니다.
- 정제자가 예시적인 사용자 프로필을 추출하도록 안내하는 명시적인 감독 신호가 없다는 점을 감안할 때 우리는 보충 문장 매칭 작업과 공동 훈련 방법을 설계합니다.
- 생성기는 리파이너의 추출을 안내하기 위해 의사 레이블을 구성합니다.
- 우리의 기여는 세 가지입니다.
- (1) 데이터 노이즈 문제를 해결하기 위해 MSP 모델을 설계합니다.
- 대화 내역을 통해 사용자 프로필을 효율적으로 수정하고 개인화된 응답을 생성할 수 있습니다.
- 이를 통해 우리의 방법은 시끄러운 데이터를 피하면서 풍부한 사용자 프로필을 캡처할 수 있습니다.
- (2) 세 가지 수준에서 쿼리 인식 프로파일을 추출하기 위한 리파이너 구조를 설계합니다.
- 유사한 사용자의 정보가 고려되어 응답의 개성을 향상시킬 수 있습니다.
- (3) 우리는 정유사와 발전기를 위한 공동 훈련 방법을 설계합니다.
- refiner는 응답 생성을 지원하기 위해 생성기에 사용자 프로필을 제공하고 생성기는 사용자 프로필 선택을 지원하기 위해 리파이너에 대한 의사 레이블을 구성합니다.
2 Related Work
3 Methodology
- 이 섹션에서는 먼저 문제를 공식화하고 제안된 MSP 모델에 대한 개요를 제공합니다.
- 그런 다음 각 구성 요소의 세부 정보와 모델 최적화에 대해 설명합니다.
3.1 Problem Statement and Overview
- 사용자 집합 U = {u1, · · · , ul}을 고려하면 모든 사용자 ui에 대해 다른 사용자와의 대화 기록이 있습니다.
- U i = {(q i 1 , ri 1 ), · · · ,(q i t , ri t )},
- 여기서 q i j 는 다른 사람이 발행한 쿼리이고 ri j 는 ui 에서 제공한 해당 응답입니다.
- 우리의 목표는 사용자 ui가 새로운 쿼리 q에 응답할 수 있도록 개인화된 응답 ri를 생성하는 것입니다.
- 앞서 소개한 바와 같이 사용자 ui의 대화 이력 Ui와 유사한 사용자 uj의 다른 대화 이력 Uj로부터 개인화된 정보를 얻을 수 있다(j != i).
- MSP 모델의 개요는 그림 1에 나와 있습니다.
- MSP는 서로 다른 수준에서 작업하는 3개의 개인 정보 정제기와 개인화된 응답 생성기로 구성됩니다.
- 특히 첫 번째 리파이너는 사용자 수준에서 작동합니다.
- 1) MSP는 현재 사용자 ui의 대화 이력을 다른 사용자와 비교하여 ui와 유사한 관심사를 가진 사용자 그룹을 선택할 수 있습니다.
- 2) 유사한 사용자 그룹을 얻은 후 현재 쿼리의 주제와의 관련성에 따라 대화 기록을 더욱 세분화합니다.
- 3) 또한 관련 발화에서 가장 세분화된 개인 정보를 추출할 수 있도록 여러 토큰을 추출하는 마지막 정제기를 추가합니다.
- 4) 마지막으로 쿼리와 추출된 토큰이 생성기에 입력되고 개인화된 응답을 구성합니다.
3.2 User Refiner
- 비슷한 관심사를 가진 사용자들의 대화 이력은 많은 개인 정보를 공유할 수 있습니다.
- 전에, 읽었던 논문중 coarse-mrs 랑 비슷한 접근 느낌
- 따라서 우리의 첫 번째 목표는 현재 사용자와 비슷한 관심사를 가진 사용자 그룹을 선택하는 것입니다.
- 이를 달성하기 위해 사용자 정제기를 설계합니다.
- 사용자의 관심은 일반적으로 다른 사람과의 대화에 포함되므로 대화 기록의 쿼리와 응답을 모두 고려하여 유사한 사용자를 선택합니다.
- 특히, 사용자 ui의 대화 내역 U i 에 대해 사전 훈련된 BERT(Devlin et al., 2019)를 적용하고 [CLS] 토큰으로 이를 나타냅니다.
- 현재 유저의 대화내역 = Ui
- Ui는 대화기록의 query와 response으로 이뤄져있는데 이를 각각 BERT CLS embedding의 합을 추출
- 여기서 q1,q2,...는 대화 내역에서 query들을 말하는 듯
- r1,r2,..는 그에 해당하는 response들을 말하는 듯
- Then, we can select ku users that have similar interest with the current user ui as:
- 위에서 뽑은 Uq, Ur을 concat한 것이 Ui embedding이 된다.
- 즉 다른 유저의 대화내역 Uj도 비슷하게 추출하여 이의 유사도를 계산해서 usim을 계산
- 여기서 TopK(·, ·)는 top-k 선택 연산입니다.
- 사용자 구체화 후 유사한 사용자 {uj} ku j=1의 대화 기록을 얻을 수 있습니다.
- 데이터 세트에서 사용자 수가 많기 때문에 전체 프로세스가 Faiss(Johnson et al., 2021) 매우 효율적입니다.
3.3 Topic Refiner
- 사용자의 대화 기록에는 종종 다른 사람과의 대화가 많이 포함됩니다.
- 이러한 대화에는 현재 쿼리와 관련이 없을 수 있는 다양한 주제가 있습니다.
- 즉 대화 내역이 비슷한 유저의 대화라도, 현재 쿼리와 관련이 없는 부분이 있을 가능성이 높다.
- 따라서 우리는 개인화된 응답 생성을 위해 관련 대화 기록을 선택하기 위한 topic refiner를 제안합니다.
- 특히, 토픽 분류기를 사용하여 현재 쿼리 q의 토픽 분포와 히스토리 대화 상자의 쿼리 q i j를 계산합니다.
- 여기서 t, tij ∈ R dt×1 , dt는 토픽의 수입니다.
- 그런 다음 현재 쿼리, 즉 max(tij) != max(t)와 다른 주제를 가진 대화 기록 < q^i_j , r^i_j >을 필터링합니다.
- 즉 query에 해당하는 topic logit이 t이고 다른 쿼리들에 해당하는 topic logit은 tij인 듯?
- 이 둘의 max값을 비교해서 다르면, 그에 해당하는 <q, r>을 필터링한다.
- max 값이란 것은 아마 classifier을 통과한 마지막 logit의 argmax의 개념인 듯함
- 주제 구체화 과정에서 히스토리 대화의 쿼리를 현재 쿼리와 비교하여 주제와 관련 없는 대화를 필터링합니다.
- 이 프로세스는 노이즈를 더욱 줄이고 모델을 더 가볍게 만들 수 있습니다.
- 현재 사용자의 대화 기록과 유사한 사용자(이전 단계에서 얻은)의 대화 기록이 모두 정제됩니다.
- 다음 단계에서는 이러한 선택된 기록 대화의 응답을 사용하고 개인화된 응답 생성을 위해 가장 가치 있는 토큰을 추출합니다.
3.4 Token Refiner
- 앞의 두 가지 정제 후에 historical response 모음을 얻습니다.
- 생성 프로세스에 직접 추가할 수 있지만 예비 실험에서는 성능이 좋지 않은 것으로 나타났습니다.
- 주된 이유는 응답의 노이즈 품질입니다.
- 실제로 기존 연구(Xing et al., 2017; Zhu et al., 2020)는 응답 생성을 개선하기 위해 정보 토큰을 사용하는 효과를 보여주었습니다.
- 이러한 연구에서 영감을 받아 역사적 응답에서 가장 세분화된 정보(토큰)를 추출하기 위해 토큰 정제기를 추가로 고안합니다.
- 특히, 쿼리 q와 historical responses r^sim 및 r^cur(각각 유사한 사용자와 현재 사용자의 것) 사이의 어텐션 맵 A를 다음과 같이 계산합니다.
- where TRMenc(·) is a transformer encoder.
- 즉 유사한 query와 response들이 3.3에서 남을텐데, 이 중 response들만 남긴다.
- 이를 historical responses r^sim이라보고, 현재 resopnse을 r^cur이라 표기한다.
- 어쨋든 이러한 r과 query q을 TRM을 통과시키고, WQ, WK 매트릭스로 Q, K 임베딩을 구한다.
- r 은 r^sim 또는 r^cur 를 나타내며, 이에 따라 A 는 유사 사용자 매칭 맵 A^sim과 현재 사용자 매칭 맵 A^cur 를 나타냅니다.
- WQ,WK ∈ R d×d는 매개변수이고 d는 은닉 상태의 차원입니다.
- 어텐션 매칭 맵 A를 획득한 후, 각 토큰의 어텐션 가중치에 따라 유사한 사용자의 프로필과 현재 사용자의 프로필을 형성하기 위해 토큰을 선택합니다.
- where kp is a hyper-parameter to control the number of profile tokens.
- Its influence will be investigated in our experiments.
3.5 Generator
- 우리는 유사한 사용자의 프로필 c sim, 현재 사용자의 프로필 c cur 및 쿼리 정보 q를 입력으로 사용하여 개인화된 응답을 생성하기 위해 변환기 디코더를 사용합니다.
- 디코딩 프로세스는 다음과 같이 정의할 수 있습니다.
- where [;] is the concatenation operation and yˆ is the word generation probability.
3.6 Training and Optimization
- The generator is optimized by maximizing the generation probability of the ground-truth y:
- 실제로 token refiner 는 훈련하기 어렵다는 것을 알게 되었습니다.
- 우리는 그 이유가 직접적인 감독 신호가 누락되었기 때문이라고 추측합니다.
- 이 경우 훈련 오류가 생성 과정에서 비롯된 것인지 정제 과정에서 비롯된 것인지 구분하기 어렵습니다.
- 이 문제를 해결하기 위해 토큰 선택을 지원하는 보충 문장 매칭 작업을 제안합니다.
- 우리는 그 이유가 직접적인 감독 신호가 누락되었기 때문이라고 추측합니다.
- 이 경우 훈련 오류가 생성 과정에서 비롯된 것인지 정제 과정에서 비롯된 것인지 구분하기 어렵습니다.
- 이 문제를 해결하기 위해 토큰 선택을 지원하는 보충 문장 매칭 작업을 제안합니다.
- Supplementary Sentence Matching Task
- 이 작업의 핵심 아이디어는 가치 있는 토큰을 자동으로 채굴할 수 있도록 감독 신호를 도입하여 토큰 정제기를 직접 훈련시키는 것입니다.
- 특히, 우리는 쿼리를 대화 기록과 일치시키는 문장 일치 작업을 설계합니다.
- 과제의 목표는 개인화된 응답을 생성하는 데 도움이 되는 역사 문장을 찾는 것입니다.
- 쿼리 기록 교차 주의 가중치 A를 사용하여 일치하는 표현을 생성한 다음 이 표현을 사용하여 작업을 완료하는 것을 고려합니다.
- 이러한 방식으로 일치 작업이 잘 완료되면 주의 맵 A를 사용하여 개인화된 응답을 생성하는 데 도움이 되는 역사 문장의 가장 유익하고 가치 있는 부분을 식별할 수 있습니다.
- 우리의 아이디어를 달성하기 위해 매칭 프로세스를 설계합니다.
- 먼저 교차 주의 맵 A에 의해 일치하는 표현 H를 계산한 다음 최대 풀링 연산을 사용하여 CNN을 적용하여 토큰 정보를 집계합니다.
- Next, we flatten S and applies a LSTM to aggregate the sentence information:
- Finally, we use the sentence matching vector h to compute the matching score:
- 문장 일치 작업을 안내하기 위해 각 역사 문장의 일치도를 측정하기 위해 의사 레이블 g를 설계합니다.
- 개인 프로필 정보가 많은 기록이 더 높은 점수를 얻을 수 있을 것으로 기대합니다.
- 따라서 우리는 개인화된 실측 y와 개인화되지 않은 생성 응답 yˆ′의 차이를 사용하여 페르소나 프로필을 측정하고 의사 레이블을 생성합니다.
- where dy is the length of y, and α is a threshold. Finally, we minimize the binary cross entropy loss between g and gˆ:
- Joint Training
- 위의 gradient approximation 접근법으로 학습을 용이하게 하기 위해 우리는 정련기와 생성기를 차례로 훈련하는 공동 훈련 과정을 설계합니다.
- 특히, 각 훈련 반복에서 먼저 데이터 세트 D에서 쿼리 q, 응답 y, 유사 및 현재 사용자의 대화 기록 r sim 및 r cur의 배치를 샘플링합니다.
- 그런 다음 개인화되지 않은 응답 yˆ '를 생성하고 개인화되지 않은 생성기를 통해 의사 레이블 g(식 18)를 생성합니다.
- 이 의사 레이블은 손실 L s (Eq. 20)를 최적화하여 토큰 정제기를 훈련하는 데 사용됩니다.
- 또한 D에서 다른 배치 Dp를 샘플링합니다.
- 유사한 사용자 프로필 c sim 및 현재 사용자 프로필 c cur(Eq. 8, Eq. 9)를 추출한 후 개인화된 응답 yˆ를 생성하고 손실 Lg( 식 12).
- 훈련 프로세스 시작 시 잘못된 프로필로 인해 생성을 오도하는 것을 방지하기 위해 생성기에 대한 프로필을 추출하기 전에 Nf 단계에 대해 리파이너를 사전 훈련합니다. 자세한 훈련 과정은 알고리즘 1에 요약되어 있습니다.
4 Experiments
Reference
댓글
댓글 쓰기