안녕하세요 콥스랩(COBS LAB)입니다.
오늘 소개해 드릴 논문은 ‘Back to the Basics:
A Quantitative Analysis of Statistical and Graph-Based Term Weighting Schemes for Keyword Extraction'입니다.
해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임'Back to the Basics'영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/YHxoNhCWtic)
오늘 발표할 논문은 2020년에 emnlp에서 발표된 Back to the Basics: A Quantitative Analysis of Statistical and Graph-Based Term Weighting Schemes for Keyword Extraction입니다.
키워드 추출은 문서에서 연관성이 높은 단어를 추출하는 기법으로 많은 분야에서 사용이 됩니다. 하지만 실용적으로 적용하기에는 아직 많은 문제가 있고 많은 연구자들은 아직도 오래된 TF-idf 같은 기술을 사용합니다.
여러 많은 지도학습과 인공신경 모델이 있지만 조금 더 실용성이 높은 이 논문에서는 초기 비지도학습을 이용한 키워드 추출 분석 모델을 비교해보고자 합니다.
키워드 추출은 문서 안에 여러 개 m개 단어 중에 문서를 대표할 수 있는 n개의 명사를 찾는 것입니다.
보통 키워드 추출 순서는 첫 번째로 문서를 대표할 수 있는 단어 후보군을 선정하고 그 단어들의 중요도를 계산하고 그렇게 계산한 점수를 순위를 매겨서 n번째 순위에 단어를 추출하는 방식으로 진행합니다.
보통 이 점수를 계산하는 방법은 통계적 방법이 있고 그래프 기반 또는 지도학습 비지도학습 방법 등에 많은 연구가 진행되고 있습니다.
통계적 기법은 단어 레벨에서 단어의 빈도 또는 길이와 같은 통계적 기법을 사용해서 단어의 중요도를 계산하는 방법입니다.
가장 간단한 키워드 추출 방식은 Term Frequency로 단어의 빈도수를 사용하는 방법입니다. 하지만 이 방법은 전치사와 같은 단어가
상대적으로 많이 나오는 단어가 실제적으로 중요한 단어보다 더 중요하게 여겨질 수가 있어서 대체하는 방식으로는 TF-idf 또는
lexical specificity라는 모델이 있습니다.
TF-idf는 가장 유명하고 효과적인 통계적 키워드 추출 모델입니다. 주어진 문서 군에서 각 문서와 그 문서 안에 단어를
d와 w라고 했을 때 각 문서에서 나오는 단어의 중요도는 문서 안에 전체 문서의 개수와 각 문서에 나오는 단어의 개수를 나눠주는 값에
로그를 취해주는 값을 idf라고 해서 idf 값을 곱해주는 방식으로 TF-idf를 계산합니다.
TF-idf를 응용한 키워드 추출 모델로는 KP-minor, RAKE, YAKE 등의 모델이 있습니다.
KP-minor 모델은 TF-idf 점수와 단어 길이, 문장에서 단어의 위치를 고려하고 RAKE는 단어의 빈도수와 단어들이 동시에 나타났을 때 개수를 단어의 빈도수로 나눠주는 것으로 사용합니다. 상대적으로 최근에 등장한 YAKE 같은 모델 경우에는 문장의 위치 단어와 문장의 빈도 그리고 단어 또는 문장에 분산 같은 다양한 통계적 피처를 고려한 모델입니다.
하지만 이 논문에서는 TF와 TF-idf 모델만 고려를 하고 있습니다.
그다음으로 통계적 모델은 lexical specificity라는 모델입니다.
이 모델은 큰 문서에 집합군을 참조해서 작은 문서의 집합군의 중요한 단어를 찾아내는 통계적 기법입니다.
초기하 분포를 사용해서 중요한 대표 단어를 추출합니다. 초기하 분포란 총 n개에서 작은 n번의 단어를 추출했을 때 n번의 단어 중 안에 원하는 k개 단어가 뽑힐 확률입니다. 키워드 추출에서 K라는 것은 키워드를 의미하고 n은 문서의 집합을 의미합니다.
전체적인 문서에 집합에서 조그만 문서의 집합을 추출했을 때 그 안에 원하는 키워드가 있을 확률을 초기하 분포로 표현해서 키워드를 뽑아냅니다. 이 방법은 TF-idf 만큼 널리 사용되지는 않지만 비슷한 단어 추출이나 개체명에 가중치를 추가해 주는 모델등의 다양한 논문에서 적용이 되고 있습니다.
통계적 기반이 아닌 그래프 방법에 기본적인 아이디어는 텍스트 문서 안의 단어들을 노드로 설정하고 그 단어들과 단어들 사이의 edge값을 다양하게 적용해서 단어들 사이에 연관이 높은 단어를 추출하는 아이디어를 가진 모델입니다.
이 기본적인 모델은 Markov chain을 기본으로 합니다. 특정한 상태 확률은 과거의 상태를 의존한다는 수학적 계산으로 특정 단어 j가 등장할 확률은 특정 단어 i와 j의 가중치 단어를 단어 i가 나오는 확률에 가중치에 나눈 값을 의미합니다.
그래서 이 모델 중에 가장 대표적인 모델은 TextRank가 있습니다.
TextRank는 방향성이 없는 그래프를 사용해서 단어와 단어 사이의 연결성이 있을 때 edge 값을 1, 단어와 단어 사이에 연결성이 없으면 0을 설정한 그래프 모델입니다.
또 Single Rank는 이런 TextRank 모델을 확장해서 단어와 단어 사이에 연결성같이 단어와 단어 사이가 같이 등장했을 경우에 1이 아니라 그 단어가 몇 번이나 같이 등장했는가를 횟수로 Edge를 설정했습니다.
ExpandRank는 앞서 말한 TF-idf 값에 cosine을 계산하고 cosine의 가중치를 곱해주는 방식을 사용합니다.
앞서 설명드린 통계적 모델과 그래프 모델들을 비교하는 분석을 진행했습니다.
15개의 영문 데이터를 사용했는데 각 데이터에는 그 데이터 안에 문서들과 그 문서 내에 중요한 키워드 셋이 포함되어 있습니다.
중요한 키워드 셋은 Gold keyword라고 해서 이 문장 안에 속해 있는 단어들로만 이루어질 수 있도록 필터링을 진행했습니다.
학습에 앞서서 전처리를 진행했습니다. 전처리는 세그토크라는 라이브러리를 이용해서 문장을 쪼개고 단어를 tokenizing을 진행했습니다.
그리고 NLTK를 가지고 stemmization을 진행했는데 cars 같은 복수형 단어를 car 같은 singular 같은 단어로 대체해 주는 이런 방식으로 stemmize를 진행했습니다.
그리고 형용사가 앞에 붙은 단어를 찾습니다. 예를 들어 best friend 같은 경우 best는 형용사이고 그 뒤에 명사가 붙을 경우에 best friend라는 형용사가 앞에 붙는 단어 + 명사로 고려해 주었습니다.
그리고 YAKE 모델에서 가져온 stop word list를 가져와서 제거해 줬습니다.
그래서 비교한 통계 모델로는 TF 모델, TF-idf 모델 그리고 LexSpec 모델을 사용했습니다.
그리고 heuristic 한 모델로 문서 안에서 처음 등장한 n개의 키워드를 하는 First n 모델을 heuristic 모델로 사용했습니다.
그리고 그래프 모델로서는 TextRank, SIngleRank, Position Rank, SingleTPR, Topic Rank 이렇게 다섯 개의 그래프 모델들을 사용했습니다.
Graph base-model은 NetworkX라는 라이브러리로 단어 그래프를 생성해서 만들어 주었고 Grapg-base 모델과 statistic을 합친 하이브리드 모델로는 TF-idfRank와 TFLexRank라는 모델을 사용했습니다.
결과적으로는 P@5 매트릭과 MRR이라는 메트릭을 사용해서 어떤 모델이 더 나은 모델인지 성능을 비교했습니다.
P@5 모델은 평균 다섯 개의 문서에서 해당 모델에 평균 정확률이 어떻게 되는지 확인하는 것이고 MRR 모델은 내가 원하는 키워드가
이 분석 기법에서 찾은 키워드에서 몇 번째 순위가 있는지 확인하고 이 순서가 앞에 있을수록 좋은 모델이므로 키워드의 위치를 역순으로 하는 방법으로 평가를 하는 metric입니다.
P@5에서는 하이브리드 모델인 TF-idf Rank가 가장 높은 정확도로 가지고 MRR에서는 역시 하이브리드 모델이 LexRank 모델과 TF-idf 모델이 가장 높은 정확도를 가졌습니다.
기본적으로 하이브리드 모델이 모든 메트릭과 데이터에서 높은 정확도로 가졌고 통계 기법인 LexSpec과 TF-idf는 MRR 메트릭일 때
높은 성능을 가졌습니다.
LexSpec과 TF-idf 모델은 간단한 모델임에도 불구하고 효율적인 키워도 추출이 가능했지만 LexSpec 모델이 TF-idf 보다 약간 더 높은 정확도를 가지고 있다는 걸 확인할 수 있습니다. 하지만 모든 데이터에는 적용이 되지 않고 따라서 어느 데이터에 어느 모델이 더 적합한지 분석을 진행해 보았습니다.
이 분석 기법으로는 Mean Precision Analysis입니다. 앞서 말씀드린 P@5 모델과 MRR 메트릭으로 키워드 추출에 대한 평가를 진행했습니다. 이 두 개의 메트릭에서 TF-idf 랭크가 가장 높은 성능을 보였습니다.
Wilcoxon rank라는 모델을 사용해서 여러 개의 메트릭에서 균일하게 높은 성능을 가지는 모델을 더 나은 모델이라고 평가합니다.
이렇게 평가를 내렸을 때 나온 성능의 순서는 첫 번째로 TF- idf Rank, 두 번째는 LexRank, & LexSpec, 세 번째는 SingleRank와 TF-idf, 네 번째는 Position Rank, TopicRank, 여섯 번째는 FirstN 그리고 7번째 SingleTPR 마지막으로 TF으로 성능의 순서를 가졌습니다.
다음은 Regression Analysis를 통해서 어떤 데이터에 어떤 모델이 더 적합한지 알아보았습니다. 각 데이터에 어떤 단어가 많은지 데이터에 따라서 키워드에 어떤 단어가 평균적으로 많은지 또는 어떤 단어가 평균적으로 분산이 많은지 어떤 문장에 어떤 데이터에 유니크한 토큰 개수가 많은지 이런 다양한 데이터로 분류를 해서 각 매트릭별로 비교하려고자하는 분석 모델의 평균점수를 구했습니다.
또 비교하려고자하는 다른 모델의 평균 점수를 avg_score이라고 구해서 그 두 갯값을 빼줬을 때 양수가 나왔을 때는 첫 번째 분석 모델이 더 나온 걸로 판단하고 음수의 값이 나왔을 때는 두 번째 모델이 더 나은 것으로 평가하는 방식으로 평가를 진행했습니다.
그래서 이렇게 나온 모델로 첫 번째는 통계 모델을 비교해 봤습니다. LexSpec 모델과 TF-idf 이렇게 두 개 통계 모델을 비교하는 분석을 진행해 봤을 때 평균적으로 두 개 모두 비슷한 성능을 가집니다.
하지만 LexSpec가 약간은 더 나은 성능을 가진다고 합니다. 하지만 TF-idf 가 그렇다고 나쁜 건 아니고 특정 데이터에서 더 나은 결과를 가졌습니다. P@5 평가 메트릭에서는 단어에 분산 정도가 높을 경우 TF-idf 가 더 나은 성능을 가졌고, LexSpec는 단어의 평균개수 또는 유니크한 단어의 분산이 높을 경우에 더 나은 성능을 가졌습니다.
이 결과의 의미는 TFIDF는 다양한 단어가 많이 사용된 경우의 나은 결과를 가지고 LexSpec는 문서의 길이가 길거나 어휘가 다양할수록 더 높은 성능을 가진 다는 것을 의미합니다.
하지만 MRR의 경우 LexSpec는 다른 결과를 가졌습니다.
noun phrase. 명사의 개수가 평균 개수보다 평균개수가 많을 경우에 즉, 키워드의 다양성이 많을 경우에 높은 성능을 가졌고 TF-idf는 길고 어휘가 다양한 문서에서 성능이 좋게 나온다는 것을 알 수 있었습니다.
그리고 LexSpec는 통계적 특성을 기반으로 확률을 추출하고 TF-idf 랑 다르게 문서를 쪼개지 않아도 사용이 가능하다는 장점이 있습니다. 그래서 통계적 입장으로 LexRank가 문서의 길이에 큰 영향을 받지 않고 키워드 추출이 가능하다고 합니다.
하지만 TF-idf는 특정한 상황에서 조정이 가능하고 더 적합하게 만들 수 있는 모델로 general 한 상황에서는 LexSpec 모델이 좋지만 특정한 상황에서는 TF-idf 모델이 더 나은 것을 알 수 있었습니다.
다음 비교한 모델은 Graph base model로 SingleRank 모델과 Topic Rank 모델을 비교해 봤습니다.
2개의 성능을 비교했을 때 P@5 매트릭에서는 두 개 모두 비슷한 성능을 가졌지만 MRR에서는 SingleRank가 훨씬 더 나은 성능을 가졌습니다.
하지만 그렇다고 해서 Topic Rank가 나쁜 모델은 아니고 Topic Rank는 단어의 개수가 많고 어휘가 더 풍부한 데이터에 적용하기 좋고
SingleRank는 여러 단어의 조합, 다양한 명사의 형태 개수가 많고 또 키워드의 분산이 많고 키워드의 개수가 많은 문서에 좋은 것으로 판단할 수 있었습니다.
마지막으로는 통계 모델과 그래프 기반의 모델을 비교했을 때 P@5 점수에서는 SingleRank가 높은 평균을 가진 반면에 MRR에서는 통계적 모델이 더 나은 결과를 가졌습니다. 그중에서도 LexRank가 가장 높은 점수를 같이 가졌습니다.
하지만 평균적으로 모든 문서에서 상위권 점수를 얻은 건 TF-idf 하이브리드 모델인 TF-idf Rank 모델로 통계적 방식도, 그래프 방식도
모두 적용한 것이 더 안정적으로 사용될 수 있는 바를 시사합니다.
그래프 방법은 전반적으로 일관된 키워드를 추출할 수 있습니다.
SingleRank는 안정적으로 평균적으로 많은 명사의 조합이 있을 때 그리고 단어의 분산도가 많을 때 키워드 종류가 많은 경우에 높은 성능을 가집니다. 이 그래프 기반에 SingleRank는 문서의 다양한 단어가 많이 나오고 중요한 키워드가 여러 개가 배치되어 있고 그리고 어휘가 풍부한 문서일수록 효과가 뛰어납니다.
이렇게 큰 스케일의 비지도 키워드 추출 분석 모델들을 비교했습니다. term frequency를 사용하는 통계 모델들과 그래프를 사용하는 모델들을 비교해 봤습니다. 이 논문에서 얻은 결과는 많이 사용되는 TF-idf 모델보다 덜 사용되는 Lexical 모델이 더 나은 성능을 가지고 Graph-based model 같은 경우에는 문서의 종류별로 다양한 성능을 가진다는 것을 알 수 있었습니다.
댓글