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로 변경

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^