수많은 상품, 콘텐츠, 서비스들이 생겨나면서 정보가 폭증함에 따라 나에게 딱 맞는 것을 찾는 일이 쉽지 않아졌다. 내가 원하는 것을 찾고 얻기 위해서는 많은 비용이 든다. 이러한 상황에서 사용자들이 필요로하는 정보를 쉽게 효과적으로 찾을 수 있도록 도와주는 기술과 방법론을 다루는 분야가 바로 '정보 필터링'이다. 정보 필터링의 대표적인 분야는 두 가지가 있다.
1. 검색
- 사용자가 입력한 검색어(쿼리)에 맞는 정보를 데이터베이스에서 찾아 제공하는 시스템
- 사용자가 명확한 요구를 갖고 검색어로 입력하면 검색어와의 매칭 정도에 따라 정보를 제공한다. ⇒ active(능동적)
2. 추천
- 사용자의 과거 행동, 선호도, 다른 사용자와의 유사성을 분석하여 사용자에게 맞춤형 정보를 제공하는 시스템
- 사용자가 명시적으로 검색어를 입력하지 않아도 사용자에게 유용할 것으로 예상되는 정보를 제안한다. ⇒ passive(수동적)
이 중에서 추천에 대해서 알아보고자 한다.
다양한 기준으로 추천 분류하기
by 추천 아이템
1. 상품 추천 (패션, 음식 등)
2. 콘텐츠 추천 (음악, 영화/영상, 뉴스/기사, 책/글, 강의 등)
3. 장소 추천 (맛집/카페, 여행지/숙소, 경로 등)
4. 소셜 추천 (친구, 커뮤니티, SNS게시물 등)
5. 서비스 추천 (금융상품, 요금제상품, 여행상품 등)
by 사용자 행동의 시점 및 시나리오
1. 현재 맥락 기반하여 연관된 아이템 추천
: 현재 소비중인 아이템과 연관된 아이템을 추천 (현재 보고있는 상품 페이지에서 -> 동일 카테고리의 다른 상품 추천, 다른 고객이 함께 본 상품 추천, 해당 상품을 구매하면서 함께 구매한 상품 추천)
2. 개인화 기반 아이템 추천
: 현재 소비중인 아이템이 없더라도 사용자의 과거 행동 데이터 및 개인의 관심사를 찾아 사용자 프로필을 기반으로 소비할 만한 아이템을 추천 (SNS에서 첫 화면 탐색 피드 큐레이션, 음악 스트리밍 서비스에서 사용자의 기존 청취 패턴을 바탕으로 매주 새로운 맞춤형 플레이리스트 제공)
by 피드백 유형
1. 명시적 피드백을 사용한 추천 (직접적인 정보)
: 사용자가 직접 선호도 및 평가에 대해서 명시한 데이터를 사용하여 추천 (평점, 리뷰, 좋아요/싫어요 버튼 등)
2. 암시적 피드백을 사용한 추천 (간접적인 정보)
: 사용자가 직접 선호도 및 평가에 대해서 명시하지 않았지만, 사용자의 행동을 통해 추론할 수 있는 데이터를 사용하여 추천 (클릭, 조회 수, 구매 기록, 참여 시간 등)
by 데이터 업데이트 주기
1. 오프라인 추천 시스템 (정적)
: 특정 시점의 데이터를 사용해 추천 결과를 계산하는 방식 (단점: 취향이나 소비하는 상품/컨텐츠가 계속 바뀔텐데, 변화하는 데이터를 반영하지 못하고 계속 똑같은 것만 추천해줄 수 있다)
2. 온라인 추천 시스템 (동적)
: 지속적으로 사용자의 데이터를 받아 추천 결과를 업데이트 하는 방식 (장점: 최신의 데이터를 반영하여 추천해줄 수 있다는 장점이 있다)
추천 알고리즘
1. Collaborative Filtering (협업 필터링)
유저-아이템 간 상호 작용 데이터를 활용하여 사용자에게 맞춤형 추천을 제공하는 기술. 협업필터링은 비슷한 취향을 가진 사용자들은 유사한 아이템을 좋아할 것이다. 라는 가정을 바탕으로 작동된다. 예를 들어 A 노래를 들었던 사용자 10명 중에서 8명이 B노래를 들었다면, B노래를 듣지 않는 나머지 2명에게 B노래를 추천해주는 것이다. 추천에서 가장 많이 사용되는 기술 중 하나이다.
[분류]
1. Memory-Based (User-Based / Item-Based)
2. Model-Based
🔎 협업 필터링의 한계 ⇒ 콜드 스타트 문제에 민감하다.
콜드스타트 문제는 추천 시스템에서 새로운 사용자나 아이템에 대한 데이터가 부족하여 초기 추천을 정확하게 제공하기 어려운 상황을 의미한다. Collaborative Filtering은 제품에 대한 유저의 선호도나 평가 등 다양한 데이터에 의존하여 추천하는 방식이므로 콜드 스타트 상황에서 해당 방식을 적용할 경우 적절하지 못한 추천을 할 가능성이 높다.
2. Content-based Filtering (콘텐츠 기반 필터링)
사용자가 과거에 좋아했던 아이템의 특성을 분석하여, 유사한 특성을 가진 아이템을 추천하는 기술. 즉, 아이템 자체의 내적 특성(예: 장르, 키워드, 태그 등)을 활용하여 추천을 제공한다. 예를 들어 사용자가 SF 영화를 자주 시청했다면 또 다른 SF 영화를 추천해준다던지, 사용자가 특정 카테고리 상품을 구매했다면 같은 카테고리의 다른 상품을 추천해주는 것이다. 사용자가 좋아할 만한 아이템의 특성을 분석하여 유사한 아이템을 추천한다.
3. Knowledge-based Filtering (지식 기반 필터링)
사용자와 아이템에 대한 도메인 지식과 명시적인 규칙을 기반으로 추천을 제공하는 기술. 쉽게 말해서, 사용자가 구체적인 조건을 제시하면, 그 조건에 맞는 항목을 찾아 추천해주는 시스템이다. 사용자의 명시적인 요구나 선호도를 반영하여 추천을 제공하기 때문에, 주로 복잡한 도메인이나 명확한 사용자 요구 정의가 필요한 분야 혹은 사용자가 원하는 것에 대해 명확히 알고 있을 때 유용하다.
장점
- 사용자의 요구를 정확히 반영할 수 있다. 예를 들어, "서울에 있는 3억 이하의 3룸 아파트"와 같이 구체적인 조건을 제시하면 그에 맞는 결과를 추천할 수 있다.
- 초기 데이터 필요 없음: 처음 사용자에 대한 정보가 없어도, 사용자의 요구를 바탕으로 추천할 수 있다. (즉, 콜드 스타트 상황에도 사용할 수 있음.)
단점
사용자에게 요구사항에 대해 직접적으로 명시하도록 요청한다. 하지만 모든 사용자가 여러 요구사항에 대해 정확히 명시하지 못할 수도 있고, 본인도 알지 못하는 암묵적인? 내재적인 요구사항이 있을 수도 있는데 이런 것들이 표현되지 못한다. 사용자의 암묵적인 선호도를 반영하는데 제한적. 따라서, 지식 기반 추천시스템은 interactive feedback(상호작용 피드백)을 사용하여 요구사항을 정확하게 파악할 필요가 있다. .
어디에 사용하면 좋을까?
부동산, 자동차, 관광, 금융 상품, 명품 등 처럼 사용자 입장에서 자주 구매하지 않는 분야에서 유용하다. 왜냐하면 이렇게 자주 구매하지 않는 상품의 경우 평가나 평점에 대한 정보가 부족하기 때문에 다른 추천 시스템 알고리즘을 적용하기 어렵다. 또한 이러한 상품들은 도메인 지식이 복잡하기 때문에, 사용자의 명시적인 요구를 반영하여 보다 정확한 추천을 제공할 수 있다.
4. Hybrid Recommendation System (하이브리드 추천 시스템)
현업에서는 추천 시스템의 정확도와 유효성을 높이기 위해 다양한 알고리즘을 결합한 추천 로직의 하이브리드 추천 시스템(Hybrid Recommendation System)을 많이 사용한다. 여러 알고리즘을 결합하여 추천 로직을 구성하면, 각각의 단점을 보완하고 장점은 극대화할 수 있다.
앞으로는 각 추천 알고리즘의 특징과 장단점 그리고 어떻게 적용하는지에 대해서 자세히 다뤄볼 예정이다.
[참고자료]
https://velog.io/@hyxxnii/Ch-07-2.-Context-Aware-Recommender-System