7. 콘텐츠 기반 필터링 추천

7장에서는 텍스트 마이닝(Text Mining)이나 정보 검색(Information Retrieval)에서 자주 사용되는 알고리즘 중 하나인 단어 빈도와 역문서 빈도(Term Frequency- Inverse Document Frequency, 이하 TF-IDF)를 사용하는 콘텐츠 기반 필터링(Content based Filtering, 이하 CBF) 추천 기법에 대하여 살펴봅니다. 콘텐츠 기반 필터링 추천은 5장과 6장에서 살펴본 아이템에 대한 사용자의 선호 이력인 평점을 이용하여 평점을 예측하는 협업 필터링과 달리 사용자가 선호하는 아이템의 특징(Feature), 즉 내용(Content)이 유사한 아이템을 추천하는 추천 기법입니다.

콘텐츠 기반 필터링 추천 기법은 사용자의 취향에 따른 콘텐츠를 기반으로 추천하기 때문에 다른 사용자의 선호 이력이 요구되지 않아 협업 필터링의 콜드 스타트(Cold Start)나 데이터 희소성(Data Sparsity) 같은 여러 문제에서 자유로울 수 있고 콘텐츠의 여러 속성을 기반으로 새롭거나 대중적이지 않은 아이템도 추천할 수 있다는 장점이 있지만, 아이템의 콘텐츠 연관성을 기반으로 하기 때문에 사용자가 이미 경험했거나 경험한 것과 유사한 아이템이 주로 추천되는 단점도 있습니다. 이처럼 협업 필터링(Collaborative Filtering)과 콘텐츠 기반 필터링(Content-based Filtering)은 각각의 뚜렷한 장단점을 가지고 있어, 이를 조합하여 상호 보완하는 하이브리드 추천 기법이 많이 사용되고 있습니다.

이번 장에서는 TF-IDF 기반 콘텐츠 기반 필터링 추천을 위한 사용자 프로필을 만들고 프로필 유사도를 계산하는 방법에 대하여 살펴봅니다. 여기에서는 TF-IDF와 콘텐츠 기반 필터링에 관련된 모든 내용을 자세히 다루지는 않습니다. 대신 TF-IDF로 추천하기 위해 필요한 기본적인 개념과 방법을 살펴봅니다. 또한, 예제 데이터를 사용하여 실제로 TF-IDF 콘텐츠 기반 필터링 추천이 이루어지는 일련의 과정을 단계별로 직접 계산해 보고 미리 구현된 Apache Spark와 R 예제 프로그램으로 데이터셋들을 직접 읽어 들여 직접 계산해본 과정과 결과가 맞는지 한번 더 확인해 볼 것입니다.

이번 장을 학습하면 여러분은 다음 개념을 이해할 수 있어야 합니다.

  • 문서 단어 행렬(Document-Term Matrix, 이하 DTM)

  • 단어 빈도(Term Frequency, 이하 TF)

  • 역문서 빈도(Inverse Document Frequency, 이하 IDF)

  • 벡터 정규화(Vector Normalization)

  • 사용자 프로필과 유사도

이번 장을 학습하면 여러분은 다음을 계산할 수 있어야 합니다.

  • TF
  • 문서 빈도(Document Frequency, 이하 DF)와 IDF

  • TF-IDF

  • 벡터 정규화

  • 코사인 유사도

이번 장에서 다루는 내용은 아래와 같습니다.

  • 7.1 “TF-IDF와 콘텐츠 기반 필터링”에서는 TF-IDF와 콘텐츠 기반 필터링에 대한 개념을 개략적으로 살펴봅니다.
  • 7.2 “TF-IDF 기반 아이템 추천”에서는 아이템의 TF-IDF 벡터를 구해보고, 사용자의 TF-IDF 벡터 간의 코사인 유사도를 계산하여 추천하는 방법에 대해 살펴봅니다.
한글:852 영어:352 숫자:16

추천 시스템: 워크북

Comments

Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please follow Rust's code of conduct. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.

Instead of authenticating the giscus application, you can also comment directly on GitHub.