사용한 콘텐츠 기반 필터링 방식
1.
TF-IDF 벡터화
•
각 제품의 '첨가제' 정보를 TF-IDF 벡터로 변환
이를 통해 각 제품의 첨가제 정보를 벡터 형태로 표현, 각 첨가제의 중요성을 가중치로 고려
2.
코사인 유사도 계산
•
TF-IDF로 벡터화된 각 제품의 '첨가제' 정보를 사용 → 코사인 유사도(cosine similarity)를 계산
3.
유사한 제품 추천
•
입력한 제품과 다른 제품들 간의 첨가제 유사도를 계산 → 유사도가 높은 순으로 다른 제품들을 추천
, 입력한 제품 자체는 추천에서 제외
콘텐츠 기반 필터링
•
사용자가 소비한 아이템에 대해 아이템의 내용(content)이 비슷
/ 특별한 관계가 있는 다른 아이템을 추천하는 방법
•
아이템의 내용: 아이템을 표현할 수 있는 데이터
◦
아이템 카테고리, 아이템 이름과 같은 텍스트 데이터, 이미지 데이터
•
협업 필터링(Collaborative filtering): 다른 사용자의 아이템 소비 이력 활용
•
아이템이 유사한지 확인 → 아이템의 비슷한 정도(유사도, similarity)를 수치로 계산할 수 있어야 함
◦
유사도 계산 → 아이템을 벡터 형태로 표현, 벡터 간의 유사도 계산 방법
▪
아이템을 벡터 형태로 표현
•
원 핫 인코딩(One-hot encoding)
•
임베딩(Embedding)
원 핫 인코딩(One-hot encoding)
•
아이템의 카테고리와 같은 범주형 데이터(categorical feature)를 표현하는 간단한 방법
•
표현해야 하는 범주의 개수를 크기로 갖는 벡터 만들어 데이터 → 1과 0으로 표현
◦
1과 0 대신 다양한 실숫값 사용하기도 함
▪
텍스트 데이터 → 등장하는 단어를 각각의 범주로 생각, 각 단어의 중요도나 빈도 반영
⇒ TF-IDF 가중치(weight) 계산 → 1 대신에 넣음
임베딩(Embedding)
•
표현해야 하는 데이터 범주의 영역이 넓거나 이미지와 같이 복잡한 데이터인 경우
→ 데이터를 고정된 크기의 벡터로 표현
◦
벡터의 크기 고정 → 다뤄야 하는 데이터 크기 늘어나도 상대적으로 적은 크기 데이터 통해 표현 가능
/ 딥러닝 활용한 텍스트, 이미지 모델 적용 → 좋은 품질의 벡터 얻을 수 있음
•
텍스트 데이터 → Word2Vec 모델
◦
각 단어의 임베딩 벡터 학습,
텍스트에 등장하는 단어의 벡터 합치거나 TF-IDF 가중 합산 하는 방식으로 활용
◦
텍스트에 등장하는 단어의 순서 고려 → CNN, RNN 모델 제안
◦
최근에는 BERT와 같은 대규모 텍스트 모델을 임베딩 모델로 활용하기 위한 연구 등장
•
이미지 데이터 → ImageNet 데이터의 카테고리 분류
→ 미리 학습된 모델 바탕으로 실제 사용할 데이터에 대해 파라미터 미세 조정(Fine-tuning) 수행
→ 분류 레이어(classification layer)의 입력으로 들어가는 보틀넥 피처(Bottleneck feature)를
이미지 임베딩으로 사용하는 방법
◦
인물 사진이나 쇼핑과 같은 일부 도메인
▪
레이어 구조 수정 → 카테고리 분류 대신 유사, 동일성 여부 직접 판별
→ 샴 네트워크(Siamesse network), 삼중항 네트워크(Triplet network) 적용
⇒ 아이템을 벡터 형태로 표현 → 내적(Dot product), 코사인 유사도(Cosine similarity), 피어슨 상관 계수(Pearson correlation coefficient)와 같은 다양한 벡터 유사도 측정 방식 통해 아이템 유사도 측정하는 용도
→ 측정된 유사도 바탕으로 사용자가 최근 소비한 아이템과 유사한 아이템을 추천
콘텐츠 기반 필터링은 아이템 정보만 있으면 추천 가능
→ 소비 이력 없는 새로운 아이템에 대한 추천 가능
But, 충분한 소비 이력이 쌓인 아이템에 대해서는 협업 필터링에 비해 추천 성능이 밀림
⇒ 추천 대상 아이템이 빠르게 바뀌는 상황이나 소비 이력이 적은 아이템에 대해, 협업 필터링을 보완하는 용도로 많이 활용