NL-205, SAMRank: Unsupervised Keyphrase Extraction using Self-Attention Map in BERT and GPT-2, EMNLP 2023

◼ Comment

  • PLM(BERT or GPT2)을 따로 학습하지 않고 사용해서 keyphrase 추출하는 연구이다.
  • 일단 먼저 기존의 라이브러리?를 사용해서 주어진 document에서 phrase을 추출한다.
    • 명사구가(형용사도 포함하는 듯) keyphrase의 후보라고 가정하고 들어간다
  • PLM에 document을 넣어서 token의 attention score map을 구한다.
    • 여기서 몇 번째 layer 및 head를 사용하는게 최적인지는 알 수가 없다. (아주 큰 한계)
    • 어쨌든 특정 head 및 layer의 attention score map을 구하고 이를 활용해서 최종 attention score으로 변환한다
    • 그리고 동일 phrase에 있는 토큰 attention value을 다 더해서 phrase attention value을 구한다.
    • (문서에 동일 phase가 등장할 수 있기 때문에) 같은 phrase의 value을 다 더해서 document에 포함된 phrase의 최종 attention value을 구한다.
  • 이런 느낌으로 attention 을 통해서 뭐가 중요한지를 계산하는 방식이다.
    • 예상과달리 GPT2가 BERT보다 더 좋은 케이스가 많다는 것 같고
    • GPT2는 11번째 layer의 1번째 head을 사용하는게 실험적으로 보인다고 하낟
    • BERT는 데이터에 따라 다른듯..
  • 내 업무랑 연관짓는다면?
    • 일단 phrase을 추출해주는 부분이 없다..
    • 하지만 명사 토큰을 추출할 수는 있다. (사내 라이브러리 or mecab)
    • 이들을 keyphease 명사라고 간주하고, 위 방식을 유사하게 구현해볼 수 있을 것 같다.
    • 단지 몇 번째 layer/head을 사용해야 좋은지 모르는게 단점이라 좀 해봐야알 것 같다 (특히 논문은 영어데이터에 대한 영어모델의 실험이기 때문에)

Abstract 

  • 우리는 SAMRank라는 새로운 비지도 키워드 추출 접근 방식을 제안합니다. 
  • SAMRank는 사전 훈련된 언어 모델(PLM)에서만 자기 주의 맵을 사용하여 구문의 중요성을 결정합니다. 
  • 최근의 비지도 키워드 추출 접근 방식은 주로 문맥화된 임베딩을 사용하여 단어, 문장 및 문서 간의 의미적 관련성을 캡처합니다. 
  • 그러나 문맥 임베딩의 이방성 특성으로 인해 이러한 방식은 의미 유사성 측정에 있어서 최적이 아닐 수 있습니다. 
  • 여기에서 제안하는 SAMRank는 BERT 및 GPT-2와 같은 PLM에서 자기 주의 맵만을 활용하여 구문의 중요성을 계산하며 임베딩 유사성을 측정할 필요가 없습니다. 
  • 중요도 수준을 평가하기 위해 SAMRank는 자기 주의 맵을 사용하여 전역 및 비례적 주의 점수를 결합합니다. 
  • SAMRank를 Inspec, SemEval2010 및 SemEval2017 세 가지 키워드 추출 데이터셋에서 평가했습니다. 
  • 실험 결과는 SAMRank가 임베딩 기반 모델 대부분을 능가하며 장문 및 단문 문서 모두에서 우수한 성능을 보여주며 임베딩에 의존하지 않고도 키워드 추출에 자기 주의 맵만을 사용할 수 있다는 것을 입증합니다. 
  • https://github.com/kangnlp/SAMRank

1 Introduction

  • 키워드 추출은 문서의 주요 테마를 나타내는 단어 또는 구문을 식별하는 프로세스를 의미합니다. 
  • 이는 문서 요약, 정보 검색 및 주제 모델링을 포함한 다양한 응용 분야에서 사용됩니다. 
  • 키워드 추출에 사용되는 방법론은 일반적으로 지도 및 비지도 접근으로 분류됩니다. 
  • 비지도 키워드 추출은 훌륭한 성능을 보이지만 대량의 레이블이 지정된 데이터에 크게 의존하며 도메인 특정성이 강한 경향이 있습니다. 
    • 반면, 비지도 키워드 추출은 문서에 내재된 정보만을 사용합니다. 
    • 전통적인 방법은 TF-IDF (Jones, 2004)와 같은 통계 정보 및 단어 공존에 기반한 그래프를 활용합니다 (Mihalcea and Tarau, 2004). 
    • 그러나 이러한 방법은 종종 텍스트의 잠재적인 의미를 해석하는 데 실패하여 최적의 성능을 얻기 어렵습니다. 
  • 심층 학습 기반 언어 모델의 도입은 이 패러다임을 바꾸었습니다. 
    • 이 모델은 문서와 구문 임베딩 간의 유사도를 계산하여 문서와 의미적으로 밀접하게 관련된 구문을 추출하는 것을 가능케했습니다.
  • 그러나 본 논문은 임베딩을 활용하지 않습니다. 
  • 이에 대한 합리적인 근거는 문맥화된 표현이 유사성 기반 작업에는 적합하지 않다는 것입니다. 
  • ELMo, BERT, 및 GPT-2와 같은 PLM의 표현을 기하학적으로 분석한 연구는 이러한 언어 모델의 문맥화된 표현이 이방성을 나타낸다고 주장했습니다. 
    • 이러한 표현은 일반적으로 벡터 공간의 특정 방향에 집중하며 상위 레이어에서 점점 이방성이 증가합니다. 
    • 실제로 BERT 및 GPT-2에서 무작위로 선택한 두 단어 표현의 평균 코사인 유사도는 레이어 깊이와 함께 현저하게 증가합니다. 
    • 일반적으로 임베딩은 PLM의 마지막 레이어 표현에서 나오기 때문에 이방성 임베딩은 유사성 기반 순위를 필요로 하는 작업에 영향을 미칠 수 있습니다. 
    • 이를 극복하기 위해 BWRank (Wang and Li, 2022)는 BERT의 임베딩을 차원 축소를 통해 이방성을 완화하는 화이트닝(whitening) 작업으로 동질적으로 재구성함으로써 키워드 추출의 성능을 향상시켰습니다.
  • 이전에 발표된 "What Does BERT Look At? An Analysis of BERT’s Attention"라는 작업에서 저자들은 BERT의 주의 메커니즘이 어떻게 작동하는지 이해하기 위해 BERT의 각 헤드에서 특정 단어가 다른 단어에게 얼마나 많은 주의를 기울이는지를 결정했습니다. 
    • 그들의 연구 결과는 특정 BERT 헤드가 동사의 직접 목적어 및 전치사의 목적어와 같은 문법 구조와 핵심 참조를 식별하는 데 뛰어난 능력을 갖고 있음을 나타냅니다. 
    • 이는 BERT와 같이 언어 복잡성을 처리하기 위해 다중 헤드 주의 메커니즘을 사용하는 변압기 기반 PLM에서 특정 헤드가 특정 작업에 특화될 수 있다는 것을 시사합니다. 
    • 이 연구를 기반으로 하면, 트랜스포머 기반 PLM의 일부 헤드는 텍스트의 테마적 본질을 이해하는 데 중요한 역할을 하는 키워드를 캡처하는 데 특화될 수 있으며, PLM의 사전 훈련 과정에서 일부 헤드가 키워드를 감지하는 데 훈련된 가능성을 고려할 수 있습니다.
  • 따라서 본 논문은 PLM 임베딩에서 각 PLM 헤드에서 제공하는 자기 주의 맵에 중점을 둡니다. SAMRank라는 새로운 접근 방식을 제안합니다. 
    • 이 방법은 변압기 기반 PLM의 self-attention map만을 활용하여 키워드를 추출합니다. 
    • SAMRank는 문서 내 모든 토큰에서 받은 주의 가중치를 합하여 global attention score를 계산합니다. 
    • 또한 주의 가중치에 기반하여 전역적으로 중요한 토큰에 주의를 기울이는 다른 토큰들에게 전역 주의 점수를 비례적으로 재분배하여 비례적 주의 점수를 얻습니다. 
    • 이 두 점수의 결합이 토큰의 최종 점수를 결정합니다. 
    • SAMRank는 후보 구문 내 각 토큰의 최종 점수를 집계하여 구문의 총 점수를 계산하고 전체적인 중요성을 결정합니다. 
    • 이로 인해 후보 구문이 총 점수에 기반하여 순위가 매겨지며, 따라서 높은 주의를 받으면서 전역적 주의를 받는 구문을 추출할 수 있습니다. 
    • SAMRank의 개요는 Figure 1에 제시되어 있으며, SAMRank를 통해 계산된 최종 토큰 점수는 Figure 2에 나타낸 것처럼 시각화될 수 있습니다.
    • BERT와 GPT2의 입력 예 및 결과
    • BERT는 special token을 쓰지만 GPT2는 사용 X
  • 이거는 문서에서 중요한 keyphrase을 추출하는 그런 느낌이군?
  • 본 논문에서는 각 레이어의 각 헤드의 자기 주의 맵을 독립적으로 분석하여 키워드 추출에서 뛰어난 성능을 보이는 헤드를 식별합니다. 
    • Inspec, SemEval2010 및 SemEval2017이라는 세 가지 대표적인 키워드 추출 데이터셋을 사용하여 BERT와 GPT-2의 모든 144개 헤드에서 자기 주의 맵을 추출합니다. 
    • 각 헤드의 성능을 평가하며 실험 결과는 SAMRank가 특정 헤드에서 BERT와 GPT-2의 대다수 임베딩 기반 방법을 능가한다는 것을 보여줍니다.
  • This paper’s main contributions are three-fold: 
    • SAMRank는 임베딩 및 유사성 측정이 필요 없이 자기 주의 맵만을 활용하여 키워드를 추출하는 새로운 효율적인 접근 방식을 제안합니다. 
    • 우리는 BERT와 같은 인코더 기반 언어 모델뿐만 아니라 GPT-2와 같은 디코더 기반 언어 모델도 키워드 추출에 사용할 수 있는 능력을 증명합니다. 뿐만 아니라 GPT-2가 키워드 추출 작업에서 BERT를 능가할 수 있는 증거도 제시합니다. 
    • 우리는 변압기 기반 PLM의 헤드 중 일부가 기준 모델에 비해 키워드 추출에서 뛰어난 능력을 가지고 있다는 사실을 발견했습니다.

2 Background

2.1 Self-Attention Map

  • 변환기의 중추적인 구성 요소는 각 토큰이 다른 토큰에 기울이는 주의를 정량화하여 텍스트 내 토큰 간의 복잡한 상호 의존성을 모델링하는 selfattention 메커니즘입니다. 
  • 변환기의 self-attention 메커니즘은 각 토큰의 쿼리 벡터(Q)와 모든 토큰의 키 벡터(Ks) 사이의 스케일링된 내적을 계산한 다음 이를 소프트맥스 함수를 통해 전달하여 어텐션 가중치를 계산합니다. 
  • 어텐션 가중치에 각 토큰의 값 벡터(V)를 곱하고, 이러한 벡터를 합산하여 쿼리 토큰에 대한 최종 출력 벡터를 생성합니다. 
  • 텍스트의 각 토큰은 self-attention에서 쿼리 Q로 한 번 제공되므로 모든 토큰의 어텐션 가중치를 집계하면 SAM(self-attention map)이라는 정사각형 행렬이 생성됩니다. 
  • SAM은 토큰이 서로 어떻게 연관되어 있는지에 대한 통찰력을 제공하는 중요한 정보입니다. 
  • SAM의 i번째 행은 쿼리 Q로 제공될 때 텍스트의 i번째 토큰의 주의 가중치를 나타냅니다. 
  • 즉, 다른 토큰에 '관심'하는 정도를 의미하며 각 행의 합은 1입니다. 
  • 반대로 SAM의 i번째 열은 i번째 토큰이 K 값으로 제공될 때 다른 토큰으로부터 받은 어텐션 가중치를 나타냅니다. 
  • self-attention은 현재 토큰 뒤에 나타나는 토큰을 '마스크'하거나 무시합니다. 
    • 이는 각 토큰이 이전에 나타난 토큰에만 주의를 기울인다는 것을 의미합니다. 
    • 결과적으로 마스크된 self-attention 맵은 대각선 위의 모든 값이 0인 하부 삼각 행렬입니다. 
  • Transformer는 인코더-디코더 모델로, 인코더는 self-attention 메커니즘을 사용하고 디코더는 마스킹된 self-attention 메커니즘을 사용합니다. 
  • 변환기는 다층 구조로 되어 있으며 주의 메커니즘은 각 층 내의 여러 헤드에 걸쳐 병렬로 작동합니다. 
  • 각 헤드에는 독립적인 Q, K 및 V 가중치가 있습니다. 
  • 즉, 다양한 관점에서 동일한 입력 텍스트를 처리합니다. 각 헤드의 출력은 연결되어 최종 레이어 출력을 형성합니다.

2.2 BERT

2.3 GPT-2 

3 Methodology

  • 우리의 제안된 방법론은 BERT와 GPT-2와 같은 트랜스포머 기반 언어 모델의 Self-Attention Map (SAM)을 기반으로 구문을 순위 지정하는 것입니다. 
  • SAM은 각 토큰이 다른 토큰과의 관련성에 따라 주는 자기 주의 가중치 벡터로, 각 행은 토큰이 다른 토큰에게 할당하는 주의를 나타냅니다. 많은 
  • 다른 토큰과 의미적으로 연결된 토큰은 이 '주의'를 더 많이 받을 가능성이 있습니다. 
  • 따라서 각 토큰의 전역 주의 점수는 텍스트 내의 모든 토큰으로부터 받은 주의 가중치를 합산하여 계산됩니다. 
  • 그런 다음 주의 가중치에 의해 할당된 비율에 따라 전역 주의 점수가 분배되며, 이는 주의 가중치에 따라 V 벡터를 곱하는 주의 작업과 유사합니다. 
  • 이로 인해 비율적인 주의 점수가 계산되며, 전역적으로 중요한 토큰과 강력하게 관련된 토큰은 높은 점수가 할당됩니다. 
  • 토큰의 최종 점수는 global attention score and the proportional attention score를 결합하여 계산됩니다. 
  • 구문의 경우, 그들의 점수는 문서 전체에서 나타난 횟수를 통해 이루어진 부분 토큰의 누적 합계로 계산됩니다. 
  • 이 구문 수준의 점수를 기반으로 구문은 전체적인 중요도를 결정하기 위해 순위가 매겨집니다. 
  • 특정 텍스트에 대한 이 추출 결과의 예시는 표 1에서 확인할 수 있습니다.

3.1 Candidate Generation

  • 저희는 EmbedRank (Bennani-Smires et al., 2018)에서 구현한 모듈을 사용하여 키프레이즈 후보를 추출합니다. 
  • 이 모듈은 StanfordCoreNLP 도구를 사용하여 문서를 토큰화하고 품사를 태깅한 다음 NLTK의 RegexpParser를 사용하여 명사구를 추출합니다. 
  • 여기서 명사구는 'NN', 'NNS', 'NNP', 'NNPS', 및 'JJ'로 태그가 지정된 단어 또는 단어 시리즈로 정의됩니다. 
    • 'NN': 단수 명사 (singular noun)
    • 'NNS': 복수 명사 (plural noun)
    • 'NNP': 고유 명사 (proper noun)
    • 'NNPS': 복수형 고유 명사 (plural proper noun)
    • 'JJ': 형용사 (adjective)
  • 이렇게 추출된 명사구는 키프레이즈 후보가 됩니다.

3.2 Self-Attention Map Extraction

  • 이 논문에서는 Hugging Face의 transformers 라이브러리를 사용하여 BERT와 GPT-2의 각 레이어 및 헤드에서 Self-Attention Maps (SAMs)를 추출합니다. 
  • 각 문장을 따로 입력하는 것이 아니라 전체 문서를 한 번에 PLM에 입력합니다.
    • 이렇게 함으로써 문서의 전반적인 맥락을 반영하는 토큰 간의 상관 관계를 캡처할 수 있습니다. 
  • 문서 내 토큰의 수가 모델의 최대 입력 토큰 수를 초과하는 경우 전체 문서를 동일한 토큰 수로 여러 세그먼트로 나누고 각각에 대해 SAM을 추출합니다. 
  • BERT의 경우 [PAD] 토큰을 사용하지 않고 "[CLS] 텍스트 [SEP]"의 구조로 텍스트를 입력합니다. 
  • GPT-2는 특별한 토큰 없이 직접 입력됩니다.

3.3 Global Attention Score Calculation

  • SAMRank는 처음에 토큰 수준에서 점수를 계산하고 나중에 구문 수준에서 점수를 집계합니다. 
  • 우리는 각 토큰의 글로벌 어텐션 점수를 문서의 모든 토큰으로부터 받은 어텐션 가중치의 총합으로 계산합니다. 
  • self-attention 맵은 행렬 A이며 크기는 입력 토큰 수(n) × 입력 토큰 수(n)로 결정됩니다. 
    • n개의 토큰이 있을 때, 그들 사이의 attention 값이 있을 테니 n x n 행렬이 되는 듯?
  • 따라서 SAM의 각 열에 대한 열 합을 결정하여 각 토큰의 글로벌 어텐션 점수(Gti)를 계산할 수 있습니다.
    • i번째 토큰의 Gti는 다른 토큰과의 attention 합이 되는 형태
  • 그러나 BERT의 [SEP] 토큰은 중간 계층의 다른 토큰으로부터 매우 높은 관심 가중치를 받습니다. 
  • 또한 Masked self-attention을 수행하는 GPT-2의 첫 번째 토큰은 문서 시작 부분부터 매우 높은 Attention 가중치를 받습니다. 
    • GPT2는 이전 토큰과 attention이 계산안될텐데 0으로 보는것인가?
  • BERT의 [SEP] 토큰과 GPT2의 첫 번째 입력 토큰에 대한 글로벌 어텐션 점수를 0으로 설정했습니다. 
    • 그 이유는 글로벌 어텐션 점수가 지나치게 높아 각 토큰 간의 상관 관계를 이해하는 데 방해가 될 수 있기 때문입니다.

3.4 Proportional Attention Score Calculation

  • 토큰이 전체적으로 중요하지는 않지만 중요한 토큰과 매우 높은 상관관계를 갖는 경우 해당 토큰도 중요한 토큰으로 간주되어야 합니다. 
    • 토큰이 중요 토큰에 매우 높은 어텐션 가중치를 부여한다면 해당 중요 토큰과 높은 상관관계가 있는 것으로 해석할 수 있습니다. 
    • 우리는 중요한 토큰에 할당된 관심 가중치에 비례하여 글로벌 관심 점수를 재분배함으로써 이러한 토큰이 높은 순위를 갖도록 허용합니다.
    • 즉 본인의 Gt가 높지는 않지만, Gt가 높은 토큰과 강한 상관관계(attention 점수가 높은 것?)을 가진다면, 그 토큰도 중요할 수 있다는 가정!
    • 이는 각 토큰의 글로벌 어텐션 점수에 SAM의 해당 열에 있는 각 요소를 곱하여 계산할 수 있습니다.
    • 그런 다음 각 열의 값을 열의 합으로 나누어 각 열이 0과 1 사이의 값을 갖도록 정규화하여 행렬 B'를 얻습니다.
    • 각 토큰의 글로벌 중요도와 어텐션 가중치에 비례하여 계산되는 비례 어텐션 점수는 업데이트된 SAM(B')의 각 행에 대해 행 합산 연산을 수행하여 계산됩니다.
  • 예) 이렇게 작동하는 것일까?
    • A : [[1,4,2],[3,2,5],[4,10,1]]
    • G: [1+3+4, 4+2+10, 2+5+1]=[8,16,8]
    • B: [[8,32,16], [48,32,80], [32,80,8]]
    • B': [[8/(8+48+32), 32/(32+32+80), 16/(16+80+8)], ...] = [[0.091, 0.364, 0.182], [0.333, 0.222, 0.556], [0.308, 0.769, 0.077]]
    • P: [0.091+0.364+0.182, ...] = [0.637, 1.111, 1.154]
  • A = output.attentions[layer_ind][0,head_ind,:,:]
  • G = torch.sum(A,0)
  • B = torch.mm(A,torch.diag(G))
  • Bs = torch.sum(B,0)
  • B1 = torch.zeros(B.shape)
  • for j in range(len(B)):
  •     for i in range(len(B[j])):
  •         B1[j][i] = B[j][i]/Bs[i]
  • P = torch.sum(B1,1)
  • S = G+P

3.5 Phrase-level Score Aggregation

  • 토큰 수준의 최종 점수는 각 토큰의 글로벌 어텐션 점수(Gti)와 비례 어텐션 점수(Pti)의 합으로 결정됩니다.
  • phrase-level의 점수는 문구를 구성하는 토큰의 최종 중요도 점수의 합으로 계산됩니다.
  • 구문 수준의 최종 점수는 문서에서 해당 구문이 나타나는 각 위치에서 계산된 구문 점수의 합으로 계산됩니다.
  • 예) 위의 예를 이어서 생각해보자
    • G: [8,16,8]
    • P: [0.637, 1.111, 1.154]
    • S: [8.637, 17.111, 9.154]
    • SPk: phrase 레벨로 점수를 합친다는 것, 3.1 섹션에서 명사구를 추출하는 과정이 먼저 있음. 같은 명사구 내의 S점수를 합침
    • SP: 문서내에 같은 명사구가 여러 번 등장할 수 있을 텐데, 이들의 값을 모두 합침. 즉 문서에서 많이 나오면 그게 keyphrase 가능성이 높아지는 형태
    • 가장 높은 점수가 keyphrase 겠지?
  • 구문이 단일 단어로 구성되어 있고 해당 단어가 다른 후보 구문의 하위 단어로 사용되는 경우 하위 단어의 점수는 해당 구문의 문맥에서 계산되므로 해당 위치의 점수는 계산에 포함되지 않습니다. 
    • 하위 단어가 속하며 이 점수는 구문의 점수에 추가되어야 합니다. 
    • 따라서 단일 단어는 다른 후보 구문의 하위 단어로 사용되지 않고 독립적으로 사용되는 위치에서만 점수가 매겨집니다. 
    • 또한 단일 단어는 다른 후보 구문보다 문서에서 더 자주 사용되기 때문에 더 높은 점수를 받을 가능성이 가장 높습니다. 
    • 이를 수정하기 위해 단일 단어의 최종 점수를 해당 단어의 총점을 단어의 빈도로 나누어 평균 점수로 계산합니다.
  • 최대 입력 토큰 수를 초과하는 긴 문서의 경우 먼저 여러 세그먼트로 나누고 각 세그먼트에 독립적으로 SAMRank를 적용한 후 각 결과를 통합합니다. 
    • 즉, 해당 문구가 각 세그먼트에서 획득한 점수의 합으로 계산하여 해당 문구의 최종 점수를 매긴다.

4 Experiments

4.3 Results

  • 표 3에는 SAMRank에 대한 실험 결과가 나와 있습니다. 
  • 총 144개의 헤드 중에서 가장 높은 F1@15 점수를 획득한 헤드를 선정합니다. 
  • Inspec에서는 BERT의 세 번째 레이어의 11번째 헤드와 GPT2의 11번째 레이어의 첫 번째 헤드가 가장 좋은 성능을 보였습니다. 
  • BERT와 GPT-2를 사용하는 SAMRank는 모두 기존 기준의 F1@5, F1@10 및 F1@15 점수를 능가합니다. 
  • SemEval2010에서는 BERT의 12번째 레이어의 6번째 헤드와 GPT-2의 11번째 레이어의 11번째 헤드가 가장 높은 성능을 얻었습니다. 
  • 우리 모델은 F1@5, F1@10에서 최첨단(SOTA) 성능을 달성하고 MDERank를 제외하고 F1@15에서 다른 모든 기준보다 성능이 뛰어납니다. 
  • 이러한 결과는 SAMRank가 긴 문서에서 핵심 문구를 추출할 때도 잘 수행된다는 것을 보여줍니다. 
  • SemEval2017에서는 BERT의 5번째 레이어의 두 번째 헤드와 GPT-2의 11번째 레이어의 첫 번째 헤드가 가장 높은 성능을 보여 F1@5, F1@10, F1@15에서 SOTA 결과를 달성했습니다.
  • 즉 BERT, GPT의 몇 번째 layer을 사용해야하는지 정답은 없다
    • GPT2의 경우 두 데이터세트 모두, 11번째 레이어가 좋다고 하지만 이는 결과일 뿐이고
    • 다른 데이터세트에선 다른 결과를 가질 수 있다
    • BERT는 3, 5번째 레이어가 두 데이터세트에서 각각 좋다고 한다.
    • 또한 각 레이어에서 몇 번째 head가 좋은지도 모른다.
    • 사실 이 부분이 갠적으로 느끼기엔 가장 큰 limitation이 아닌가 싶긴함
  • 우리가 제안한 SAMRank는 모든 데이터 세트에서 거의 모든 기존 기준보다 성능이 뛰어납니다. 
  • Inspec 데이터 세트를 제외하면 GPT-2의 성능이 BERT보다 약간 높습니다. 
  • BERT와 GPT-2의 임베딩을 분석한 이전 연구에서는 평균 문장 내 유사성, 즉 GPT-2의 문장 내 각 단어 표현 간의 코사인 유사성이 BERT보다 낮다는 것을 지적했습니다(Ethayarajh, 2019). 
  • 또한 BERT는 문장의 각 단어가 의미를 공유하도록 하여 컨텍스트를 인코딩하는 반면, GPT-2는 컨텍스트를 인코딩하면서 각 단어의 고유한 의미를 유지한다고 추측합니다. 
  • 따라서 문맥화 과정에서 각 단어의 고유한 의미를 희석 없이 그대로 유지하는 GPT-2의 특성이 잘 작용하여 BERT보다 GPT-2가 더 높은 성능을 보인 것으로 추측할 수 있다.

4.4 Ablation Study

    • BERT랑 GPT랑 이정도면 별 차이 없는거 아닌가?

5 Analysis of Heads

  • 핵심 문구 추출에 특화된 헤드를 식별하기 위해 BERT 및 GPT-2에서 144개 헤드 각각의 성능을 평가합니다. 
  • 세 가지 데이터 세트에 대한 모든 계층에 걸쳐 각 헤드의 F1@15 성능은 부록 A에 자세히 설명되어 있습니다. 
  • 특정 헤드의 성능은 세 가지 데이터 세트 모두에서 일관된 패턴을 보여줍니다. 
  • BERT에서는 주로 3번째와 5번째 레이어에 위치한 헤드가 높은 성능을 보이는 반면, GPT-2에서는 11번째 레이어의 헤드가 특히 성능이 좋습니다.
    • 그러나 가장 높은 성능을 제공하는 헤드는 데이터 세트에 따라 다릅니다. 
    • 이는 변환기 기반 PLM의 특정 헤드가 인간이 핵심 문구로 인식하는 문구에 상당한 주의를 기울이지만 성능은 텍스트의 유형과 길이에 따라 달라지며, 각 헤드가 핵심 문구를 식별할 때 서로 다른 관점이나 주의 패턴을 채택할 수 있음을 나타냅니다.
  • 또한 BERT의 계층 내 성능 차이가 GPT-2보다 크다는 것을 관찰했습니다. 
  • 이는 BERT의 일부 헤드가 의미론적 핵심 문구 추출과 관련 없는 작업을 전문으로 하며 구문론적 또는 기타 비의미론적 작업에 중점을 둘 수 있음을 시사할 수 있습니다. 
  • BERT의 여러 레이어에 걸쳐 최고 성능의 헤드 간의 상대적으로 작은 성능 차이에도 불구하고 우리는 BERT의 헤드를 포함하여 다른 모든 헤드보다 훨씬 뛰어난 성능을 보이는 GPT-2의 11번째 레이어에서 일부 특정 헤드(첫 번째 및 11번째 헤드)를 식별합니다. 
  • 이는 GPT-2의 특정 헤드가 핵심 문구 식별에 고도로 전문화될 가능성을 시사합니다.

6 SAMRank on LLMs

8 Conclusion

  • 본 논문에서는 기존의 임베딩 기반 접근 방식에서 벗어나 PLM의 self-attention 맵 정보만 활용하는 핵심 문구 추출에 대한 새로운 관점을 제시합니다. 
  • 제안하는 SAMRank는 문서 내에서 관심을 끄는 토큰을 식별하는 글로벌 어텐션 스코어(Global Attention Score)와 중요한 토큰과 연관이 깊은 토큰을 찾는 비례 어텐션 스코어(Proportional Attention Score)의 조합을 기반으로 핵심 문구를 추출한다. 
  • 세 가지 대표적인 핵심 구문 추출 데이터 세트에 대한 실험 결과는 SAMRank가 임베딩 기반 모델보다 지속적으로 뛰어난 성능을 발휘하여 F1@5 및 F1@10 점수를 각각 평균 약 11.5% 및 3% 향상시키는 것으로 나타났습니다.
  • 이러한 결과는 PLM의 일부 책임자, 특히 BERT 및 GPT-2가 핵심 문구 캡처에 특화될 수 있음을 시사합니다. 
  • 또한 이러한 헤드의 self-attention 맵이 임베딩보다 핵심 구문 추출에 더 유용한 정보를 제공할 수 있음을 보여줍니다. 
  • 향후 작업에서는 SAMRank 접근 방식을 잠재적으로 활용하여 핵심 문구 추출 범위를 넘어 변환기 기반 PLM에서 각 헤드의 특정 역할과 기능을 철저하게 분석함으로써 해석 가능성을 높일 수 있습니다.

Limitations

  • SAMRank는 144개의 헤드 중 하나에서 단 하나의 SAM(Self-Attention Map)을 활용합니다. 
    • 부록의 결과에서 알 수 있듯이 특정 헤드는 모든 데이터 세트에서 일관되게 높은 성능을 보이지만 가장 성능이 좋은 헤드가 항상 동일하게 유지되는 것은 아닙니다. 
    • 더욱이, head들 사이에서 성과의 균형이 관찰됩니다. 
    • 일부 헤드는 F1@5에서 높은 성능을 보이지만 F1@15에서는 낮은 성능을 보이는 반면, 다른 헤드는 반대 패턴을 나타냅니다. 
    • 이러한 가변성은 최적의 head 선택이 텍스트의 유형과 길이, 특정 평가 지표에 따라 달라질 수 있으며 최적의 결과를 얻으려면 추가적인 인간 탐색이 필요함을 나타냅니다. 
    • 따라서 단일 self-attention 맵에만 의존하는 것이 아니라 여러 고성능 헤드의 출력을 결합하면 보다 안정적일 뿐만 아니라 다양한 유형의 텍스트에 적용할 수 있는 보다 일반화된 성능을 얻을 수 있을 것으로 기대됩니다. 
    • 여러 개의 SAM을 결합하는 방법은 향후 연구에 좋은 주제가 될 것입니다.
  • 또한 긴 문서를 처리할 때 텍스트를 동일한 토큰 수로 세그먼트로 나누고 각 세그먼트에서 핵심 문구를 추출한 다음 결과를 통합하여 최종 핵심 문구를 도출합니다. 
  • 이러한 균등 분할 접근 방식의 동기는 모든 세그먼트에 걸쳐 동일한 조건에서 토큰의 중요성을 드러내는 것입니다. 
  • 그러나 이 방법을 사용하면 원본 긴 텍스트의 컨텍스트가 손실되어 잠재적으로 정확성이 떨어질 수 있습니다. 
  • 따라서 BigBird 또는 Longformer와 같이 보다 확장된 토큰 입력을 처리할 수 있는 모델에 SAMRank 접근 방식을 적용하는 것은 향후 연구에서 흥미로운 주제가 될 수 있습니다.

Reference

댓글

  1. 안녕하세요. 논문 저자입니다.
    먼저 부족한 논문을 이렇게 꼼꼼히 분석해 주셔서 감사합니다!

    예시에서 한 가지 설명드리고 싶은 부분이 있습니다!
    예시에서 A를 A : [[1,4,2],[3,2,5],[4,10,1]] 로 적어주셨는데 A는 softmax를 거친 후의 Attention weights matrix이기 때문에 0~1사이의 값을 갖게 됩니다!
    A : [[0.2, 0.5, 0.3],[0.3, 0.2, 0.5],[0.4,0.3,0.3]]

    limitation도 지적해 주셔서 감사합니다. 지적해주신 것처럼 제안하는 방법은 test를 하기 전까지는 어떤 head가 최적인지 알 수 없습니다ㅠ 아마 더 다양한 데이터셋에 대해서 test를 해서 경험적으로 n번째 layer에 n번째 head가 최적이다 라고 주장할 수도 있겠지만 bert-base-uncased, bert-base-cased 도 서로 최적의 head가 달랐던 것을 보면 이러한 헤드는 plm의 초기 가중치에 따라 pretrain 과정에서 랜덤으로 정해지는 것이 아닌가 생각하고 있습니다. 그래서 'BERT와 GPT의 사전학습과정에서 특정 head들에서 의미적으로 중요한 keyphrase에 attention이 쏠리도록 학습되고, 이런식으로 의미적인 정보를 인코딩하는 것이 아닐까? (단, 그 head가 정확히 몇 번재 layer의 몇 번째 head인지 미리 알 수는 없음)' 정도로만 결론 내릴 수 있을 것 같습니다.

    현재는 여러 head들을 결합하는 식의 방법을 생각하고 있는데 쉽지 않네요..ㅎㅎ

    또 업무에서 적용해 보신다고 하셔서 혹시 도움이 될까 한국어로 실험했던 사항들 공유드립니다. konlpy에서 Okt만 명사구 추출을 지원하는 것으로 압니다. 그래서 okt.phrases() 로 후보 명사구들을 추출했습니다. 그때 긴 문서를 처리하고 있어서 KoBigBird로 실험했는데 직접 labeling한 데이터셋에서 TextRank보다는 성능이 좋게 나왔습니다. 그리고 부록에 있는 것처럼 keyphrase에 상대적으로 진한 세로줄이 나타나는 현상도 발견했었습니다.

    혹시 또 궁금하신 사항 있으시면 편하게 댓글이나 메일(bhkang@inu.ac.kr)주시면 감사하겠습니다.

    감사합니다:)

    답글삭제

댓글 쓰기