안녕하세요! 최근 패스트 캠퍼스에서 추천시스템 강의(The RED : 현실 데이터를 활용한 추천시스템 구현)를 듣고 있어 이에 대한 내용을 간략하게 공유하고, 스스로도 정리해보고자 이 포스트를 게시하게 되었습니다.
현재 계속 수강중이며 내용은 계속해서 추가하겠습니다!
이전의 포스트를 나누어 게시한 게시물입니다.
이번 챕터에서는 e-커머스에 주로 사용되는 추천 방법들을 적용해보는 실습과정으로, postgreSQL을 psycopg2를 이용해 Python에 연결해서 사용해봤습니다. 실습내용은 포스트에 포함되지 않았습니다!
e-커머스에서 기본적으로 사용자들의 흐름에 대해 설명해보면
와 같은 흐름으로 이루어 진다고 합니다. 이때 홈, 제품 상세, 장바구니에서 각각의 요건에 따라 다른 추천방식이 적용될 수 있습니다.
각 흐름에 따라 살펴보기 위해 제가 좋아하는 KFC어플을 통해 예를 들어보겠습니다.
즉, 각 단계별로 필요한 요건의 추천을 하여 사용자로 하여금 더욱 많은 상품들을 살펴보고 구매할 수 있도록 합니다.
Hybrid Approach : e-커머스의 경우 대부분 CF를 이용하지만, CBF방법을 결합하여 이용하기도 한다고 합니다.
CF
사용자 메타 정보 (연령, 성별 등) 및 상품 정보를 이용하여 구축
결합 규칙
Display 정책에 따른 추천 시스템 구축
Best 추천은 무조건 많이 팔리거나 이용된 상품들을 추천하기보다 그룹을 설정하여 해당 그룹에 속한 사용자에게는 그룹의 Best 상품을 추천해 줄 수 있습니다.
그룹은 전체, 시간대 별, 브랜드 별, 카테고리 별, 성별에 따른 베스트 등으로 나눌 수 있으며, 구매 베스트, 클릭 베스트 등 여러 기준을 통해 베스트 상품을 산출해 낼 수 있습니다.
시간대 베스트 : 시간대 그룹을 정의 하여(오전, 오후, 저녁 등) 카테고리 마다 별도의 스코어링
온도 그룹 베스트 : 다른 특징을 보이는 온도를 그룹화 하고 이에 따라 별도의 베스트 상품 스코어링
칼로리 베스트 : 제품의 칼로리를 고칼로리, 저칼로리로 그룹화하고 베스트 상품 스코어링
연관 추천의 경우 특정 기준을 정하고 Transaction 데이터를 이용해 아이템 연관성 추출하여 이용합니다.
사용자 기준: 동일 사용자가 같이 본 아이템들은 연관성이 존재
세션 기준: 동일 세션에서 같이 조회한 아이템듫은 연관성 존재
인접 기준: 동일 사용자 로그의 인접한 아이템들은 연관성 존재
즉, 사용자 -> 세션 -> 인접 순으로 다양한 상품을 추천하며, 인접 -> 세션 -> 사용자 순으로 사용자의 의도 등을 더욱 강하게 파악하는 것으로 보입니다.
Co-occurrence :
Conditional Probability :
Cosine Similarity :
카운팅 횟수가 많은 경우 등의 변환을 이용하여 유사도 계산
자주 구매한 상품의 가중치를 낮추기 위해 TF-IDF를 통한 개선 가능
상품의 횟수를 고려하지 않고 구매가 발생되면 1로 계산하는 이진값을 통한 계산 가능
추천 결과가 부족한 경우
연관 추천을 이용한 개인화
유사한 사용자 기반 개인황 (kNN)
사용자 활동 로그를 활용하여 프로파일 생성
연관 추천을 이용할 때, 사용자 에 대한 아이템 의 개인화 추천 스코어링 방법은 다음과 같은 식으로 나타낼 수 있습니다.
: 시간에 따른 weight로 현재와 멀 수록 낮은 값의 가중치를 부여함
: 활동 이력 집합으로 는 아이템 는 시간을 의미
예를 들어, 사용자가 아이템 A을 구매하고 이후에 아이템 B를 구매하였다고 해봅시다!
이때 아이템 A와 B의 연관 추천 세트를 살펴보면
아이템 A 연관 세트
아이템 | 점수 |
---|---|
아이템 C | 0.5 |
아이템 D | 0.45 |
아이템 F | 0.4 |
아이템 B 연관 세트
아이템 | 점수 |
---|---|
아이템 C | 0.5 |
아이템 D | 0.45 |
아이템 G | 0.4 |
여기서 아이템 A를 구매한 시점에 가중치 값을 0.5, 아이템 B를 구매한 시점의 가중치 값을 1이라고 하면,
아이템 | 점수 |
---|---|
아이템 C | 0.75 |
아이템 D | 0.675 |
아이템 G | 0.4 |
아이템 F | 0.2 |
와 같이 개인화 추천 점수를 계산할 수 있습니다!
머신러닝에서 흔히 이용되는 kNN알고리즘과 같이 k명의 유사한 사용자를 찾아 추천하는 것입니다.
kNN 방법에서 사용자 에 대한 아이템 의 스코어는
는 사용자 와 유사한 사용자 집합
사용자를 document로 아이템을 word로 고려하면 TF-IDF 값으로 적용 가능
사용자 간의 유사도 계산에서, 각 사용자의 특성을 나타낼 수 있는 기준 선정
TF-IDF값을 이용한 스코어링
사용자에게 추천할 상품을 생성하기 위한 기준 선정