티스토리 뷰
- 추천시스템이란
- 추천시스템의 제약 사항
- 추천시스템 파이프라인
- 고전 추천 알고리즘의 종류
- 연관 규칙 추천
추천시스템의 개요
추천 시스템?
유저와 아이템의 주변 정보와 상호작용 기록을 바탕으로 유저가 선호할 아이템을 예측하여 유저의 의사결정을 돕는 인공지능 서비스
- User : 서비스를 이용하는 주체
- Item : 서비스에서 판매 / 제공하는 대상 물품
- Interaction / log : 서비스 내에서 유저가 남기는 일련의 행동 기록
→ 유저에게 유관한 정보만을 Filtering 해줌으로써 Information Overload로부터 도움!
→ 추천시스템은 커머스/ 컨텐츠 / POI 등의 어플리케이션에서 널리 사용되며 유저의 리텐션을 확보함으로써 기업의 직간접적인 수익창출에 기여
추천시스템의 한계 및 제약사항
1) 확장 가능성 (Scalability)
- 추천 시스템 특성 상, 운영중인 서비스의 한 파이프라인으로 적용됨
- 서비스의 특성과 자원 상의 제약 등 한계에서 자유로울 수 없음
- 유저와 아이템의 수가 증가함에 따라 확장성의 제약이 크게 증가하나, 정확도를 위해 복잡한 모델만을 사용할 순 없음
2) 도메인 종속성
- 서비스 도메인에 따라 추천 대상이 되는 아이템 특성이 다름
- 도메인 특성에 따라 적용되는 알고리즘과 시스템 구조가 적절히 고안되어야 함!
3) 비즈니스 목표의 다양성
- 비즈니스 목표는 다양하게 존재, 여러 비즈니스 목표가 충돌하는 경우가 발생
ex) CTR vs CVR: 자극적인 주제의 컨텐츠를 추천하면 CTR(클릭률)은 증가하지만 실제 구매로 이어지는 CVR은 감소
CTR vs Diversity : CTR만 고려한다면 인기 컨텐츠만을 추천하면 됨! but, 개인화 or 추천의 다양성을 늘리기 위해서는 CTR을 어느정도 포기해야 함!
4) Cold - Start Problem (feat. Sparsity) ⭐⭐
- 추천 시스템의 고질적 문제
- 신규 user 혹은 아이템에 interaction이 없어 추천 알고리즘의 추론이 잘 작동하지 않는 현상
- 이유1 : 서비스 내에 아이템 수는 대개 한 유저가 소비할 수 있는 양을 훨씬 뛰어 넘음 → interaction이 없는 유저-item 관계가 많이 발생
- 이유2 : 늦게 참여한 user의 경우, 소비한 아이템이 적으므로 interaction에 대한 정보 부족 (cold user)
- 이유3 : Long tail 현상 - 인기 상품이 아닌 대다수의 item의 경우 interaction을 갖지 못 함!
5) No Clear Ground Truth
- 고객 선호의 불분명성 : 유저의 선호도는 주관적이고, 동적임
- 유저 스스로 선호를 불분명하게 인지
- "주니까 본다" : 추천시스템 모델의 판단 자체가 고객 행동에 영향을 미칠 수 있음
추천시스템의 파이프라인
1) 후보 생성 (Candidate Generation) : 무수히 많은 전체 상품 중, 그나마 관련이 있을 것으로 예상되는 일부 후보군을 추려냄 → 수백만개 사이의 연관성 파악은 비효율적이므로! Embedding vector라는 수치형태로!
2) 순위 매기기 (Ranking) : 알고리즘이 적용되는 단계! 추려낸 수백개의 후보군 내에서, 유저와 아이템의 연관성 점수를 상대적으로 더 정밀하고 복잡한 모델로 매김
3) 재정렬 (Reranking) : 순위를 매긴 유저-아이템 쌍 중에 유저와 무관하거나 비즈니스 목적에 맞지 않는 아이템을 제거
→ video feature 등 다양한 부가적인 정보들 반영, 이미 구매한 상품이나 부적절 상품은 걸러낸다!
고전적인 추천 알고리즘
고전적 추천 알고리즘의 종류
1) 인구통계 기반 필터링 (Demographic Filtering) :
- 연령, 나이, 직업 등 인구 통계학적 특성이 유사한 사용자는 선호도와 관심사가 비슷할 것이다라는 가정에서 출발
- 가장 단순한 형태의 feature 기반 필터링, cold - start에 대응 가능하며 해석 가능 but 개인화되지 않으며 고정관념에 기반
2) 인기도 기반 추천 (Popularity Based) :
- 가장 직관적. 상품의 인기도를 기준으로 추천
- 사용자별 정보나 선호도에 의존하지 않으므로, 구현이 쉽고 확장성 뛰어남
- 개인화 x, 필터 버블 / 에코 챔버 등의 문제, interaction이 없는 item은 끝내 추천하지 않는다는 cold start 한계 존재
* filter Bubble : 사용자가 비슷하거나 제한된 정보나 추천에 노출되는 현상, 다양성이 제한됨
3) 지식 기반 추천 (Knowledge Based)
- 전문가의 지식이나, 유저의 입력에 기반한 추천
4) 규칙 기반 추천 ( Rule - Based )
- 사전에 정의된 규칙에 의해 추천을 제공
연관 규칙 추천 ( Association Rule Mining )
기저귀를 샀던 김씨는 맥주도 사던데, 당신도 기저귀를 샀으니 맥주를 사는거 어때요?
: "A를 사면 B도 산다"는 규칙을 찾는 것
조건절(Antecedent) : IF 를 의미
결과절(Consequent) : THEN을 의미
- Item set : 조건절과 결과절을 구성하는 상품의 집합
- 조건절에 들어가 있는 상품과 결과절에 들어가 있는 상품은 상호배반적(disjoint) 이어야 함!
ex) (햇반, 김치) → (맥주, 땅콩) : 가능 | (맥주, 땅콩) → (맥주, 기저귀) : 맥주가 조건절, 결과절에 둘 다 들어가므로 불가능
- 하나의 장바구니로부터 많은 규칙을 만들어낼 수 있음
ex) 기저귀, 맥주, 김치 장바구니
1) 기저귀 구매 - 맥주도 구매
2) 기저귀와 맥주 구매 - 김치도 구매
3) 김치가 구매 - 맥주도 구매
- 장바구니내 상품의 수에 따라 급속도로 증가 → 다양한 성능지표를 적용하여 연산 효율화
연관 규칙 성능 지표
1) 지지도 (Support) : A와 B가 동시에 등장할 확률
: A와 B를 동시에 포함하는 거래수 / 전체 거래수
2) 신뢰도 (Confidence) : A가 장바구니에 있을 때, B가 동시에 등장할 확률
: 조건부 확률! A가 장바구니에 있을 때로 한정시킴!
3) 향상도 (Lift) : 둘이 등장할 확률이 독립이라고 할 때보다 얼마나 더 잘 같이 등장하나
→ 자주 등장하는 아이템에 대한 패널티를 주기 위한 지표
: 서로 독립이면 P(A)P(B)/P(A)P(B)=1이므로 향상도 1, 1보다 높으면 긍정적 관계 낮으면 부정적 관계
4) 레버리지(Leverage) : 이 규칙에서 등장하는 상품들이 얼마나 유의미하게 같이 등장하나
Leverage( A → B) = P(A,B) - P(A) X P(B)
- P(A,B)가 독립일때는 레버리지가 0이 됨!
규칙 생성 알고리즘
Apriori
: 오직 빈번하게 등장하는 아이템 셋에 대해서만 고려하는 방식
- Anti - monotone property 활용 ( ex. 햇반이 20번 나왔는데 (햇반, 김치)가 20번 이상 나올 수는 없음)
- 한 상품 집합의 지지도는 그의 부분집합 지지도를 넘지 못한다는 지지도 수식의 특성을 이용해 불필요한 조합을 배제함으로써 연산량을 줄일 수 있다!
[ 참고 문헌 ]
'RecSys' 카테고리의 다른 글
[RecSys] Sequential Recommendation (0) | 2023.09.24 |
---|---|
[RecSys] 3. Matrix Factorization (0) | 2023.09.17 |
[RecSys] 2. 컨텐츠 기반 필터링과 협업 필터링 (1) | 2023.08.29 |
[RecSys] SASRec Position Embedding Experiments (0) | 2023.07.12 |
[RecSys] SASRec 코드 리뷰 (0) | 2023.07.12 |
- Total
- Today
- Yesterday
- 하이브리드 필터링
- 고전적 추천 알고리즘
- SET문
- SELECT문 안 서브쿼리
- NULL AS
- 추천시스템
- cold-start
- treer구조
- SQL
- 하나의 테이블에 대한 조작
- groupby 다중
- SQL레시피
- NULL인 열 만들어주기
- 알고리즘
- reranker
- 이코테
- 다중 GROUP BY
- llm reranker
- ORDER BY LIMIT
- WHERE절서브쿼리
- WHERE문 집계함수
- SASRec
- Lagrange Multipler
- rag 다중문서 활용
- 서브쿼리
- 여러개 값에 대한 조작
- reranker 속도 개선
- pointwise reranker
- 연관규칙분석
- 숨겨진조건
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |