본 논문은 2022년 5월에 ACL에 실린 논문으로, textcnn의 저자인 Yoon Kim님이 2저자인 논문입니다.
pretrained transofrmers based langauge generation models의 fine-tuning은 모델이 스스로 연관있는 input의 일부를 attend하는 방식으로 학습
하지만, 모델의 어디에 집중할지를 직접적으로 컨트롤하는 방법은 존재 X
그래서 본 논문에서는 유저가 모델이 집중해야하는 부분을 선택해 highlights해 모델이 관련된 output을 만들어내는 control mechanism을 개발하는 것을 목표로 함
이를 위해, 학습가능한 "focus vector"(모델의 임베딩에 직접 적용할 수 O)를 가진 사전 학습 모델을 제안
모델을 테스트하기 위해 2가지 생성 태스크를 사용 : 대화 응답 생성 & 생성 요약
실험 결과, trained focus vectors는 유져가 선택한 highlight에 관련한 결과를 생성하도록 모델을 유도하는데 효과적이었음
attention module은 단어 단위의 임베딩에 대해 가중 평균을 통해 정보를 통합해 모델에서 중요한 역할을 한다.
어텐션 메카니즘은 2가지 중요한 목적이 있다
하지만 어텐션 메타니즘은 어느 부분에 집중할지 스스로 학습하기 때문에, 유저가 중요하다고 생각하지 않는 부분에 모델이 집중할 경우 이를 고쳐줄 방법이 없음
==> 그래서 유저가 픽한 input span과 관련된 결과를 생성하도록 모델을 조종해보자!가 목표
하지만 문제는 대부분의 유명한 NLG 데이터셋은 end-to-end방식으로 수집된다. 즉, 입력값의 어느 부분이 reference target과 가장 관련됐는지 표기되어 있지 않음. + 제안된 방법도 기존의 사전학습된 트랜스포머 모델이랑 양립할 수 있어야 최고.
본 논문에선, 위의 문제를 다루는 focus vector framework를 제안.
우리의 contribution은 다음과 같다
saliency map으로도 알려져 있는 Attribution methods는 모델의 예측을 입력 특징에 귀속시킨다.
대부분의 saliency method는 원래 이미지 분류를 위해 설계되었는데, input feature의 각 차원에 대해 importance score를 할당하는데 사용되었다.
언어 데이터에 적용하기 위해 약간의 수정(ex. dot-product with the word embeddings)을 거친다.
target y와 model 에서 sentence (denoting the set of token indexes in the sentence)가 주어질 때, attribution score를 계산해 여러 유명한 attribution method를 구현하고 비교한다.
attributin methods는 black-box model를 해석하는데 사용된다 - 모델의 focus를 컨트롤하기 위해 추가로 사용할 수 있는 label를 유도하는 것은 본 논문이 처음임!
실험에서 LOO가 human annoation dataset에서 가장 좋은 상관관계를 가지고 있다는 것을 알아냄
그래서 automatic highlight annoations을 하기 위해 LOO를 사용
모델의 focus를 제어하기 위해, focus vector인 d차원의 벡터 를 사용
모델에 indicator로 작동하고, input의 어느 부분에 집중해야하는지를 보여줌
학습 데이터셋이 로 구성되어 있다고 가정
focus vector는 각 레이어의 output embedding에 대한 간단한 transformation을 적용해encoder model의 forward pass를 수정
아래 그림을 보면, focus-vector에 의해 사용된 파라미터의 수는 4x(L+1)xd개 이고, 이는 고정된 트랜스포머 모델의 파라미터 수와 비교해봤을 때 무시할만한 수준이다.
focus vector는 encoder embedding에 바로 적용되기 때문에, 모델에 외재적인 attention module이 있을 필요가 없으므로 LSTM과 같은 non-attentional architecture에도 적용가능하다.
우리는 SGD로 standard NLL loss를 사용해 focus vector를 학습한다.
이 때, 은 focus vectors가 적용된 후의 output에 대한 distribution을 의미한다.
focus vector를 학습하는 동안 모델의 파라미터는 고정된다.
loss 를 줄이기 위해, focus vector는 에 표시된 span쪽으로 model의 focus가 움직이도록 한다.
본 논문에서는 2가지 NLG task에 대해 실험 : 대화 응답 생성과 생성 요약
Dialogue task에서, PersonaChat 데이터셋 사용
summarization에서 CNN/Dailymail dataset사용
두 데이터셋 모두 end-to-end로 만들어졌고, annotated highlight spans를 포함하지 않음.
원론적인 평가를 위해, AMT(Amazon Mechanical Turk) platform를 활용해서 인간 라벨링을 한 evaluation set를 제작
human-annotated highlight를 이용해 attribution method를 비교
특히, 우리는 표1에서 처럼 가장 높은 랭킹인 문장의 top-one precision을 계산
PersonaChat과 Cnn/Dailymail 둘다에서 LOO가 best alignment였음
==> LOO를 사용해서 focus vector training을 위한 automatic annotation을 얻음
attention weight derived attribution scores과 human judgment사이의 low alignment를 봤지만, 이것이 attention ditributions에 개입을 통해 모델 생성을 통재하는 것이 최적이 아닐 수 있음을 보임.(높아봐야 62정도니까..? 하지만 이게 안되면 이 논문은 의미가..?)
PersonaChat에 대해선 Blenderbot을 CNN/Dailymail에 대해선 BART를 기본 모델로 사용
각 모델 파인튜닝 후에, LOO를 사용해 자동으로 PersonaChat에선 1-3개 문장, CNN/Dailmail에선 2-5개 문장을 highlight를 한 학습 데이터셋을 사용
4가지 focus-vector approach를 비교
평가 동안, human-annotated highlight가 모델로 들어감
평가 지표 : perplexity, ROUGE, BERTScore
실험 결과
padding baseline은 성능 안좋음(입력의 대부분이 마스크로 날라가니까)
다양한 베이스라인을 비교했을 때, 두 태스크 모두에서 ROUGE, BERTScore가 크게 증가
이는 focus-vec이 모델을 조종하는데 효과적이고, 원하는 방향으로 생성을 이끌어낼 수 있다는 것을 의미
CNN/Dailymail에 대해선 focus-vector의 perplexity가 vanilla model과 유사했다(단 ROUGE는 큰 차이가 남)
key-phrases는 vanilla model보단 낫지만, attention-offset이나 focus-vector보단 안좋았다.
저자는 그 이유로,
1) key-phrases는 highlighted span을 완전히 표현할 수 없다
2) training과 evaluation사이에 추출된 key-phrases의 불일치 를 뽑았다.
focus-vector와 attention-offset사이에서 ROUGE와 BERTScore의 성능 갭은 CNN/Dailmail dataset에서 더 컸다.
=> BART가 Blenderbot model보다 더 깊은 인코더를 가지고 있기 때문으로 추정 / 인코더가 깊을수록 임베딩이 더 가까워지고, identifiability가 감소한다. 결국 인코더의 마지막단을 디코더가 attent하기 때문에, 이런 직접적인 attention weight 조작이 딥 인코더에선 효과적이지 않을 수 있다.
PersonaChat에서 다양한 focus-control approaches들이 샘플을 생성하는 예시를 보여주고 있다.
highlights와 관련된 생성 부분이 빨간색으로 표기 됨