AWS 기술 블로그
GS SHOP의 영상 기반 AI 상품 추천 플랫폼 구축기
개요
GS SHOP은 대한민국을 대표하는 TV 홈쇼핑 비즈니스에서 출발하여, 이제는 고객의 라이프스타일을 함께 만들어 나가는 온라인 종합 쇼핑 플랫폼으로 자리잡고 있습니다. 기존의 TV 라이브 채널뿐 아니라 데이터 홈쇼핑, 모바일 라이브까지 운영하며 쇼핑 채널을 넓혀왔고, 콘텐츠와 커머스를 결합한 멀티채널 쇼핑 플랫폼으로 진화해 가고 있습니다.
이러한 변화의 흐름 속에서 GS SHOP 검색추천파트는 검색, 광고, 추천 영역 전반에 걸쳐 생성형 AI를 폭넓게 활용하고 있습니다. 검색에서는 고객이 원하는 상품을 더 잘 찾을 수 있도록 돕고, 광고·콘텐츠 영역에서는 더 빠르고 효율적으로 콘텐츠를 생성하며, 추천에서는 고객을 한층 풍부하게 이해해 개인화된 제안을 만들어 가고 있습니다. 생성형 AI는 이제 단순한 실험을 넘어, 실제 비즈니스 가치를 만들어내는 핵심 도구로 자리잡고 있습니다. 이 글에서 소개할 영상 기반 추천 역시 이러한 AI 활용 흐름 속에서 실제 서비스에 연결된 사례 중 하나입니다.
영상을 이해하는 추천으로의 전환
고객의 쇼핑 여정에서 영상 콘텐츠의 비중은 점점 커지고 있습니다. 짧고 임팩트 있는 영상이 상품 정보를 직관적으로 전달해, 자연스럽게 구매 행동으로 이어지기 때문입니다. GS SHOP이 운영하는 자사 숏폼 브랜드 ‘숏픽’은 상품의 핵심 포인트를 30초 내외로 담아낸 홈쇼핑 특화형 숏폼 콘텐츠로, 각 영상이 특정 상품과 매핑되어 모바일 앱의 개인화 추천 영역에 캐러셀(Carousel) 형태로 노출됩니다.

매일 수십 편의 숏픽이 추천 영역을 통해 고객에게 노출되고 있었지만, 그 영상들이 만들어지기까지의 과정은 결코 가볍지 않았습니다. 1시간 분량의 방송 영상을 PD가 처음부터 끝까지 다시 돌려보면서, 숏픽으로 쓸 만한 하이라이트를 골라내고 재방송에 부적합한 장면을 일일이 찾아 제거하는 작업이 매 방송마다 따라붙었기 때문입니다. GS SHOP 검색추천파트의 프로젝트는 바로 이 현장의 고충에서 출발했습니다.
“영상도 텍스트처럼 검색할 수는 없을까?”
처음에는 PD가 방송을 처음부터 끝까지 다시 돌려보는 시간을 어떻게든 줄여 보자는 작은 질문이었습니다. 그런데 그 답을 찾아가는 과정에서 ‘영상 이해’라는 전혀 다른 문이 함께 열렸고, 그동안 보이지 않던 추천 시스템의 한계까지 정면으로 마주하게 됐습니다.
“숏픽 추천 시스템은 영상을 이해하고 있는가?”
기존 숏픽 추천에 결함이 있었던 것은 아닙니다. 다만 추천 시스템이 다룰 수 있는 데이터는 상품 ID와 카테고리 같은 정형 정보뿐이었고, 영상 콘텐츠는 추천된 상품 옆에 따라 붙는 보조 자료에 가까웠습니다. 이름은 ‘숏픽 추천’이었지만, 실제로는 상품을 먼저 추천하고 그 상품에 영상이 있으면 함께 노출하는 구조였습니다.
그래서 GS SHOP 검색추천파트는 영상 자체를 추천 신호로 쓰는 방향으로 추천 시스템을 다시 짜기 시작했습니다. Amazon Bedrock에 탑재된 TwelveLabs의 Video Understanding 모델(Marengo, Pegasus)과 Anthropic Claude Sonnet 4, Cohere Embed Multilingual 모델을 조합하여 영상 속 맥락을 추천에 쓸 수 있는 형태로 구조화하고, 이를 기존 상품 추천 엔진 위에 Hybrid 방식으로 결합하여 숏픽 추천 시스템을 재편했습니다.
이 글에서는 그 출발점이 된 영상 검색의 첫 실험부터, 숏픽 추천 시스템을 다시 짜고 실제 서비스에 태우기까지의 여정을 차례로 풀어 보겠습니다.
직면한 과제: 영상은 있었지만 이해할 수단이 없었다
방송 영상 후처리의 현실
GS SHOP에서 가장 대표적인 콘텐츠는 TV 생방송 판매 영상입니다. 1시간 분량의 생방송이 종료되면 영상이 저장되고 , 저장된 영상에서 클립 또는 하이라이트를 추출해서 재방송용 녹화본이나 숏픽 영상으로 활용합니다.
이때 반드시 거쳐야 하는 것이 후처리 과정입니다. 생방송 당시의 날씨 정보, 카드 혜택 안내, 품절 임박과 같은 라이브 한정 멘트, 변경된 상품 구성 등은 재방송이나 숏픽에 그대로 포함되면 부정확하거나 이미 유효하지 않은 정보가 고객에게 전달될 수 있으므로, 반드시 찾아내서 제거해야 합니다. 반대로 숏픽으로 만들 수 있는 하이라이트 구간을 골라내는 작업도 동시에 진행됩니다.
이 과정에서 STT(Speech-to-Text)기술을 접목하여 도움을 받고 있었지만, 찰나에 스쳐 지나가는 화면 속 자막까지 모두 찾아내기란 쉬운 일이 아니었습니다. 결국 PD 분들께서 1시간짜리 방송 영상을 검수하기 위해 매번 1시간에서 2시간 남짓을 온전히 집중해야만 했습니다.
과제의 출발점
방송 매출이 잘 나올수록 추출할 장면도 많아지는데, 그 장면을 일일이 수동으로 찾아내야 하는 것이 PD 분들의 오래된 고충이었습니다.
“쇼핑호스트가 시식하는 장면이 어디였더라…”
“이번에 삼성카드 혜택이 바뀌어서 그 장면을 찾아야 하는데…”
현장의 이야기를 듣고 나서 떠오른 질문은 단순했습니다. 영상도 텍스트처럼 검색할 수는 없을까? 당시에는 영상 검색에 대한 레퍼런스가 많지 않았지만, 이 질문이 프로젝트의 출발점이 되었습니다. 처음부터 추천 시스템을 바꾸겠다는 목표가 있었던 것은 아닙니다. PD분들의 검수 시간을 줄여보자는 것이 출발이었고, 이후 그 실험이 추천 시스템 재편까지 확장된 것입니다.
영상 검색의 시작: TwelveLabs Marengo
임베딩(Embedding): 영상과 텍스트를 비교 가능하게 만들기
영상을 자연어로 검색하려면 임베딩이라는 기술이 필요합니다. 텍스트끼리는 단어 일치 여부를 비교할 수 있지만, 영상과 텍스트는 형태 자체가 다르기 때문에 동일한 의미 공간에 올려놓기 위한 변환 과정이 선행되어야 합니다. 영상과 검색어를 각각 벡터로 바꿔 같은 공간에 위치시킨 뒤, 두 위치가 가까우면 의미도 비슷하다고 보는 것 — 이것이 임베딩 모델이 하는 일의 핵심입니다.
물론 이런 임베딩 모델과 영상 이해 모델을 직접 학습시켜 사용하는 선택지도 있었습니다. 방송 도메인에 특화된 파인 튜닝 모델을 얻을 수 있다는 장점이 있지만, 학습 데이터 확보부터 GPU 인프라, ML 전문 인력, 서빙과 모니터링, 업그레이드까지 지속적인 부담이 따릅니다.
반면Amazon Bedrock 은 TwelveLabs, Anthropic, Cohere 등 업계 최고 수준의 Foundation Model들을 단일 API 형태로 제공합니다. 직접 학습에 들어가는 시간과 비용, 운영 부담을 고려하면 ROI 차이가 컸기 때문에, GS SHOP 검색추천파트는 Amazon Bedrock 위의 검증된 모델을 바로 활용하고 실제 문제에 집중하기로 했습니다.
Marengo와의 첫 만남
영상 이해 모델을 탐색하던 중 TwelveLabs를 접하게 되었습니다. TwelveLabs는 영상 전문 Foundation Model을 제공하는 기업으로, 그중Marengo라는 멀티모달 임베딩 모델을 알게 되었습니다. 마침 TwelveLabs의 모델들(Marengo, Pegasus)은 Amazon Bedrock 위에서 바로 호출이 가능한 상태로, 별도 추가 계약이나 인프라 구축 없이 기존 AWS 환경 안에서 곧바로 실험에 들어갈 수 있었습니다.
Marengo에 영상을 입력하면, 청크(Chunk) 단위로 잘게 나눈 뒤 각 구간별로 임베딩 벡터를 생성해줍니다. 이때 어떤 모달리티를 임베딩에 포함할 지 선택할 수 있습니다.
- Visual: 화면 장면만 사용
- Text-in-video: 화면 내 자막이나 텍스트만 사용
- Audio(conversation): 클립에서 추출한 오디오만 사용
Marengo가 텍스트 임베딩도 함께 처리하기 때문에, 검색어를 별도로 변환할 필요 없이 자연어 그대로 질의하는 것이 가능합니다. 그 덕분에 복잡한 전처리 파이프라인 없이 바로 다음 실험으로 나아갈 수 있었습니다.
영상 검색 대시보드 구현 및 검증
GS SHOP 검색추천파트는 Marengo를 바로 접목해 영상 검색 대시보드를 만들었습니다. 좌측 상단에 GS SHOP 방송 영상이 표시되고, 바로 아래 검색창에 자연어를 입력하면 유사도에 따라 순위를 매겨 최대 3개의 클립을 우측에 보여주는 구조입니다.

여기서 확인이 필요했던 것은 Marengo의 한국어 이해 수준이었습니다. 한국 음식이나 한국 방송 특유의 맥락까지 처리할 수 있는지 검증하기 위해, 의도적으로 복합적인 문장으로 검색을 시도했습니다. “쇼핑호스트가 수육에 김치 한 점을 올려 젓가락으로 맛있게 집어먹는 모습.” 이 문장을 고른 이유는 세 가지입니다.
- 행동 주체 이해: ‘쇼핑호스트’라는 주체를 인식할 수 있는가
- 한국어 단어 이해: ‘수육’, ‘김치’ 같은 한국 음식 단어를 이해하는가
- 연속 동작 추출: ‘젓가락으로 집어먹는다’라는 연속적인 프레임에서의 동작을 추출할 수 있는가

결과적으로 Marengo는 높은 정확도로 원하는 장면을 즉시 찾아주었습니다. PD가 타임라인을 수동으로 탐색하며 수 시간 걸리던 작업이 수 초 만에 끝난 것입니다. 이 결과를 통해 Marengo가 한국어 맥락에서도 영상을 충분히 이해하고 있음을 확인할 수 있었고, 자연스럽게 다음 질문이 떠올랐습니다. 이 비디오 이해 능력을 검색에만 쓰는 것이 아니라, 추천에도 접목할 수 있지 않을까?
Pegasus 발견: 검색을 넘어 추천으로의 확장
Amazon Bedrock의 TwelveLabs 모델 두 가지
Marengo를 통해 영상 이해의 가능성을 확인한 뒤, GS SHOP 검색추천파트는 더 많은 활용 시나리오를 탐색하기 위해 TwelveLabs 모델을 다시 살폈습니다. Amazon Bedrock에 탑재된 TwelveLabs 모델은 검색용과 생성용 두 가지였습니다.
| 모델 | 유형 | 역할 | 핵심 질문 |
| Marengo 2.7
(twelvelabs.marengo-embed-2-7-v1:0) |
Search (임베딩) | 영상 장면 검색에 최적화 | “이 장면이 몇 초에 있나?” |
| Pegasus 1.2
(us.twelvelabs.pegasus-1-2-v1:0) |
Generate (생성) | 영상 전체를 대상으로 질의·응답 | “이 영상이 무엇에 관한 건가?” |
Pegasus는 Marengo를 통해 이해한 영상 정보를 기반으로 LLM 질의를 수행하는 모델입니다. “이 영상이 무엇에 관한 것인가요?”라고 물어보면, 마치 영상을 직접 본 사람처럼 내용을 묘사해줍니다. Marengo가 “이 장면이 몇 초에 있나?”에 답한다면, Pegasus는 “이 영상이 전체적으로 무엇에 관한 건가?”에 답하는 모델입니다.
초반 PD의 장면 검색에는 Marengo가 적합했습니다. 그런데 Pegasus를 알게 되자 자연스레 다음 질문이 떠올랐습니다. 영상 전체의 맥락을 이해하고 설명할 수 있는 모델이 있다면, 이 능력을 추천에도 쓸 수 있지 않을까? 이 질문이 우리를 검색에서 추천으로 이동시킨 분기점이 됐습니다.
기존 숏픽 추천의 진짜 모습
GS SHOP에는 숏픽을 활용한 영상 추천 영역이 이미 존재하고 있었습니다. 이 추천이 영상을 어떻게 활용하고 있는지 내부 구조를 분석해 본 결과, 예상과는 다른 사실이 확인되었습니다.
기존 숏픽 추천의 흐름은 이러했습니다.
- 고객이 특정 상품 상세 페이지에 진입 (클릭)
- 고객의 최근 클릭 로그를 통해 어떤 상품을 살펴봤는지 파악하고, CF/CB 알고리즘으로 좋아할 것 같은 상품을 리스트업
- 후보 상품 중 숏픽 영상을 가지고 있는 상품이 있으면, 해당 상품의 숏픽을 화면에 출력
결국 숏픽 추천은 영상 추천이 아니었습니다. 숏픽은 본래 한 편의 영상이 하나의 상품에 매핑되어 있는 구조인데, 추천도 이 매핑을 그대로 따라갈 뿐이었습니다. 상품과 상품 사이의 추천이 먼저 이뤄지고, 추천된 상품에 숏폼 영상이 있으면 그때 비로소 영상이 노출되는 구조였습니다. 숏픽 영상이 없는 상품은 아무리 좋은 후보여도 추천 자체가 불가능했습니다.
왜 이렇게 만들어졌는지는 금방 이해가 됐습니다. 영상을 이해할 수단이 없었기 때문입니다. 시스템이 다룰 수 있는 것은 카테고리, 브랜드, 상품명, 이미지, 가격 같은 정형 데이터뿐이었고, 영상이 있어도 그 안의 맥락은 활용할 방법이 없었던 것입니다. 기존 방식에 문제가 있었다기보다는, 기술적 한계 안에서 내릴 수 있는 가장 합리적인 선택이었던 셈입니다.
그렇다면, 왜 영상이어야 했는가
그러면 자연스럽게 다음 질문이 남습니다. 왜 영상이어야 했을까요? 정형 데이터를 더 정교하게 다루는 길도 있었을 텐데요.
답은 GS SHOP 안팎에서 이미 일어나고 있던 일에 있었습니다. 친한 친구에게 좋은 식당을 알려줄 때, 우리는 더 이상 추천하는 이유를 장황하게 설명하지 않습니다. 식당을 다녀온 사람들의 생생한 후기 영상을 공유합니다. 분위기, 손맛, 사람들의 표정 — 굳이 설명하지 않아도 영상 안에 다 들어 있기 때문입니다. 정보가 풍부할수록 영상이 더 효과적이라는 사실을 우리는 이미 일상에서 알고 있습니다. 고객도 마찬가지였습니다. 숏픽을 클릭하고, 끝까지 시청하고, 그 안에서 무언가에 반응하고 있었습니다. 다만 그 반응의 ‘이유’를 시스템이 한 번도 본 적이 없었을 뿐입니다.

데이터 차원에서 보면 차이는 더 또렷해집니다. 지금까지 추천이 다뤄 온 상품 대표 이미지는 정지된 한 순간의 2D 정보입니다. 반면 영상은 여기에 시간축이 더해진 3D 데이터로, 한 장의 사진에는 담기지 않던 맥락과 분위기, 감정까지 함께 담고 있습니다. ‘이 세럼이 어떤 제품인가’는 카테고리와 가격이 어느 정도 설명해 주지만, ‘이 세럼이 피부에 닿아 스며드는 동안, 속에서부터 차오르는 촉촉함과 그 위에 잔잔히 도는 광택은 어떠한가’는 영상만 답할 수 있습니다. 그리고 끝내 고객의 반응을 만들어내는 것은 후자였습니다.
조금 더 본질적으로 보면, ‘영상을 이해한다’는 일은 추천이 하는 일과 같은 모양을 하고 있습니다. 영상을 본다는 것은 화면에 보이는 사물뿐 아니라 그 장면이 만들어 내는 맥락과 분위기, 감정까지 한꺼번에 받아들이는 일이고, 이해한다는 것은 그것을 자기 말로 설명할 수 있게 되는 일입니다. 그 설명을 들은 사람은 자연스럽게 자기 모습을 그 안에 그려 봅니다. 추천 역시, 누군가에게 “이게 당신에게 어울릴 것 같다”고 말하면서 그 사람이 자기 모습을 상상하게 만드는 일입니다. 그래서 영상을 이해할 수 있게 됐다는 것은 단순히 새 데이터 소스를 하나 더 얻은 일이 아니라 — 추천이 본래 잘해야 하는 일에 한 발짝 더 가까워졌다는 뜻이기도 했습니다.
LLM과 멀티모달 모델이 등장하면서, 비로소 기계가 이 시간축을 다룰 수 있게 되었습니다. GS SHOP 검색추천파트에게는 Amazon Bedrock 위의 TwelveLabs 모델이라는 도구가 이미 준비되어 있었고, 남은 과제는 명확했습니다. 영상을 이해하는 것 자체는 가능해졌으니, 이제 그 이해 결과를 추천 시스템이 쓸 수 있는 형태로 어떻게 바꿀 것인가 하는 문제였습니다.
영상 이해 파이프라인: 기존 인프라 위에 얹다
Pegasus를 숏픽 추천에 적용하겠다고 결정한 순간, 다행이도 인프라 고민이 크지 않았습니다. 이미 모든 재료가 AWS 위에 있었기 때문입니다. 생방송 영상은 녹화 후 Amazon S3에 올라가고, 방송 관련 정보와 상품 정보, 고객 행동 로그는 Amazon Redshift를 통해 이미 접근할 수 있는 상태였습니다.
GS SHOP 검색추천파트가 한 것은 여기에 Amazon Bedrock 위의 모델 체이닝을 한 층 더하는 것이었습니다. 전체 파이프라인은 다음과 같습니다.
| 단계 | AWS 서비스 | 역할 |
| 1. 데이터 소스 | Amazon Redshift + Amazon S3 | 방송 DB·상품 정보 조회, 방송 VOD 원본 저장 |
| 2. 영상 이해 | TwelveLabs Pegasus (Amazon Bedrock) | 영상 전체를 읽고 메시지를 이해 |
| 3. 소구 포인트 추출 | Anthropic Claude Sonnet 4 (Amazon Bedrock) | 이해 결과에서 추천용 핵심 키워드 추출 |
| 4. 임베딩 | Cohere Embed Multilingual (Amazon Bedrock) | 소구 포인트 키워드를 벡터로 변환 |
| 5. 추천 서빙 | Amazon OpenSearch Service | 임베딩 인덱싱 및 유사도 검색 기반 추천 |
| 6. 행동 신호 | Amazon ElastiCache (Redis) | 사용자별 숏폼 선호 점수 실시간 저장·조회 |

상품 정보를 함께 참조하면서 영상을 더 풍부하게 묘사할 수 있었고, Bedrock의 체이닝을 통해 원하는 데이터를 추출한 뒤 다시 S3에 저장하는 자연스러운 흐름이 만들어졌습니다. 새로운 인프라를 구축한 것이 아니라, 기존 인프라 위에 Bedrock 모델 체이닝을 얹은 것이 전부였습니다.
소구 포인트 추출: 임베딩 대상 선정의 시행착오
영상을 이해했다고 해서 바로 추천에 쓸 수 있는 것은 아닙니다. 추천 시스템은 결국 숫자로 움직이기 때문에, 영상 이해의 결과물을 점수로 계산할 수 있는 형태로 바꿔야 합니다. 이 전환 과정에서 가장 많은 시행착오가 발생했습니다.
GS SHOP 검색추천파트가 이를 위해 도입한 개념이 소구 포인트(Appeal Point)입니다. 소구 포인트란, 고객이 영상에서 실제로 반응했을 만한 핵심 메시지를 말합니다. 쉽게 말해, 숏폼 영상이 짧은 시간 안에 전달하는 고객의 클릭이나 구매를 이끌어낸 바로 그 메시지를 추천 가능한 신호로 구조화한 것입니다. 뽑아내는 과정은 네 단계로 구성됩니다.
- Pegasus를 활용해 숏폼 영상 전체를 읽습니다. 단순히 장면을 나열하는 것이 아니라, 이 영상이 전체적으로 어떤 메시지를 전달하고 있는지를 이해합니다.
- Claude Sonnet 4가 Pegasus가 생성한 영상 설명을 입력으로 받아 소구 포인트 키워드를 추출합니다. 긴 설명에서 추천에 필요한 신호만 걸러내는, 일종의 정제 단계입니다.
- 추출된 소구 포인트는 Cohere Embed Multilingual로 벡터화됩니다.
- Cosine Similarity로 벡터 공간에서 가장 가까운 영상을 찾아 연결합니다.
이 과정을 더 구체적으로 보기 위해, 실제 숏픽 영상을 입력했을 때 데이터가 단계별로 어떻게 정제되는지 예시로 살펴보겠습니다. 클렌징폼 숏픽 영상을 넣으면 다음과 같은 형태로 처리됩니다.

1단계 — Pegasus (영상 전체 이해)
“쇼핑호스트가 클렌징폼을 직접 얼굴에 올려 풍성한 거품을 만들며 피지 개선 효과를 강조하고 있다”
2단계 — Claude Sonnet 4 (소구 포인트 추출)
#체험형시연 #피지개선 #거품풍부
3단계 — Cohere Embed Multilingual (벡터화)
세 개의 소구 포인트 키워드를 고차원 임베딩 벡터로 변환
4단계 — OpenSearch (유사도 매칭)
벡터 공간에서 같은 맥락(체험형 시연·피지 개선 등)을 공유하는 다른 방송 영상과 연결
Pegasus가 생성한 자연어 설명은 Claude Sonnet 4를 거치며 추천에 쓸 수 있는 태그 형태로 정제되고, Cohere Embed Multilingual을 통해 수치화됩니다. 이렇게 생성된 소구 포인트 임베딩은 Amazon Opensearch에서 유사도 검색이 가능한 형태로 관리됩니다. 이 흐름을 통해 추상적이던 영상 ‘이해’ 결과를 추천 시스템이 활용할 수 있는 구체적인 ‘신호’로 변환할 수 있었습니다.
파이프라인 구조는 정리되었지만, 핵심적인 질문이 남아 있었습니다. 정확히 무엇을 소구 포인트로 추출해서 임베딩해야 하는가? 이 질문에 대한 답을 찾는 과정에서 중요한 교훈을 얻었습니다.
AS-IS: 영상 전체 설명 임베딩 — 상품 정보에 끌려가다
첫 번째 시도는 Pegasus가 생성한 숏폼 영상 전체 설명 텍스트를 요약해서 그대로 임베딩하는 방식이었습니다. 아래는 실제로 Pegasus가 워킹화 영상을 읽고 만들어낸 설명의 일부입니다.
“이 영상은 ‘스케쳐스 고워크 아치핏 워킹화’의 방송으로, …”
브랜드명, 상품명, 제품 스펙 등 겉으로 보이는 특징들이 설명의 중심에 놓여 있었습니다. 이 기준으로 추천된 영상들을 확인했더니, 전부 비슷한 운동화 영상들이었습니다. 영상을 열심히 읽긴 했는데, 결과적으로는 상품 정보 주변을 맴돌고 있었던 것입니다.
원인은 명확했습니다. 영상 전체 설명에는 브랜드명과 상품명이 반복적으로 등장하고 있어, 임베딩 벡터가 그 강한 신호에 끌려간 것입니다. 정작 추천에 필요한 맥락 신호, 즉 고객이 왜 이 영상에 반응했는가를 설명해줄 신호는 희석되어 버리고 있었습니다.
TO-BE: 소구 포인트 키워드 임베딩 — 맥락 신호만 남기다
그래서 질문을 바꿨습니다. 영상 전체 설명을 있는 그대로 담는 대신, 추천에 꼭 필요한 신호만 선택적으로 남기면 어떨까?
결과는 확연히 달랐습니다. 통기성, 착화감, 편안한 활동성 등 고객이 실제로 반응했을 핵심 속성만 추출하여 임베딩하자, 추천 결과가 운동화 카테고리를 넘어 레깅스, 바람막이, 일상복으로까지 확장되었습니다.
| AS-IS: 영상 전체 설명 임베딩 | TO-BE: 소구 포인트 키워드 임베딩 | |
| 임베딩 대상 | Pegasus가 생성한 영상 전체 설명 텍스트 | 기능성, 착화감, 통기성, 편안한 활동성 등 핵심 키워드 |
| 문제점/장점 | 브랜드·상품명 신호에 임베딩이 끌려감
맥락 신호 희석 |
추천에 필요한 맥락 신호만 선택적으로 반영
카테고리 확장 가능 |
| 추천 결과 (워킹화 영상 기준) | 비슷한 운동화 영상만 반복 | 레깅스(#활동성, #신축성), 바람막이(#UV차단, #야외활동), 양말(#캐주얼패션) 등으로 확장 |
같은 영상을 읽어도, 무엇을 임베딩하느냐에 따라 추천 결과가 완전히 달라진다는 것을 확인할 수 있었습니다.
설계 원칙: 역할을 나누다
소구 포인트를 어떤 기준으로 추출할지 정할 때, GS SHOP 검색추천파트는 한 가지 원칙을 세웠습니다. 카테고리와 브랜드 같은 정보는 기존 추천 신호가 이미 충분히 잘 다루고 있었습니다. 거기에 같은 역할의 신호를 하나 더 얹는다면, 추천 시스템 입장에서는 새로운 정보를 얻기보다 기존 신호를 반복해서 보는 것에 가까웠습니다. 그래서 영상 쪽은 영상만이 드러낼 수 있는 메시지에 집중하기로 했습니다. 기존 추천이 ‘무엇을’ 봤는지에 답하고 있다면, 영상 기반 추천은 ‘왜’ 반응했는지에 답하는 역할을 맡은 것입니다.
이 원칙에 따라, 소구 포인트는 다음 네 가지 축으로 구조화하여 추출합니다.
| 축 | 설명 | 예시 |
| 기능성 | 제품의 기능적 특성 | 착화감, 통기성, UV 차단, 방수 |
| 스타일/감성 | 감성적 소구 포인트 | 캐주얼, 트렌디, 고급스러운, 편안한 |
| 사용 상황 | 제품이 활용되는 상황 | 야외 활동, 일상 착용, 캠핑용, 출퇴근 |
| 실용성 | 실용적 장점 | 세탁 편의, 전자레인지 OK, 수납 용이 |
이렇게 네 가지 축으로 나눈 이유는, 고객이 영상에 반응하는 이유가 단일하지 않기 때문입니다. 누군가는 기능에, 누군가는 감성에, 또 누군가는 “캠핑에서 쓸 수 있겠다”는 사용 상황에 반응합니다. 결국 중요한 것은 영상에 대한 긴 설명이 아니라, 추천에 필요한 신호를 이 축들을 기준으로 얼마나 잘 구조화해서 남겼는가였습니다.
Hybrid 추천 시스템 아키텍처
설계 철학: 교체가 아니라 확장
여기서 GS SHOP 검색추천파트가 내린 가장 중요한 결정 중 하나는 기존 추천 엔진을 버리지 않는 것이었습니다. 기존 상품 추천은 오랜 기간 검증되어 온 안정적인 시스템이었고, 이를 갑자기 새로운 로직으로 교체하는 것은 리스크가 컸습니다. 대신, 기존의 안정성은 그대로 유지하면서 그 위에 영상 맥락 신호를 한 층 얹는 방식을 택했습니다. 이 접근을 Hybrid 추천이라 부르는 이유이며, 핵심은 교체가 아니라 확장이었습니다.
Hybrid 방식을 선택한 이유는 세 가지였습니다.
- 안정성 유지: 오랜 기간 운영하며 검증된 기존 상품 추천의 베이스라인을 그대로 살릴 수 있습니다.
- 효과 검증의 용이성: 기존 신호 위에 영상 신호를 더하는 구조이기 때문에, 영상 신호가 실제로 얼마나 기여했는지를 A/B 테스트로 깨끗하게 분리하여 측정할 수 있습니다.
- 장애 시 Graceful Degradation: 영상 이해 파이프라인에 문제가 생기더라도 기존 추천이 그대로 동작하므로, 서비스는 중단 없이 자연스럽게 이전 품질로 복귀합니다.
두 가지 신호의 결합: 의미와 의도
Hybrid 추천에 들어가는 신호는 크게 두 가지이며, 각각 서로 다른 질문에 답하고 있습니다.
Video Signal (의미)은 앞서 추출한 소구 포인트를 임베딩한 벡터가 Amazon OpenSearch Service에 인덱싱된 것입니다. 이 신호가 답하는 질문은 “이 영상이 어떤 메시지를 갖고 있는가”입니다.
Behavior Signal (의도)은 고객의 최근 클릭과 시청 로그를 의도 수준으로 점수화하여 Amazon ElastiCache(Redis)에 저장한 것입니다. 이 신호가 답하는 질문은 “이 고객이 최근 어떤 메시지에 반응했는가”입니다.
추천 요청이 들어오면 Recommendation API가 OpenSearch와 ElastiCache를 병렬로 조회합니다. 이후 영상의 의미 신호와 고객의 행동 의도 신호를 각각 점수화하고 결합해 최종 추천 결과를 생성합니다. 즉, 영상이 담고 있는 메시지와 고객이 최근 반응한 메시지를 함께 고려하는 구조로, 영상의 의미와 고객의 의도가 만나는 지점에서 추천이 이뤄지는 것입니다.

행동 로그를 “의도”로 바꾸는 과정
Behavior Signal을 만드는 과정은 단순히 클릭 로그를 쌓는 것과는 달랐습니다. 핵심적인 설계 판단이 하나 필요했는데, 그것은 고객의 모든 행동이 같은 무게를 갖는 것은 아니라는 인식이었습니다. 같은 ‘클릭’이라도 상품 상세 페이지까지 진입한 클릭과 썸네일만 눌러본 클릭은 의도의 강도가 다릅니다. 따라서 행동을 세 가지 의도 수준으로 나눠서 처리했습니다.
| 의도 수준 | 행동 유형 | 처리 |
| 구매/전환 의도 | 상품·이벤트 클릭, 상품 상세 진입 | 높은 가중치 부여 |
| 관심 의도 | 영상 재생, 썸네일 클릭, 추천 탭 진입 | 중간 가중치 부여 |
| 제외 | 영상 멈춤, 단순 노출 | 의도 신호에서 제외 |
하지만 이렇게 분류한 행동을 바로 쓰는 것이 아니라, 세 가지 요소를 추가로 반영하여 최종 점수로 변환합니다.
- 시청 비율 반영: 영상을 얼마나 오래 봤는지에 따라 가중치를 다르게 적용합니다. 끝까지 본 영상과 3초 만에 넘긴 영상은 같은 ‘재생’이어도 의미가 다르기 때문입니다.
- 행동 단계별 가중치: 앞서 분류한 의도 수준에 따라 차등 적용합니다.
- 반감기 기반 최근성 가중치: 일주일 전의 클릭보다 어제의 클릭이 더 중요하므로, 반감기(half-life) 기반으로 시간에 따른 최근성 가중치를 함께 부여합니다.
이렇게 만들어진 점수를 Amazon ElastiCache에 저장해두고, 추천 요청이 들어오는 시점에 사용자별 숏폼 선호 벡터를 실시간으로 조회합니다. 이 설계의 핵심은, 클릭이라는 행동 자체가 아니라 그 행동이 얼마나 강한 의도였는지를 추천 시스템이 보게 되는 구조라는 점입니다.
추천 점수 계산: 5단계 로직
앞서 설명한 Video Signal과 Behavior Signal은 최종 추천 점수를 계산하는 과정에서 기존 상품 추천 신호와 함께 결합됩니다. 추천 결과가 만들어지는 과정은 크게 다섯 단계로 구성됩니다.

| 단계 | 점수 | 설명 |
| 1 | 상품 점수 | 최근 클릭한 상품과 유사한 상품을 OpenSearch로 탐색 |
| 2 | 숏폼 점수 (NEW) | 최근 선호한 숏폼과 유사한 맥락의 숏폼을 탐색. 여기서 쓰는 선호 정보는 숏픽 시청·클릭 로그가 ElastiCache에 선호 점수로 쌓인 것 |
| 3 | 카테고리 점수 | 사용자 카테고리 선호도 반영 |
| 4 | 최종 점수 합산 | 상품 + 숏폼 + 카테고리 + 리뷰 평점 점수를 가중치 기반으로 합산 |
| 5 | MMR 재정렬 | Maximal Marginal Relevance로 유사도뿐 아니라 다양성까지 고려해 최종 리스트 생성 |
상품 점수와 카테고리 점수는 기존부터 있던 신호입니다. 여기에 새롭게 추가된 숏폼 점수는 “이 고객이 최근 반응한 숏픽과 비슷한 맥락을 가진 후보인가?”를 판단하는 역할을 하며, 이것이 이번 프로젝트의 핵심 변화입니다.
마지막으로 MMR 재정렬 단계는 유사한 후보가 반복적으로 노출되는 문제를 완화하기 위해 적용했습니다. 이는 유사도가 높은 영상만 반복적으로 추천되는 이른바 ‘필터 버블’을 방지하기 위해서입니다. GS SHOP 검색추천파트는 정확히 맞추는 추천만큼이나 의외성을 주는 추천(Serendipity)도 중요하다고 보고 있습니다. MMR은 이러한 관점을 추천 리스트 구성 단계에서 구현하기 위한 후처리 장치로 활용되었습니다.
입력 신호의 변화
이러한 구조를 적용한 결과, 추천에 들어가는 입력 자체가 달라졌습니다.
| Before | After | |
| 입력 신호 | 클릭한 상품 ID, 카테고리 등 정형 데이터 | 영상 소구 포인트(기능성, 스타일, 사용 상황, 실용성) + 행동 의도 점수 |
| 추천 기준 | “무엇을 클릭했는가?” | “왜 반응했는가?” |
| 추천 결과 | 같은 카테고리 상품의 영상 반복 | 카테고리가 달라도 같은 맥락의 영상 추천 |
고객이 클릭한 것은 워킹화 영상 하나였지만, 영상 안에는 기능성, 스타일, 사용 상황, 실용성이라는 복수의 신호가 담겨 있었습니다. 추천 시스템이 이 맥락 정보를 활용하게 되면서, 같은 카테고리 상품을 반복 노출하는 대신 활동성이나 편안함이라는 비슷한 맥락을 가진 다른 카테고리의 숏폼까지 추천 범위가 확장되었습니다.

실서비스 운영을 위한 설계 결정
추천 로직이 좋은 결과를 내더라도, 실제 서비스 트래픽에 적용하는 순간 이야기가 달라집니다. 수백 ms 단위의 지연이 이탈로 이어지는 환경이기 때문에, 추천 품질만큼이나 지연 시간과 장애 내구성, 그리고 신호의 왜곡 가능성까지 함께 고려해야 했습니다. GS SHOP 검색추천파트가 실서비스 배포 과정에서 내린 설계 결정 중 자주 받는 질문들을 정리하면 다음과 같습니다.
신호 품질을 위한 결정
단순 노출(impression)은 선호 신호로 쓰지 않음: GS SHOP의 숏픽은 캐러셀 UI 위에 얹혀 있습니다. 고객이 좌우로 스크롤만 해도 숏픽이 자동 재생되고 노출 로그가 남기 때문에, 이런 수동적 노출을 선호 신호로 사용하면 고객의 의도가 아니라 UI 구조 자체의 영향이 추천에 들어오게 됩니다. 그래서 Behavior Signal에는 클릭·상세 진입·의미 있는 시청만 반영하고, 단순 노출은 의도적으로 배제했습니다.
응답 시간을 위한 결정
병렬 조회: 추천 요청이 들어오면 Amazon ElastiCache(사용자 행동 점수)와 Amazon OpenSearch(상품·숏폼·카테고리 후보)를 동시에 조회합니다. 신호 간 의존이 없기 때문에 순차 조회할 이유가 없고, 병렬화 자체로 추천 API의 p99 지연을 안정적으로 유지할 수 있습니다.
타임아웃 우선 정책: 각 구성 요소별로 짧은 타임아웃을 설정하여, 일부 신호가 늦어지더라도 먼저 준비된 신호만으로 응답을 돌려줍니다. ‘완벽한 추천보다 제때 도착하는 추천’을 원칙으로 한 것입니다.
Amazon ElastiCache는 상위 선호 항목만 유지: 모든 행동 로그를 그대로 쌓지 않고, 사용자별로 의미 있는 상위 선호 항목만 ElastiCache에 유지합니다. 메모리 사용량과 조회 비용을 억제하면서, 추천 품질에 영향을 주는 핵심 신호만 빠르게 꺼내 쓸 수 있습니다.
장애 내구성과 후처리를 위한 결정
인기도 기반 Fallback: 개인화 신호가 부족하거나 파이프라인에 일시적 장애가 발생한 경우, 인기도 기반 추천으로 자연스럽게 전환됩니다. 고객은 “추천이 비어 있는 화면”을 보지 않고, 백엔드는 장애를 소리 없이 흡수할 수 있습니다.
다중 소스 추천에 가산점: 상품 점수, 숏폼 점수, 카테고리 점수에서 동일한 영상이 반복적으로 등장한다면 그만큼 추천 근거가 두텁다는 뜻입니다. 이런 경우 점수를 단순 합산하는 대신 가산점을 부여하여, 여러 신호가 공통으로 가리키는 영상이 상위에 노출되도록 했습니다.
이 결정들은 알고리즘 문서에는 잘 등장하지 않지만, 추천 시스템을 실제 커머스 트래픽에 태울 때 지연 시간, 가용성, 신호 품질을 지켜주는 버팀목이 됩니다.
성과
A/B 테스트 조건
영상 이해 기반 Hybrid 추천의 효과를 객관적으로 검증하기 위해, 기존 로직 대비 A/B 테스트를 진행했습니다. 테스트 조건은 다음과 같습니다.
- 동일 영역(숏픽 추천 영역) 기준
- 동일 기간 기준
- A/B 각 50% 트래픽 배분
- 점진 적용 후 확인한 수치
결과

| 지표 | 기존 로직 대비 증감율 |
| 클릭 UV (순방문자) | +21.7% |
| 총주문고객수 | +57.5% |
| 전환율 (CR) | +29.4% |
클릭, 주문, 전환율 모든 지표에서 유의미한 상승이 확인되었습니다. 특히 총주문고객수 +57.5%는, 영상 기반 추천이 단순한 클릭 증가를 넘어, 구매 행동에도 긍정적인 영향을 줄 수 있음을 보여주는 수치입니다.
기존에는 “이 상품과 비슷한 상품이 연결된 영상”을 보여주고 있었기 때문에 고객은 이미 본 것과 비슷한 것을 반복해서 보게 되었습니다. 반면 소구 포인트 기반 추천은 “이 영상에 반응한 이유와 비슷한 이유를 가진 다른 영상”을 보여주기 때문에, 고객 입장에서 새로운 발견이 가능해졌고 그 발견이 구매로 이어진 것으로 해석됩니다.
향후 계획: 콘텐츠 → 추천 → 반응 학습 → 다시 콘텐츠
이 프로젝트를 수행하며 영상 이해 모델과 기존 AWS 인프라를 연결하면서, 그동안 제대로 활용하지 못했던 영상 데이터를 비로소 실제 서비스에 적용할 수 있게 되었습니다.
GS SHOP 검색추천파트는 여기서 멈추지 않고 다음 단계를 준비하고 있습니다. 지금까지는 사람이 직접 숏픽 영상을 만들고, AI가 그 안의 핵심 메시지를 구조화해서 추천에 쓰는 단방향 흐름이었습니다. 그런데 이 과정에서 하나의 가능성이 보였습니다. 추천 시스템은 “무엇을 보여줄까”만 결정하는 것이 아니라, 고객이 실제로 어떤 소구 포인트에 반응했는지를 지속적으로 학습하는 구조이기도 하다는 것입니다.
실용성, 스타일링, 활용 상황, 기능성 같은 요소가 클릭과 전환으로 이어졌다면, 이것은 추천 신호일 뿐 아니라 다음 콘텐츠를 만들 때 참고할 수 있는 제작 신호이기도 합니다. 앞으로 GS SHOP 검색추천파트가 그리고 있는 것은 다음과 같은 선순환 구조입니다.

- 콘텐츠 제작: 사람과 AI가 협업하여 영상을 생성
- 추천·노출: 고객 맞춤으로 영상을 전달
- 반응 학습: 어떤 소구 포인트에 반응했는가를 구조화
- 다시 콘텐츠: 검증된 소구 포인트를 기반으로 영상을 재생산 (Amazon Nova 등의 영상 생성 모델 활용)
GS SHOP은 방송과 영상을 전문적으로 다루는 회사이고, 검색추천파트는 고객을 이해하고 상품을 추천하는 전문가 집단입니다. 이 두 역량이 만나는 지점에서, 추천에서 검증된 소구 포인트를 바탕으로 고객이 관심을 가질 만한 영상을 제작하는 다음 단계까지 그려보고 있습니다. 궁극적으로는 ‘추천 시스템을 개선하는 것’에서 나아가, ‘콘텐츠와 추천 사이에 학습 루프를 만드는 것’이 목표입니다.
맺음말
이 글에서는 GS SHOP이 Amazon Bedrock 위에서 TwelveLabs의 Video Understanding 모델을 활용해, 영상 속 맥락을 추천 가능한 신호로 전환하고 기존 추천 엔진에 Hybrid 방식으로 결합해 나간 여정을 공유했습니다.
이번 프로젝트를 수행하면서 GS SHOP 검색추천파트가 확인한 핵심은 세 가지로 정리할 수 있습니다.
- 영상에는 상품 메타데이터만으로는 담기지 않는 풍부한 신호가 있습니다. 기능성, 스타일, 사용 상황, 실용성 같은 맥락은 영상만이 드러낼 수 있는 정보이며, 이것이 추천의 질을 근본적으로 바꿀 수 있었습니다.
- 중요한 것은 영상을 ‘잘 읽는 것’이 아니라, 추천에 필요한 신호를 ‘잘 남기는 것’이었습니다. 영상 전체 설명을 그대로 임베딩하면 상품 정보에 끌려가 맥락 신호가 희석됩니다. 소구 포인트 키워드만 선택적으로 임베딩하는 전환이 있었기에, 비로소 카테고리를 넘나드는 추천이 가능해졌습니다.
- 기존 시스템을 교체하지 않고 확장하는 것이 가장 효과적이었습니다. Amazon Bedrock, OpenSearch, ElastiCache 등 이미 사용 중이던 서비스 위에 새로운 레이어를 얹는 Hybrid 방식이었기에, 리스크를 최소화하면서도 빠르게 실제 서비스에 연결할 수 있었습니다.
이제 GS SHOP은 영상을 단순히 노출하는 것을 넘어, 영상을 이해하며 추천하기 시작했습니다. 영상을 추천에 활용하거나, 비정형 콘텐츠에서 추천에 쓸 수 있는 신호를 뽑아내야 하는 비슷한 고민을 갖고 계신 분들께, 시행착오까지 포함한 이번 사례가 작은 참고가 되었으면 합니다.