2018년 12월 21일
TF-IDF (Term Frequency – Inverse Document Frequency)
I. 검색엔진 스코어 알고리즘, TF-IDF
가. TF-IDF(Term Frequency – Inverse Document Frequency) 개념
핵심어 추출 및 검색 결과 순위 결정을 위해 단어의 특정 문서 내 중요도를 산출하는 통계적 가중치 알고리즘
나. TF와 IDF의 개념
TF(Term Frequency) | IDF(Inverse Document Frecuency) |
---|---|
– 단어의 문서 내 등장빈도 – 고빈도 출현시 중요도 높음 | – 문서 빈도수(DF)의 역수값 – DF 높을수록 흔한 단어 |
– 단어 중요도는 TF에 비례, DF에 반비례하므로 TF x IDF에 비례
II. TF-IDF의 단어 중요도 산출기법
– 문서: d, 단어: t, 전체 문서집합: D, 단어 빈도 계산함수: f(t,d)
구분 | 산출기법 | 산출식과 설명 |
---|---|---|
TF 산출 | 불린 빈도 | – // 문서: d, 단어: t – t가 d에 등장 시 1, 아니면 0 |
로그스케일 빈도 | – tf(t, d) = log(f(t, d) + 1) – TF 값 발산 방지위해 log사용 | |
증가 빈도 | – tf(t, d) = 0.5 + {0.5 x f(t, d)} / max{f(t’, d):t’ ∈ d} – 문서 길이에 따라 단어 빈도조절 | |
IDF 산출 | 역문서 빈도 | – idf(t, D) = log[|D| / {1 + (d ∈ D:t ∈ d)}] – log문서크기/단어t가 포함된 문서 |
TF-IDF 산출 | – tfidf(t, d, D) = tf(t ,d) x idf(t, D) |
– TF-IDF는 짧은 필드에서 Score 증가 현상 발생하며, BM25 등 필드 길이 자동 조절 알고리즘 사용 가능
III. TF-IDF의 유사도 측정 기법
기법 | 설명 |
---|---|
코사인 유사도 | – 두 벡터를 단위벡터화 – 내적 하여 측정 – 각도 기반 유사도 측정 |
유클리드 유사도 | – 평면 상 거리 계산 – 두 단어 간 거리 측정 – 0에 가까울수록 유사 |
맨해튼 유사도 | – 유클리드 거리척도와 유사 – 대각선 없이 직각이동 – 유클리드 보다 낮은 품질 |
삼각(TS) 유사도 | – A, B와 원점 간 삼각면적 – 삼각형 넓이 기반 측정 – 0에 가까울수록 유사 |
부채꼴(SS) 유사도 | – 유클리드 거리와 벡터사용 – 부채꼴 넓이 유사도 측정 |
TS-SS 유사도 | – 삼각 + 부채꼴 기반 측정 – 큰 규모 데이터 높은 성능 |
IV. TF-IDF의 한계점 및 고려사항
한계점 | 고려사항 |
---|---|
– 큰 어휘 검색 시 성능 감소 – ‘The’ 등 일반단어 영향존재 – 짧은 필드에서 Score 증가 | – BM25 알고리즘 사용 – TF의 영향을 제한 – 필드 길이 자동 조절 |
– 위 한계로 인해 아파치 루씬 정보 검색 라이브러리에서 검색 알고리즘을 TF-IDF에서 BM25로 변경