추천 시스템 개발에 필요한 3가지 스킬
- 비즈니스 문제 해결 능력 : 과제 배경을 이해하고 비즈니스 과제를 정리 및 해결하는 능력
- 추천 시스템을 도입함으로써 무엇을 기대할 수 있는 지 정의하는 것이 중요
- 경우에 따라서는 추천 시스템이 필요하지 않거나 인기순 추천만으로도 충분하기 때문
- 구체적으로는
- 시스템을 도입함으로써 사용자의 어떤 행동 변화를 기대하는가에 관한
- Key Goal Indicator (KGI)
- Key Performance Indicator (KPI) 책정이 매우 중요합니다.
- 사용자의 어떤 행동을 최대화하고 싶은지에 따라 구현할 추천 시스템이 달라집니다. KPI를 책정할 때는 대상 시스템에 관해 숙지하고 서비스상에서의 사용자 행동에 관해 깊이 이해해야합니다.
- KPI를 책정할 때는 현재 얻은 데이터에서 생각하지 말고 사용자 행동의 본질을 담은 지표부터 검토한 후 만약 해당 데이터가 없다면 개발자와 협력하면서 로그를 정비해나가야 합니다.
- 데이터 사이언스 능력 : 정보 처리, 인공 지능, 통계학 등의 정보 과학 계열의 지식을 이해하고 사용하는 능력
- 데이터의 양과 종류, 비즈니스에 필요한 추천 시스템의 구현 복잡도에 따라 다릅니다.
- 한번에 이상적인 추천 시스템을 만드는 것이 아닌 전통적인 방법을 통해
- 얼마만큼의 정확도가 나오는지 확인한 후
- 이상과 현실의 차이가 너무 크지 않은지 검토하여
- 적정 비즈니스 관련 부서와 커뮤니케이션하는 것이 중요합니다.
- 또한 시행 착오 과정에서 데이터의 성질이나 각 추천 알고리즘의 장단점을 파악하는 것이 중요합니다.
- 데이터 엔지니어링 능력 : 데이터 사이언스를 의미 있는 형태로 사용해 구현 및 운용할 수 있는 능력
- 실제 서비스에 조합할 때는 다양한 비즈니스 요건을 고려해 구현하고 시스템을 안정적으로 가동시켜야 합니다.
- 계산이 빠르게 완료되도록 처리를 병렬화하거나 데이터베이스 설계, 튜닝 등을 해야합니다.
- 매일 추천 시스템에 사용되는 데이터를 가공하고 추천 목록 작성 연산을 수행하며 추천 목록을 데이터베이스에 저장하는 일련의 처리(파이프라인)를 조정해야 합니다.
추천 시스템 프로젝트 진행 방법
과제 정의
자사 사이트에 시스템을 도입하고 싶을 때는 비즈니스상의 목적을 명확히 해야 합니다. 예를 들어,
- 1개월 매출을 2배로 늘리고 싶은 경우
- 그것을 한 층 더 잘게 나누어 사용자 1명당 매출을 2배로 할 것인가
- 사용자 수를 2배로 할 것인가 등
- 비즈니스 지표(KPI)를 결정해나갑니다. 그리고 KPI의 목표와 현재의 차이를 확인한 뒤 현재 자사 사이트의 과제를 정리하고 적절한 조치를 검토합니다.
분석
정량적 분석 : 데이터를 사용해 분석을 진행
- 웹 사이트 행동 로그 데이터를 분석함으로써
- '애초에 검색한 내용이 적다'
- '검색하는 사용자는 많지만 최고 검색 결과 페이지에서 이탈하고 만다'
- 같이 현재 상태의 과제를 알 수 있습니다.
한편, '어째서 애초에 검색한 사용자가 적은가', '어째서 최초 검색 결과 페이지에서 이탈하는가'와 같은 이유에 대해서는 데이터로 조사하는 것보다 직접 사용자에게 물어봤을 때 시사점을 알 수 있는 경우가 많습니다.
정성적 방법: 사용자와 인터뷰를 진행하여 분석
- '어떤 단어로 검색하면 좋을지 몰라 도중에 그만둬버렸다'
- '검색 결과 화면에서 각 아이템의 타이틀만 표시되어 아이템을 일일이 클릭해 확인하기 어려웠다' 처럼
- 로그만으로는 알 수 없는 잠재적인 사용자의 심리 상태에 관한 인사이트를 얻을 수 있습니다.
데이터와 사용자 인터뷰를 모두 활용해 현재 상태의 과제 정확도를 높이고 이번 비즈니스 목표를 달성하기 위한 각 과제의 중요도를 결정합니다.
과제 | 중요도 |
어떤 단어로 검색해야 좋을지 모르겠다. | 2 |
검색 결과 화면의 각 아이템 정보가 충분하지 않다. | 3 |
검색 결과 화면에 아이템이 너무 많이 표시되어 원하는 아이템에 도달하기 어렵다. | 4 |
각 아이템의 상세 화면에서 해당 아이템과 비슷한 아이템을 알 수 없다 | 4 |
데이터 분석 및 사용자 인터뷰 결과 다음 두 과제가 중요한 것으로 판별되었다고 가정하겠습니다.
- 너무 많은 아이템이 표시되어 원하는 아이템에 도달하지 못해 이탈률이 높다
- 각 아이템의 상세 화면에서 해당 아이템과 비슷한 아이템을 알 수 없어 이탈률이 높다
가설 수립
다음으로 각 과제를 해결하는 방법과 그것을 실현하기 위한 비용을 검토하고 비용 대비 효과 (Return On Inverstment : ROI)가 높은 이니셔티브부터 실행합니다.
과제 | 대응책 | 중요도 | 비용 | 우선 순위 |
어떤 단어로 검색해야 하는지 알 수 없다. | 단어 제안 기능을 구현한다 | 2 | 보통 | 낮음 |
어떤 단어로 검색해야 하는지 알 수 없다. | 검색 단어의 예를 몇 가지 표시해둔다. | 2 | 작음 | 보통 |
.검색 결과 화면에 아이템의 정보가 충분하지 않다. |
검색 결과 화면에 각 아이템의 정보를 충분히 나타낸다. |
3 | 작음 | 보통 |
검색 결과 화면에 너무 많은 아이템이 표시돼 원하는 아이템에 도달할 수 없다. | 검색 결과를 선호하는 순으로 정렬한다. | 4 | 작음 | 높음 |
각 아이템의 상세 화면에서 그 아이템과 비슷한 아이템을 알 수 없다. |
각 아이템의 상세 화면에 비슷한 아이템을 추천하는 기능을 붙인다. | 5 | 보통~큼 | 보통 |
- 검색 결과에 너무 많은 아이템이 있어 원하는 아이템에 도달할 수 없는 경우
- 인기순이나 가격순으로 정렬할 수 있는 기능을 추가
- 사용자가 원하는 아이템을 쉽게 찾을 수 있어 이탈률 감소
이 경우에는 먼저 검색과 관련된 구현 비용을 낮고 중요도가 높은 과제를 해결한 뒤 추천 시스템을 다루는 것이 효과적입니다. 이처럼 추천 시스템을 도입하는 것 보다 비용이 낮은 다른 방법으로 비즈니스 목표를 해결할 수 있다면 먼저 검토하는 것이 좋습니다.
특히 검색 시스템의 기능을 개선하는 것이 비용 대비 효과가 높은 경우가 많으므로 굳이 추천 시스템을 도입하지 않고 검색 기능을 확장하는 가능성도 포함됩니다.
검색 시스템을 개선한 다음에는 중요한 과제인 각 아이템의 상세 화면에서 비슷한 아이템을 추천하는 기능을 개발합니다.
- 비용 항목이 '보통~큼'인 이유는 유사도 추천이라고 해도 여러 가지 방법이 있기 때문입니다. 따라서 어떤 유사도 분석을 구현할 것인지는 사용자의 필요에 따라 정리해나갑니다.
- ex) 수공예품 판매 사이트
- 어떤 작품에 대해 같은 제작자의 작품을 유사한 작품으로 배열
- 작품의 장르가 같은 것들을 나열
- 음악 스트리밍 사이트
- 곡조가 비슷한 곡을 추천
- 해당 곡이 유행한 시기의 다른 곡들을 추천 등등
- 온라인 쇼핑몰
- '이 상품을 구매한 사람은 다음과 같은 상품도 함께 구매하였습니다' 라는 추천 등등
- ex) 수공예품 판매 사이트
유사도라고 해도 아이템에 따라 여러 관점이 있으므로 사용자가 가장 원하는 유사도가 무엇인지 파악한 후 구현하는 것이 좋습니다.
데이터 설계/수집/가공
현재 어떤 데이터가 축적되어 있는지 정리합니다. 추천 시스템 개발에 필요한 데이터는 주로 다음과 같습니다.
- 사용자와 아이템의 콘텐츠 정보
- 사용자 정보 : 나이, 성별 등 프로필 정보와 어떤 장르의 아이템을 좋아하는가 하는 기호도 정보
- 아이템 정보: 아이템 설명문, 태그, 카테고리, 등록일 등의 정보
- 사용자와 아이템의 인터랙션 정보
- 열람, 북마크, 구입, 시청, 평가 등의 정보
먼저 자사 서비스가 어떤 데이터를 가지고 있는지 정리하고 그 데이터로 추천 시스템을 구축할 수 있는지 검토합니다. 특히 서비스 초기 단계에서는 사용자와 아이템의 인터랙션 데이터가 없는 경우가 많으므로 우선 아이템 정보를 사용한 추천 시스템 구축부터 검토해야 할 때가 많습니다.
알고리즘 선정
어떤 추천 알고리즘을 사용할지 결정합니다. 알고리즘 계산 시간, 필요한 데이터, 요구되는 예측 정확도 등 다양한 관점에서 비즈니스 목표에 적합한 것을 선택합니다. 일반적인 머신러닝 모델과 마찬가지로 일정한 비용을 투입하면 처음에는 어느 정도 정확도를 얻을 수 있습니다. 하지만 정확도를 95%에서 96%로 올리는 데는 막대한 비용이 들기도 합니다. 서비스 초기에는 먼저 간단한 알고리즘부터 구현하는 것이 좋습니다.
학습/파라미터 튜닝
추천 시스템의 학습과 튜닝을 수행하고 실제 서비스로 출시하기 전에 과거 데이터를 사용하여 온라인으로 추천 시스템의 좋고 나쁨을 검증합니다.
온라인에서 추천 시스템의 정확도를 검증할 때는 Recall, Precision 같은 머신러닝 지표도 중요하지만 구체적으로 이 아이템을 넣으면 어떤 아이템이 나오는지 확인하고 그 결과가 납득되는지 확인해야 합니다. 온라인에서 검증할 때는 데이터 편향(bias)에 주의해야 합니다. 편향은 왜곡된 데이터를 처리하지 않고 모델에 학습하게 만들어 예측 결과 또한 치우친 결과를 만들어 내는 것을 의미합니다. 그러므로, 이 편향들을 제거한 후 추천 시스템을 만들어서 평가해야 합니다.
시스템 구현
온라인에서 좋은 추천 알고리즘을 완성했다면 이제 실제 시스템에 조합해야 합니다.
- 추천 알고리즘의 학습이나 예측 변경 빈도,
- 신규 아이템이나 사용자에 대한 추천을 어떻게 할지,
- 추천에 연관된 데이터 파이프라인 설계를 어떻게 할지 등을 고려해야 합니다.
배치 추천
배치 추천은 1일 1회 또는 1주 1회 등 정해진 시점에 해당 시점의 정보를 기반으로 추천 목록을 업데이트하여 사용자에게 제공하는 것입니다. 추천 목록은 추천 모델 학습, 추천 모델에 의한 예측 2단계 처리를 통해 작성됩니다.
추천 모델 학습의 경우 매번 새롭게 학습하면 신규 아이템까지 추천할 수 있어 좋지만 학습에 시간이 걸릴 때는 타협해서 1주일에 1번 학습하기도 합니다.
추천 모델에 의한 예측은 사용자가 얼마나 되는지에 따라 계산 구조가 달라집니다. 사용자가 10만명이고 각 사용자마다 추천 리스트를 만드는 경우 한 사람의 추천 목록을 만드는 데 드는 시간이 1초라고 가정한다면 10만 초 = 27.8시간이 소요됩니다. 이를 고속화하기 위해 병렬 처리를 하는 등 한 사람에 대한 추천 리스트 작성 시간을 줄여야 합니다.
실시간 추천
실시간 추천은 사용자의 직전 행동 이력을 즉시 반영해 추천 목록을 만드는 것입니다. 사용자의 행동 이력을 즉시 반영하려면 데이터의 동기나 실시간 연산 등 폭넓은 엔지니어링 기술이 필요합니다.
평가 및 개선
마지막으로 추천 기능을 출시하고 그것이 실제로 효과가 있는지 검증합니다. 가능하면 A/B테스트 같은 구조로 일부 사용자에게만 추천 기능을 제공해 추천 했을 때와 그렇지 않을 때 사용자의 구입 금액이나 체류 시간을 검증합니다. A/B테스트가 어려운 경우 출시 전후를 비교해야 하지만 시계열에 따른 트렌드 등을 고려해 평가해야 합니다.
그리고 추천 시스템을 도입한 후 추천을 통한 매출이 발생해도 그것을 성공이라고 간주하기에는 아직 이릅니다. 추천을 통한 매출이 증가해도 검색을 통한 매출이 줄어 전체적으로 한 사용자당 매출이 감소하기도 합니다. 추천 시스템만 보는 것이 아니라 시스템 전체를 보고 악영향이 없는지 확인하는 것 또한 중요합니다.
https://www.yes24.com/Product/Goods/118625987
추천 시스템 입문 - 예스24
추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은
www.yes24.com
'공부 > 추천 시스템' 카테고리의 다른 글
추천 알고리즘 종류 (0) | 2025.03.15 |
---|---|
추천 시스템의 UI/UX (0) | 2025.03.14 |
검색 시스템과 추천 시스템 (0) | 2025.03.13 |
추천 시스템의 종류 (0) | 2025.03.13 |
추천 시스템 (0) | 2025.03.13 |