AI 서비스 프로젝트 여러 개 진행했었는데 프로젝트의 버스 드라이버다 보니 짧게 KPT만 정리하고 따로 자세히 남기지 못하여 항상 아쉬웠었다. 그래서 이번에 많이 부족하지만 지금에서라도 시리즈 형태로 남겨보려고 한다.
[회고] AI 프로젝트 2. 실시간 이미지 합성 서비스- 프로그래밍도 모르는 내가 딥러닝?
이번에 첫번째 소개할 프로젝트는 2022년에 진행했던 추천 시스템 서비스이다.
❝ 넷플릭스, 왓챠, 디즈니+... 대체 오늘은 뭘 봐야 하지? ❞
코로나 시대에 자신의 취향에 따라서 OTT를 2~3개쯤은 구독하거나 콘텐츠에 따라서 OTT 유목민 생활을 하는 게 당연했었다. 당시에 오징어 게임 1 이 나오면서 신규 설치자가 월평균 대비 2배 이상 증가 했었었고 또, 피클 플러스와 같이 구독 공유 중개 플랫폼을 통해서 같이 계정을 공유하여 비용을 나누어 내거나 비용을 저렴하게 이용하기 위해서 타 국가로 가입하여 보는게 일반적이었다.
그런데 막상 보고 싶은 건 많은데, 정작 어디서 무엇을 볼지 정하는 데 시간을 더 쓰고 있는 나 자신을 발견했다.
이 고민에서 시작된 게, ‘개인 맞춤형 콘텐츠와 OTT 플랫폼 추천 서비스’였다! 단순히 영화만 추천하는 게 아니라,
“이 취향의 사람에게 어떤 콘텐츠가 맞을까?”,
“이 사람은 어느 플랫폼을 구독해야 만족할까?”
라는 질문에 답하고 효율적으로 관리하고 싶었다.
🧠서비스 기획 배경은 데이터를 ‘제대로’ 보면 보인다
이 프로젝트에서 가장 큰 포인트는 데이터의 본질을 제대로 이해하여 서비스를 기획하려고 노력했다. 처음에는 가장 최신 알고리즘으로 추천 시스템을 구현해 보자였으나 나는 항상 실제로 사용하고 싶은 서비스를 기획해 보고 싶었다. 그래서 자료 조사 및 기획 배경 관련 보고서 페이지만 약 5페이지 정도였지만 실제로 자료 조사에는 더 많은 시간과 자료를 확인했었다. OTT 시장이 계속해서 폭발적으로 성장하고 있고 고객들의 동시 가입자 수도 확인되어 수요가 있음이 확인되었다.
그다음은 무엇을 어떻게 추천을 할 것인가가 관건이었다.
🤯 “무엇을 어떻게” 추천할 것인가?
대부분의 추천 시스템은 사용자가 좋아할 ‘콘텐츠’를 추천하는 데 집중되었으나 우리는 유저의 취향에 따라 구독 관리 할 수 있도록 그보다 한 발 앞서 ‘어떤 플랫폼’을 선택해야 할지를 여러 조건과 취향을 고려해서 추천하고자 했다. 사람마다 자 선호 조건도는 다르고, OTT마다 제공하는 콘텐츠도 천차만별인데 이를 어떻게 수치화해서 비교할 수 있을까?
플랫폼 추천은 결국, 사용자 선호 조건과 각 OTT의 특성을 비교해 가장 선호도와 가장 ‘유사한’ 플랫폼을 추천해 주는 것!
그렇게 하기 위해서는 먼저 각 OTT 플랫폼에 대한 이해가 먼저 필요하여 또 탐색적 데이터 분석(EDA)을 진행하였다. 콘텐츠 양, 각 OTT 플랫폼별 콘텐츠 양, 영상물 등급, 장르별 특성을 시각화하여 비교해 봤다. 흥미로운 사실은
- 아마존 넷플릭스가 양적으로 많으나 아마존은 골고루 다양한 콘텐츠를
- 넷플릭스는 넷플 오리지널로 각 국가에서 직접 제작 혹은 독점 배포하는 청불 콘텐츠가 많았고
- HULU의 경우 15세 타깃으로 한 가볍게 보기 좋은 콘텐츠
- 신규 진입자인 디즈니는 상대적으로 양도 적지만 가족들과 함께 보기 좋은 애니메이션 콘텐츠!
이런 EDA를 진행하면서 각 OTT 별로 장르적 선호도가 다른 것을 알 수 있었고 이런 OTT 플랫폼 별 특징을 모델의 feature로 사용하여 추천 알고리즘에 적용할 수 있다고 방향을 정해졌다!
OTT별 가격, 콘텐츠 수, 화질, 동시접속 가능 여부 같은 사용자 선호하는 서비스 조건과 콘텐츠 선호도를 조건을 입력받아 추천할 수 있도록 설계했다.
예를 들어 “가족이 함께 볼 수 있는 콘텐츠”를 중시하는 사용자에게, 콘텐츠 수가 많아 더 매칭되는 콘텐츠가 많다는 이유로 성인 취향 위주의 플랫폼을 추천하면 그건 ‘맞는 추천’이 아니기 때문.
그래서 사용자가 각 조건에 대한 우선순위를 스스로 정하면 그에 따라 가중치를 부여하여 수치화된 데이터를 정규화한 후,이를 기반으로 거리 계산을 통해 유사도를 측정했다. 이를 통해 훨씬 만족도 높은 추천이 가능해다.
📽️ 단순한 필터링을 넘어 추천
OTT 추천 서비스의 문항값을 토대로사용자에게 적합한 영화들을 추천하는데 콘텐츠 추천 기능을 만들면서는 콜드 스타트(cold start)와 롱테일(long-tail) 문제에 부딪혔다.
먼저, 콜드 스타트 문제는 추천 시스템의 고질적 문제로 고객의 데이터 가 충분하지 않은 경우 추천 시스템이 부정확한 추천을 한다는 의미이다.
롱테일 문제의 경우 소수의 인기 있는 20% 콘텐츠에 인기가 집중되어 나머지 80%가 추천되지 않는 것을 의미한다.
이 두 문제를 해결하기 위해서 그래서 콘텐츠 기반 필터링과 협업 필터링을 결합한 하이브리드 추천 알고리즘을 설계했다. 먼저, 사용자가 처음 들어왔을 때, 우리가 뭘 알아야 추천을 할 수 있을까? 먼저 사용자가 각 장르별 유명한 컨테츠 중 좋아하는 콘텐츠를 입력받을 수 있도록 데이터를 수집한다. 그리고 이 신규 유저의 히스토리를 기반으로 개인 latent vector 생성하여 좋아할 가능성이 높은 콘텐츠들과 함께 좋아요 한 콘텐츠와 가장 유사한 작품들을 섞어 추천하였다.
- Content-based Filtering(콘텐츠 기반 필터링) : 콘텐츠의 특성 간 유사한 콘텐츠 추천
- 영화 줄거리를 바탕으로 TF-IDF(Term Frequency-Inverse Document Frequency) vector
- Collaborative Filtering(협업 필터링) : 유사한 사용자가 본 컨텐츠 추천
- 콜드 스타트(cold start) 문제 해결
- TMDB API로 수집한 실제 리뷰 데이터에서 유저 점수를 활용
유사한 유저들이 좋아한 콘텐츠, 유사한 장르의 영화들을 함께 제안하고, 이 과정을 수치로 유사성을 보여주며 사용자 신뢰도 또한 높일 수 있었다.
🔧리뷰 키워드 자동 추출 – 사용자의 소리를 데이터로
개인적으로 가장 재미있었던 파트는 리뷰 키워드 요약 기능이다. 단순한 ‘평점’이 아닌, 사용자 리뷰 안에 숨은 후기를 TF-IDF와 n-gram 기반으로 추출해서 기능으로 보여주는 것이다.
여기서 중요한 건 데이터의 노이즈 제거와 정규화.
- 문장 부호 제거, 소문자화
- 어간 추출 , 표제어 추출로 형태 보존
- BoW로 카운트 후 Threshold 적용
이 과정은 단순 자연어 처리가 아니라, 유저의 감성을 분석하는 통로였다.
단순히 ‘재밌어요’보다 ‘잔잔하고 감성적인 영화예요’ 같은 리뷰에서 핵심 키워드를 뽑아내는 건 생각보다 흥미롭고 도전적인 작업이었다. 결과적으로 리뷰를 요약해서 보여주는 기능은 사용자 만족도 향상에 크게 기여했다.
🏁 성과
이 프로젝트는 보이는 것보다 기능 중심으로 서비스 기획, 설계하였고 결국 전체 1등을 했고, 개인적으로도 가장 ‘데이터를 능동적으로 다뤘다’고 느낀 프로젝트였습니다. 그리고 평가자 분들도 실제 서비스 할 수 있는 정도라고 할 계획이 있냐고 여쭈셨다!
머신러닝 모델이 아니라 데이터에서 시작된다는 걸 몸으로 체득한 경험이었다.
💡 TIL
이 프로젝트를 통해 단순한 알고리즘 구현을 넘어, 사용자 니즈를 데이터 기반으로 분석하여 서비스 기획하여 추천 모델을 설계, 신뢰도 있는 UX로 연결하는 과정까지 엔드 투 엔드(End-to-End) 관점에서 서비스 전체를 고민해 볼 수 있었다.
결국 “추천”이란 건 사용자를 얼마나 잘 이해하느냐의 문제라는 걸 느꼈다.
- 문제 정의의 중요성
- 단순히 ‘추천’ 기능을 구현하는 것에서 그치지 않고, 왜 필요한지, 사용자가 어떤 불편을 겪는지를 구체적으로 정의해야 설득력 있는 기획
- 데이터 기반 사고
- 단순한 감이나 주관적 판단이 아닌, 실사용자 통계와 EDA 결과를 기반으로 서비스 기획의 중요성
- 모델보다 데이터
- 기술은 비즈니스의 문제를 해결하는 방법 중 하나이기 때문에 너무 기술에 집착하지 않는다.
데이터에는 정답은 없지만, 더 나은 방향으로 계속해서 학습하고 개선해 나가는 시스템. 그 미완의 과정 속에 사용자 만족이라는 목표가 있다는 것을 이번 경험을 통해 체감했다.
[Data/ML] - 추천 시스템(Recommender System)- 1. 개요
추천 시스템(Recommender System)- 1. 개요
추천 시스템(Recommender System)- 1. 개요 1. 추천 시스템(Recommender System) 추천시스템에 대한 관심이 있었고 이번 프로젝트에서 사용할 수 있는 기회가 생겨서 두 시스템 다 만들어 보면서 공부한 것을
potato-potahto.tistory.com
[Data/ML] - 추천 시스템(Recommender System)- 2. Content-based Filtering(콘텐츠 기반 필터링)
추천 시스템(Recommender System)- 2. Content-based Filtering(콘텐츠 기반 필터링)
2. Content-based Filtering(콘텐츠 기반 필터링) 유저가 좋아하는 아이템의 특성을 기반으로 유사한 아이템을 추천해준다. 예를 들여 영화에서도 유사한 장르나 줄거리를 추천해 줄 수 있다. 특성: 이
potato-potahto.tistory.com
[Data/ML] - 추천 시스템(Recommender System)- 3. Collaborative Filtering(협업 필터링)
추천 시스템(Recommender System)- 3. Collaborative Filtering(협업 필터링)
3. Collaborative Filtering(협업 필터링) ‘사람들이 과거에 좋아했던 것들이 크게 변하지 않아서 미래에도 비슷한 것들을 좋아할 것이다.’라는 가정을 전제로 한다. 동시에 유저와 아이템 간의 유사
potato-potahto.tistory.com
'Data > AI' 카테고리의 다른 글
[회고] AI 프로젝트 3.네이버 개발자 인턴 지원 기회를 받은 실시간 영상 처리 서비스1 (0) | 2025.05.16 |
---|---|
[회고] AI 프로젝트 2. 실시간 이미지 합성 서비스- 프로그래밍도 모르는 내가 딥러닝? (0) | 2025.03.22 |
Light GBM 설명(특징,하이퍼파라미터,설치, 사용방법) (0) | 2022.08.02 |
[MLOps] A Chat with Andrew on MLOps: From Model-centric to Data-centric AI(모델 중심 (0) | 2022.03.21 |
추천 시스템(Recommender System)- 3. Collaborative Filtering(협업 필터링) (0) | 2022.02.06 |