안녕하세요! 현재 Unsupervised 키워드 추출에 관해 연구 진행을 하고 있어 키워드 추출에 관심 있는 분들과 이야기를 나누고 싶어 글을 쓰게 되었습니다. 오늘 다룰 내용은 임베딩 기반 키워드 추출의 대표적 모델인 EmbedRank와 EmbedRank의 local-context에 관한 한계를 보완하기 위해 나온? AttentionRank, JointGL 모델들에 대해 간략히 정리하려 합니다. 그 후 실제로 이 두 모델이 효과적으로 local-context를 고려했는지에 관해 제 개인적인 생각을 공유하려 합니다. 아직 지식 등 여러모로 부족하므로 여러분들과 공유하여 논의하고 싶어 작성하게 되었고, 댓글을 통해 의견을 자유롭게 적어주시면 감사하겠습니다!
EmbedRank
연구 목적: domain-specific 문제를 완화하고, 단일 문서에도 적용할 수 있는 corpus-free 방법론을 만들고자 함
추가적으로 키워드 다양성의 중요성을 보이기 위해 MMR 알고리즘을 적용
방법론
1. 문서 전처리 후 (명사, 형용사 + 명사) 후보단어 추출
2. Doc2Vec 및 Sen2vec을 이용해 문서와 후보단어 임베딩 (그 이후 키워드 추출 논문에선 비교를 위해 Bert를 이용해 임베딩)
3. 모든 후보단어에 대해 문서와의 유사도 측정 후 Ranking
4. 유사도가 높은 순으로 키워드 추출
+ 키워드 다양성의 중요성을 보이기 위해 MMR 알고리즘 적용
결과
데이터 셋
Inspec: Computer Science 등 Scientific Paper Abstract
DUC2001: 정치, 경제, 기술 등 뉴스 기사
NUS: full scientific conference papers
데이터 셋 통계

Avg cand: 후보단어의 평균 토큰 수 Avg kp: 문서당 평균 keyphrases(label, golden key) 수
Missing kp in doc: keyphrases 중 문서에 포함되어 있지 않은 비율
비교 평가
1. 길이가 긴 문서인 NUS 제외 SOTA
2. MMR 알고리즘 적용한 결과 F1 스코어가 더 낮았지만 Human Evaluation에서는 더 좋은 평가를 받음
EmbedRank에 대해서 간략히 정리해 보았고 다음은 제가 생각하는 모델의 의의, 장점, 한계 등에 대해 이야기 해보겠습니다.
장점, 의의
한계, 아쉬운 점(주관)
4. 긴 문서에서 position을 고려해 성능을 올렸지만, 그래프 기반보다 낮은 성능
local-context을 잘 고려하지 못한다는 단점 때문에 길이가 긴 문서에서 성능이 떨어진다는 단점이 있고, 이를 완화하기 위해서 local-context를 고려한 JointGL, AttentionRank 등장
JointGL
연구 목적: 기존 임베딩 기반 모델은 문서에 존재하는 여러 local-context 잡기 어렵> local topic 키워드 못 뽑아낸다는 한계가 있다. 이를 완화하기 위해 Global, local context 고려해 키워드를 뽑아내자

방법론
저자는 위 그림과 같이 골든 키워드(label)가 기존 EmbedRank가 뽑아낸 문서와의 유사도가 높은 단어들의 일부에 더해서 local-topic을 형성하는 단어들 중 중요한 단어도 골든 키워드라고 주장했습니다.(이에 대한 타당한 근거(실험)가 없어 아쉬움)
이를 보이기 위해 기존 단계는 EmbedRank와 동일하지만(문서-단어 유사도) 각 후보단어의 local 중요성을 계산하기위해 Centrality 계산을 추가로 진행하였습니다. 계산 과정은 다음과 같습니다.

설명하자면

그런데 여기서 기준이 되는 후보단어와 유사도가 낮은 단어를 제외하고(즉 noise를 제거) Centrality를 계산하기 위해 다음과 같은 임계값을 도입하였습니다.


전 이 계산 공식에서 오히려 local-topic 키워드를 뽑아내지 못한다고 생각을 했습니다. 기존 임베딩 기반 방법은 사전학습 언어모델이 문서의 global-context만을 반영해, 문서 내 빈도수가 높거나 비슷한 의미를 가진 단어들을 키워드로 뽑아냈습니다. 즉 저자가 제시한 그림에서 문서 임베딩 주변에 나타나는 단어들은 거의 다 비슷한 의미를 가진 단어들 입니다. 이런 단어를 좀 제외하고 local-topic을 반영한 키워드를 뽑기 위해서 Centrality를 도입했지만, 이 Centrality 계산 과정을 보면 특정 후보단어를 기준으로 그 단어와 비슷한 의미를 가진 후보 단어들이 많을수록 Centrality가 높습니다. 즉 문서 임베딩과 유사도가 높은 단어들의 Centrality가 높고, 소규모 단어들로 구성된 local-topic 단어들은 Centrality가 작아서 효과적으로 local topic에서 중요한 단어를 뽑아내지 못합니다.
결과
3개의 데이터 셋 중 두개의 데이터 셋에서 SOTA
하지만 3개의 데이터 셋 모두 첫 문장이나 마지막 문장에 골든 키워드가 많이 분포해 있어서 position 스코어를 적용해 좋은 결과를 얻은 것일수도 있음.
한계, 아쉬운 점(주관)

Accumulated Self-Attention 경우 attention matrix를 이용해 received attention value를 이용해 계산합니다.
결과
문서의 길이가 짧은 Inspec에선 임베딩 기반 방법인 SIFRank가, 길이가 긴 문서인 SemEval2010에선 SOTA
긴 문서에서 d=1가 좋은 성능을 내 Accumulated Self-Attention의 중요성 강조
한계
Accumulated Self-Attention 계산 시 후보단어의 길이가 길수록, 문서 내 빈도수가 높을수록 attention 값이 높을 수 밖에 없습니다. 저자도 이에 대해서 빈도수가 높은 단어가 더 높은 어텐션 값을 가지는 경향이 있다고 합니다.
예로 긴 문서 데이터 셋인 SemEval2010에서 d=1로 설정하여 Accumulated Self-Attention만 이용한게 성능이 가장 좋다고 주장했습니다. 저자는 이 이유로 기존 임베딩 기반이 긴 문서에서 효과적인 임베딩이 불가하다고 했습니다. 하지만 Accumulated Self-Attention value는 문서에서 자주 나타나는 단어들에 높은 값을 부여해 긴 문서에서 반복성이 높은 단어들을 뽑아내 성능이 좋다고 주장합니다. 반대로 짧은 문서에서는 특정 단어의 반복성이 거의 없어 d=0.3, 0.5 정도로 설정한 경우(즉, 기존 임베딩 기반 문서-단어 유사도를 더 많이 이용)가 성능이 좋다고 주장했습니다.
정리하자면 긴 문서에서 local-context를 신경썼다기 보다는 단순히 빈도수가 높은 단어를 뽑아냈고, 이런 단어가 키워드일 가능성이 높아 성능이 좋게 나왔다고 생각합니다. 즉 문서에 대해 global 관점에서의 키워드를 뽑아낸 것이지 local-topic 관련 키워드는 뽑아내지 못했다 생각합니다.
결론
기존 임베딩 기반 모델인 EmbedRank의 한계인 local-context 고려 문제를 해결하기 위한 모델인 JointGL과 추가로 AttentionRank를 살펴보았습니다. local-context를 고려하기 위한 획기적인 논문이라 생각하고, 아이디어가 정말 대단하다고 생각합니다. 하지만 제가 생각하기에 약간의 아쉬움이 있어 위에서 이에 대해 다루었습니다. 사실 아직 지식이 부족해서 제가 잘못 생각하고 있는지도 모릅니다. 그래서 이를 확인하고, 더 깊은 이해를 위해 여러분과 의견을 나누고 싶어 글을 작성하게 되었습니다. 자유롭게 댓글 달아주신다면 감사하겠습니다!