본문 바로가기
카테고리 없음

추천시스템 기본 개념

by Christine__ 2024. 2. 7.

추천을 잘 하기 위해서는 유저가 무엇을 얼마나 좋아하는지, 그리고 어떤 상품끼리 같이 추천되는 것이 적합한지 알아야 한다.

 

선호도와 평가 preferences and Ratings

 

그 것을 알기 위해 다양한 방법으로 유저의 선호도를 측정한다. 

선호도를 측정하는 방법은 명시적(Explicit)인 방법과 암시적(implicit)인 방법 2가지가 있는데 흔한 예시로 유저가 영화에 매기는 별점이 명시적인 방법이고, 유저의 클릭/구매 가 암시적인 방법이다. 

 

암시적인 방법의 차이는 선호도를 평가하는 게 목적이 아니라는 데 있다. 필요한 물품이라 구매를 하는 것이지, 유저가 진짜 그 상품을 선호한다고는 볼 수 없다는 것이다. 따라서 암시적인 방법으로는 단순히 유저의 선호도를 단정짓기가 어렵다. 

 

반면, 명시적인 방법의 경우 유저의 선호도가 시점에 따라 ( 소비 이전, 직후, 조금 더 지난 이후) 달라질 수 있고, 유저가 자신의 선호를 정확하게 수치화한다고 볼 수 어렵다. 따라서 명시적인 방법과 암시적인 방법 모두 유저의 정확하지 않다(noisy)는 단점을 갖고 있다. 

 

 

예측과 추천 Predictions and Recommendations

 

유저에게 적절한 추천을 하기 위해 2가지의 방법을 사용한다. 예측과 추천이다. 

추천이 추천이지 예측은 뭐지 싶을 수 있다. 하지만 아래 예시를 보면 바로 이해가 간다. 

 

예측의 예시- 92% 일치라는 값을 통해 예측치 제공
추천의 예시- 영화목록을 제공

 

 

첫번째 사진을 보면 92%일치라는 말이 나온다. 이는 유저가 얼마나 좋아할지를 넷플릭스가 예측한 값이다.

두번재 사진을 보면 영화목록들이 줄지어 나온다. 이는 유저가 관심있을 만한 영화를 넷플릭스가 추천한 것이다. 

 

예측의 경우, 별도로 수치화하기 때문에 유저 입장에서 상품을 고를 때, 내가 얼마나 이 영화와 잘 맞을지 예측할 수 있다는 장점이 있다. 상품 목록 사이에서 나름의 우위를 판단할 기준이 된다. 반면, 추천의 경우 선택지를 바로 제공함으로써 유저가 상품풀을 별도로 구성하지 않아도 된다는 장점이 있다. 

 

그러나 예측은 잘못된 정보를 제공할 가능성이 있고 (eg 가십걸이 나의 취향에 70%도 못 미칠 수 있음), 추천은 탐색 자체를 그만두게 해버릴 수도 있다. 추천이 탐색을 그만두게 한다는 예시는 아래 아마존을 예시로 설명해보겠다. 유저 입장에서 헤드폰을 검색했을 때, 자신이 사고 싶은 상품이 한참 스크롤을 내려도 나오지 않는다면, 유저는 굳이 아마존에서 헤드폰을 검색하려 하지 않을 것이다. 즉 잘못된 추천은 탐색을 포기하게 만들 수 있다. 

 

한편, 추천을 제안할 때, 추천을 어느 강도로 보여줄 것인지 정하는 것도 중요하다.

누군가 당신에게 선물을 추천할 때, 내가 본 너는 A상품을 좋아할 가능성이 한 67%이고, B는 한 79%되니까 B를 골라라고 할 때와

그냥 A보다 B는 어때? 라고 할 때를 비교해보자. 

첫번째는 누가봐도 추천한 사람이 나를 분석했다는 게 느껴지는데 상황이나 성향에 따라 반응은 달라질 수 있지만 어쨌든 추천받은 사람 입장에선 너가 나를 어떻게 알아. 라는 말이 나올 수 있다. 반면, 두번째는 어떠한 이유로 그렇게 추천하는지 알 수 없고, 글쎄 하고 지나칠 가능성이 있다. 

 

첫번째든 두번째든 유저 입장에서 명시적으로 추천을 해주길 바랄 때가 있고(매장에서 직원을 찾는 경우), 탐색만 우선 하고 싶을 때(일단 매장을 둘러보는 경우)가 있다. 따라서 적절하게 추천의 강도를 조절해서 노출하는 게 필요하다. 넷플릭스에서 예측값을 영화 상세페이지에서만 제공하는 것도 유저가 상세하게 페이지를 볼 때, 자신의 선호도를 대신 얘기해줬으면 하는 니즈가 있기 때문에 생겨나지 않았을까 싶다. 

 

추천 프레임워크

추천에는 다양한 프레임워크가 있는데 이는 이후 아마존을 분석해보면서 설명할 것이라 간단한 개념들만 설명해보겠다.

 

1. 도메인

추천의 대상이 무엇인가.

- eg. 뉴스(정보), 상품, 팔로잉할 사람/데이트 상대, 음악 재생목록

 

추천의 대상이 무엇인지에 따라 새로운 아이템을 노출하는 게 나을지 과거 상품을 다시 보여주는 게 효과적일지 달라질 수 있다. 책의 경우 이미 산 책보다는 새로운 책을 찾을 가능성이 높고, 식료품의 경우 샀던 걸 다시 살 가능성이 높다.  

 

2. 목적

추천의 목적이 무엇인가

eg. 판매, 정보 제공, 유저의 학습, 커뮤니티 형성

 

유저의 학습의 예시로는 단축키, 커뮤니티 형성으로는 referral web이라는 게 있었는데 목적에 대해서는 다시 한 번 정리가 필요할 것 같다. 

 

3. 추천의 맥락

추천을 받는 유저가 어떠한 상황 속에 있는지. 그 것이 추천에 대한 제약을 어떻게 주는지에 대한 부분이다. 

e.g. 쇼핑, 음악듣기, 다른사람과 약속 추천에 대한 제약: 집중도, 방해의 정도 

 

4. 누구의 의견 (Whose Opinion)

누구의 의견을 바탕으로 추천을 하는지. 이 부분은 추천 알고리즘이 아니라 일반적인 추천의 상황을 떠올리는 것이 적절해보인다. 

어떤 화장품/옷을 추천할 때, 우리는 흔히 인플루언서의 선택을 따르거나 대중들이 선택하는 베스트 상품을 찾는 경우가 많다. 

즉 누구의 선택을 바탕으로 한 추천인지를 고르는 게 이 부분이라고 고려하면 될 것 같다. 

 

e.g. 전문가, 팔로잉하는 사람, 대중

 

5. 개인화 정도

비개인화

인구통계기반 (성연령별 추천 등)

단기적(현재 활동 기반. 방금 검색한 키워드를 검색한 사람들이 많이 구매한 상품)

장기적(장기적인 선호도 기반. 재즈, 아이유 192회 들은 유저 -> 비슷한 속성의 음악을 추천)  

 

6. 사생활보호 & 신뢰가능성

사생활보호 관점에서 추천은 개인의 구매목록 등과 같은 개인정보가 유출될 가능성이 있다. 

반면 신뢰가능성은 추천이 과연 신뢰가능할만한가에 대한 부분이다. 비즈니스 룰에 의해 단가 낮은 상품을 하향 조정한다거나 한 사람이 갑자기 1000개를 구매해버리고 나서 해당 상품이 베스트 아이템이 된다거나 하는 외부적인 조작에 대한 취약성 문제가 있다. 추천의 투명성을 과연 얼마나 가져갈 것인가에 대한 부분은 개인적으로 생각하기에 참 어려운 것 같다. 

 

7. 인터페이스

- 결과물을 어떻게 보여줄 것인가 (예측치? 추천 목록? 필터링?), 추천을 명시적으로 추천인지 드러낼 것인지.  

 

8. 측정값

- 선호도에 대한 측정을 명시적인 방법으로 할 것인지 암묵적인 방법으로 할 것인지(별점 or 노출대비 클릭율)

 

9. 알고리즘 

 - 비개인화

 - 콘텐츠 기반

 - 협업 필터링