[DS] 컨텐츠 기반 추천 모델(CB)

llunaB·2022년 3월 1일

dataScience

목록 보기
7/7

컨텐츠 기반 추천 모델(Contents Based Filtering)이란?

사용자가 이전에 구매한(시청한) 상품 중에서 (좋아하는 상품들과) 유사한 상품들을 추천하는 방법.

그 유사한 상품은 어떻게 찾는데?

Items 를 벡터 형태로 표현해서 유사한 벡터를 추천하자!

1. 딥러닝 기반을 통해 벡터로 바꾼다.

2. 벡터 간의 유사도를 계산한다.




1. 아이템을 벡터 형태로 어떻게 표현할까?

아이템이 글처럼 텍스트 형태인 경우도 있고, 이미지인 경우도 있고 도메인마다 다르다. 다양한 데이터 도메인을 위해 각기 다른 여러 종류의 CB기술이 필요하다

객관적 특성의 경우

  • 메타 데이터를 적절히 가공한다.

주관적 특성의 경우

1. 텍스트라면?

사용 예시

  • 영화의 메타데이터 정보(줄거리)정보를 통해 유사한 영화를 추천
  • 야구 기사를 읽고 있는 사람에게 류현진의 등판 소식을 알림
  • 다음뉴스, 다음카페, 1boon, 브런치

기술

  • 자연언어처리(Natural Language Processing, NLP[11]) 기술
  • 단어를 실수 벡터(real number vector)로 바꾸는 단어 임베딩(word embedding) 기술 - word2vec 같은 인공 신경망 기법(카카오)
  • 비슷한 주제를 묶는 기술 - 토픽 모델링(topic modeling), 클러스터링(clustering)
    - 토픽 모델링 기술 : 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA) 같은 베이지안 통계 기반 기술

2. 이미지라면?

사용예시

  • 연관 웹툰을 추천할 때 그림체가 비슷한 웹툰을 추천
  • 카카오TV의 섬네일(thumbnail)을 추천에 활용

기술

  • 컨볼루션 신경망(convolutional neural network, CNN)을 사용한 이미지 CB 기술

3. 음악이라면?

사용예시

  • 라디오헤드 음악을 좋아하는 사람에게 라디오헤드와 분위기가 비슷한 콜드플레이 음악을 추천

기술

  • 음악의 파형을 직접 분석할 수 있는 신호처리 기술
  • 스펙트로그램(spectrogram[12]), MFCC(Mel-frequency cepstrum[13]) 등의 신호처리 기술
  • CNN과 AutoEncoder 등의 딥러닝 모델을 사용한 음악 CB 기술

텍스트 데이터 예시

딥러닝 자연어 처리 알고리즘을 통해 벡터 형태로 만든다.

TF-IDF 알고리즘

특정 문서에서 특정 단어가 얼마나 자주 등장하는가?
전체 문서에서 특정 단어가 얼마나 자주 등장하는가?

  • 단어빈도 TF
  • 역문서 빈도 DF

...


2. 벡터 간의 유사도 계산을 위한 코사인 함수

cf. 코사인 함수 외에 유클리드 함수도 있다.

정의

  • 문서 간의 유사도를 계산한다.

  • 문서1과 문서2에 대한 벡터가 존재했을 때, 둘이 얼마나 비슷한 방향을 가지고 있는지 (방향 = 세타)

얼마만큼의 코사인 세타를 가지고 있는가?

세타가 0 => 동일한 방향 => similarity = 1
세타가 90 => similarity = 0
세타가 180 => 정반대 방향 => similarity = -1

장점

  • 벡터의 크기가 중요하지 않은 경우 거리 측정을 위한 메트릭으로 사용한다.
  • 예를 들어 문서 내에서 단어의 빈도수로 찾기 때문에 문서의 길이가 고르지 않더라도 문서 내에서 얼마나 나왔는지라는 비율을 확인하기 때문에 상관없다.

단점

  • 벡터의 크기가 중요한 경우 잘 작동하지 않는다.

컨텐츠 기반 추천 모델 - 제언과 장단점

제언

  • 메타데이터가 잘 구축된 데이터여야 컨텐츠 기반 추천이 효과적이다.
  • 메타데이터가 잘 구축된 데이터가 많지 않기 때문에 협업 필터링과 같이 사용한다.

장점

  • CB 추천은 사용자들의 선호 데이터가 없는 콘텐츠도 추천할 수 있고
  • 내용을 보고 추천을 하기 때문에 생뚱맞은 콘텐츠가 덜 추천된다

단점

  • CF처럼 사용자들의 선호 데이터를 사용하지 않기 때문에 인기 편향 문제에서 자유롭지만, 이로 인해 다소 의외의 상황이 연출되기도 한다.
  • TF-IDF, Word2Vec 등 추천 시스템 모델이 여러개인데 정확도가 상황마다 달라서 비교해봐야 한다.


참고자료
https://brunch.co.kr/@kakao-it/72
https://www.youtube.com/watch?v=3jfHP0Rq1Gg
https://www.youtube.com/watch?v=g2-z0saMteA
https://bab2min.tistory.com/566

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글