본문 바로가기

딥러닝 논문 리뷰/Text Style Transfer

[논문리뷰] Delete, Retrieve, Generate: A Simple Approach to Sentiment and Style Tran

 


Abstract

  • 텍스트 스타일 변환은 문장의 특정 속성(e.g., 감정)을 바꾸는 동시에 속성과 무관한 내용은 유지하는 작업
  • 저자는 이전 연구에서 사용된 적대적 학습이 고품질 결과 생성에 어려움이 있음을 지적
  • 텍스트 속성이 종종 독특한 구절로 표시된다는 관찰에 기반하여 더 간단한 방법 제안
  • 효과적인 방법으로 원래 문장의 속성과 관련된 구절 삭제 → 목표 속성 관련 구절 검색 → RNN으로 결합 → 생성
  • 실험 결과, 이 방법은 세 가지의 데이터셋(yelp, amazon, image caption)에서 문법적이고 적절한 응답 생성

 


method

 

0. Problem Statement

  • $D = \{(x_1, v_1), ..., (x_m, v_m)\}$: a corpus of labeled sentences
  • $x_i$:  a sentence
  • $v_i \in V$: the set of possible attributes(e.g., for sentiment, $V=\{\text{"positive"}, \text{"negative}\}$)
  • $D_v = \{x:(x, v) \in D \}$: the set of sentences in the corpus with attribute $v$
  • $a(x, v^{src})$: a set of attribute markers
  • $c(x, v^{src})$: a sequence of content words
  • 모델이 학습하고자 하는 목표는 input으로 $(x, v^{tgt})$을 받으면 output으로 content인 $x$와 $v^{tgt}를 가지는 $$y$ 출력

1. Delete

  • 목표: 입력 문장에서 스타일을 나타내는 단어 또는 구문(attribute markers)을 식별 → 삭제 → content만 남김
  • extracting attribute markers
    • 각 attribute 값(positive, negative)을 가진 문장에서 특정 n-gram이 나타나는 빈도(salience) 계산
    • 특정 임계값보다 높은 salience를 가진 n-gram을 해당 attribute의 makers로 사용
    • 다른 스타일을 가진 문장 집합에서 나타날 횟수 대비 현재 스타일에서 나타나는 횟수로 계산
    • $\lambda$는 n-gram이 나타나지 않는 경우를 고려한 smoothing parameter(논문에서는 1로 사용)
  • delete: 입력 문장에서 추출한 attribute marker를 삭제 → 남은 단어들은 보존되어야 하는 내용, content로 간주

2. Retrieve

  • 목표: 목표 스타일을 가지면서 스타일이 삭제된 콘텐츠와 유사한 콘텐츠를 가진 문장을 corpus에서 검색
  • 방법
    • 유사도 측정: 1단계에서 얻은 content와 목표 스타일의 content 간 유사도 측정(tf-idf 기반 단어 중복 or 유클리드 거리)
    • 검색: 가장 유사한 문장을 목표 스타일 문장으로 선택
    • $x^{tgt} = argmin_{x' \in D_{v^{tgt}}} d(c(x, v^{src}), c(x', v^{tgt}))$
      • $d$: distancem metric comparing two sequences of words

3. Generate

  • 학습 목표: 자연스러운 목표 스타일 문장 생성
  • 목표: content, 목표 스타일 그리고 검색된 목표 스타일의 content를 활용하여 자연스럽고 문법적으로 올바른 목표 스타일 문장 생성
  • 방법(4가지)
    • RETRIEVEONLY
      • 검색된 문장을 그대로 출력 → 문법과 목표 스타일은 일치하지만 content 유사성 저하
    • TEMPLATEBASED
      • 원본 문장에서 삭제된 attribute marker를 검색된 문장의 attribute marker로 대체
      • 단순 대치이므로 문법적으로 올바르지 않을 가능성 존재
    • DELETEONLY
      • content를 RNN으로 임베딩하고, 목표 스타일의 임베딩과 연결하여 RNN decoder로 문장 생성
    • DELETEANDRETRIEVE
      • 목표 스타일 대신 검색된 문장의 attribute marker를 사용
      • 문맥에 맞는 attribute를 사용하고 문법적인 오류를 줄일 수 있음
      • DELETEONLY에서는 delete 이후 content를 목표 스타일(e.g., "negative")과 임베딩을 연결했다면,
      • 여기서는 동일하게 RNN을 이용하지만 검색된 문장의 attribute marker(e.g., "barely used")를 이용

Training

  • DELETEONLY: auto-encoder 방식으로 스타일을 제거한 content와 스타일이 주어지면 원본 문장을 다시 생성하도록 학습
  • DELETEANDRETRIEVE
    • denosing auto-encoder 방법
    • 학습하는 동안 각 attribute marker를 무작위로 변경하여 noise를 적용
    • 동일한  attribute marker와 word-level edit distance 1의 다른 무작위로 선택된 attribute marker로 replace → $a'(x, v^{src})$ 생성
    • 이를 통해 모델이 다양한 입력에 유연하게 대응하도록 함

Experiments

 

1. Datasets

 
 

2. Results

  • Human Evaluation
  • Automatic Evaluation
  • 두 평가지표의 결과를 비교하였을 때, Amazon 데이터셋에서 정성 평가와 classifier간의 관련성이 없음을 확인
  • 자동적으로 평가하기 때문에 BLEU의 경우에도 문법적인 오류가 많이 발생하는 TEMPLATEBASED가 더 높게 나옴