728x90
Fastcampus 추천시스템 구현하는 방법을 공부하면서 컨텐츠기반 추천알고리즘의 대표적인
TF-IDF(Term Frequency - Inverse Document Frequency) 추천알고리즘에 대해 정리해보도록 하겠습니다.
TF-IDF는 단어의 빈도와 문서의 빈도에 특정 식을 취하여 DTM(문서 단어 행렬) 내의 각 단어들마다 중요한 정도를
가중치로 주는 방법입니다. 우선 DTM을 만든 후, TF-IDF 가중치를 부여합니다.
1. Vector Representation
- m개의 review 문서가 있다고 가정
- review 문서 전체에 등장하는 단어의 수는 n개
- 각 항목은 해당 단어가 review에 등장하는 빈도수를 의미
- (Review 1, Word0) = 2 → Review 1에 Word 0은 2번 등장
2. Term Vector Representation
- Term Weight
- $(i, j)$ = weight
- Term Frequency Vector : 단어의 빈도수로 벡터를 나타냄. 문서 i에서의 단어 j의 중요도
- TF-IDF 특징
- 흔하게 등장하는 단어는 중요하지 않은 단어
- Information Retrieval에서 많이 사용하는 개념
- 각 단어에 가중치를 부여해서 Keyword extraction 등에 활용
- 문서에서 특정 단어가 등장하는 것을 바탕으로 문서끼리 관련있음을 표현할 수 있음
3. TF-IDF 공식
$$TF-IDF(w,d) = TF(w,d)×IDF(w)$$
- TF : 단어(Word) w가 문서(Document) d에 등장한 빈도수
- DF : 단어(Word) w가 등장한 문서(Document) d의 수
- N : 전체 문서의 수
- $TF(w,d) = \frac{문서내단어w의수}{문서내모든 단어의수}$
- $IDF(w) = log(\frac{전체문서수(N)}{단어w가포함된문서수(DF(w))})$
- if "단어w가 포함된 문서 수 = 전체 문서 수", then TF-IDF(w,d) = 0
- 단어 w의 정보력은 없다
- DF가 큰 단어는 정보력이 적다
- 문서 Corpus(말뭉치)에 모두 포함된 단어는 흔히 등장하는 단어로, 의미가 크지 않음
- 흔하게 등장하는 단어는 유사도 계산에서도 제외
- 대부분 문법적인 역할을 하는 조사, 관사 등이 해당
4. 결론
TF는 해당 단어가 해당 문서에 얼마나 자주 등장하는지 확인하는 것
IDF는 해당 단어가 얼마나 다른 문서에 비해 해당 문서에 자주 등장하는지 확인하는 것
728x90
'머신러닝&딥러닝 > Algorithm' 카테고리의 다른 글
나이브 베이즈(Naive Bayes) (0) | 2022.09.15 |
---|