cs Coursera 강의 리뷰 2 - TFIDF and Content-Based Filtering
본문 바로가기
  • 매일 한걸음씩
  • 매일 한걸음씩
개발/Recommender System

Coursera 강의 리뷰 2 - TFIDF and Content-Based Filtering

by 시몬쯔 2020. 4. 23.
728x90
반응형

<TFIDF weighting (Term Frequency Inverse Document Frequency weighting)>

= Term Frequency * Inverse Document Frequency

 

Term Frequency : 얼마나 자주 그 용어가 document에서 등장했나? 얼마나 그 document와 관련되었나?

Inverse Document Frequency : 얼마나 적은 documents가 이 term을 가지고 있나? 

-> 이 term이 많은 documents에서 등장할수록 IDF value는 작아진다. 즉 어느곳에나 등장하는 term에는 관심없고 드문 term에 관심있다. log를 사용해서 함. document의 수가 너무 크기 때문.

 

예 ) "The Civil War"에 대해 찾아본다고 하면, IDF value는 

"The"는 매우 자주 등장하는 Term. log1 = 0으로 수렴. 즉 no weight.

"war"이 1/4로 등장한다고 하면 적당한 weight를 가짐.

"civil"이 1/100로 등장한다고 하면 매우 큰 weight를 가진다.

 

TFIDF를 통해 흔한 term를 강등시킬 수 있다. 즉 끌어내릴 수 있다. 또, 핵심 단어를 부수적인 단어보다 높게 평가할 수 있다.

그러나, 예를 들어 법적인 계약과 같은 상황에서는 core term이 사용되지 않는다.

또, "the Battle of Antietam"을 찾고싶어 civil만 검색창에 쳤다가는 관련없는 결과들이 뜬다. (이는 자동완성과 같은 방법으로 해결가능.)

 

So...어떻게 TFIDF가 Content-Based Filtering에 사용되나?

Content filtering은 말그대로 user의 선호도에 따라 profile을 만드는 것이다. 이 과정에서 TFIDF는 각 term이 얼마나 중요한 지에 대한 척도가 된다. 이를 통해 weighted vector를 얻을 수 있다. 이 vetor는 profile에 사용된다.

 

예를 들어 어떤 사용자가 타이타닉 영화를 좋아한다고 하면 이 영화의 태그 중 하나인, 레오나르도 디카프리오를 사용할 수 있다.

(타이타닉에는 많이 나오지만 다른 대부분의 영화에는 나오지 않는..)

 

대부의 상황에서 Term Frequency는 무시된다. (Boolean값이나 thresholding 사용.)

 

TFIDF 에서 또 고려할 것은,

1. "Computer science"라는 term은 computer 와 science 각각의 term이 들어있는 document에 많다고 할 수 없다.

2.  제목에 civil war가 있는 것과 25번째 문단 어딘가에 civil war가 있는 것은 당연히 중요도가 다르다.

3.  예를 들어 구글에서 pagelink 알고리즘을 이용해 어떤 논문이 좋은지에 대해 평가한다. 즉 우선순위가 있어야 한다.

4.  가장 어려운 것은 함축되어 있는 내용에 대한 파악이다. 만약에 글에서 한번도 핵심 단어에 대해 언급안한다면?

그 웹사이트에 연결된 링크를 통해 예측할 수도 있다.

 

keyword가 주어졌을 때 document를 어떻게 골라낼까?

 

 

728x90
반응형

댓글