brunch

You can make anything
by writing

C.S.Lewis

by EUNKY Apr 22. 2024

DAU 17억 명, 글로벌 서비스의 추천법

메타데이터로 만드는 최적의 추천과 검색 결과

지난 글에서는 추천 시스템의 필요 요소를 살펴보며, '아이템 속성'에 대해서도 언급했다. 이번 글은 추천의 번외편(?)으로 아이템(콘텐츠) 속성이라 할 수 있는 메타데이터를 컨텐츠 추천은 물론, 검색에 잘 활용하는 예시를 소개해 본다. 예시 사례는 하루에 100억 개 이상의 GIF 콘텐츠를 제공한다고 직접 밝힌, 미국 기반의 GIF 파일 데이터베이스 및 검색 엔진 지피(GIPHY)다.


미국 기반의 GIF 파일 데이터베이스 및 검색 엔진지피(GIPHY)




GIPHY(지피)는 어떤 서비스?

흔히 '움짤'이라고 부르는, Gif 파일을 검색하다 보면 한 번쯤 접해봤을 서비스이다. GIPHY의 존재를 몰랐더라도 상관없다. GIPHY가 SDK를 통해 인스타그램(22년 기준 인스타그램 스토리의 25% 이상이 GIF를 포함했다), 왓츠앱, 트위터, 위챗, 페이스북, 틱톡 등 소셜 네트워크 서비스나 Slack 등 커뮤니케이션 중심 서비스에 GIF 콘텐츠와 솔루션을 제공하고 있기에 해당 서비스들을 통해서 나도 모르는 새 이미 GIPHY를 이미 만났을 테니까.

인스타그램 속 GIPHY, 대표적으로 스토라와 댓글 등에서 Stickers와 GIFs 타입의 콘텐츠를 각각 제공한다.


GIPHY에서는 누구나 크리에이터가 될 수 있다. GIPHY를 통해 사용자는 GIF 콘텐츠를 사용하거나 다운로드 또는 공유가 가능하며, 직접 콘텐츠를 만들고 업로드할 수도 있다.(실제 이모티콘 작가가 창작물을 홍보하거나, 개인이 자신이 만든 콘텐츠를 인스타그램이나 틱톡에서 스티커로 사용하려는 목적으로 GIPHY에 콘텐츠를 업로드하는 사례가 많다.)


[ GIPHY의 서비스 형태 및 로그인 여부에 따른 기능 구분 ]

자체 웹/앱 : 비로그인 시 콘텐츠 검색/공유/다운로드 가능, 로그인 시 콘텐츠 제작 및 업로드 가능

API/SDK 솔루션 : GIPHY의 솔루션이 제공되는 서비스에서는 콘텐츠 검색/사용만 가능


네임드 서비스들에 SDK를 통해 Gif 콘텐츠 및 솔루션을 제공하는 GIPHY


글로벌 단위로 서비스를 전개하며, 누구나 콘텐츠를 공급 및 사용할 수 있는 만큼 GIPHY의 사용자 수는 꾸준히 성장하고 있다. 2016년에 DAU 1억 명 달성, 이후 1년 뒤인 2017년에는 DAU 2억 명을 기록했다. 이후 자체 웹과 모바일 앱 서비스는 물론 API/SDK로까지 콘텐츠 제공을 확대하며, 셔터스톡에 인수된 지난 2023년 기준으로는 DAU가 무려 17억 명에 달한다.





GIPHY(지피)는 어떻게 추천을 할까?

하루 100억 개 이상의 GIF 콘텐츠를 17억 명의 글로벌 사용자에게 제공하는 서비스는 과연 어떻게 추천을 할까? 콘텐츠의 개수와 종류도 많고 사용자도 많은데, 서비스가 제공되는 국가도 다양하니 추천의 방법이 더욱더 궁금해진다.

현재까지 모니터링과 실험으로 파악해 본 GIPHY의 추천(검색 결과에서의 추천도 포함)은 다음 키워드와 같다. "#트렌드와 인기 기반의 비개인화 추천 #메타데이터 수집과 활용 #콘텐츠 필터링" 이에 대한 자세한 내용은 아래에서 예시 이미지와 함께 설명한다.



1. "트렌드와 인기 기반의 비개인화 추천" 

가장 먼저 추천 시스템부터 정리해 보면, GIPHY의 추천은 비개인화 추천 시스템이다. 각각의 개인의 행동 및 선호 데이터를 수집해 맞춤 콘텐츠를 추천하기보다는 트렌드 키워드(실시간/인기도 등) 기반으로 모든 사용자에게 동일한 추천을 한다.(단, 국가 및 연령에 대한 일부 콘텐츠 미노출 필터링은 존재함) 

여기서 문득 이런 생각이 들 수 있다. '사용자도 많고, 콘텐츠도 많은 서비스에서 개인화 추천이 아닌 비개인화 추천만 한다고?' 그 이유는 사용자들이 GIPHY를 사용하는 목적과 상황과 연관 지어보면 이해가 쉬운데, "커뮤니케이션"과 연관되었기 때문이다. 대화가 이루어지는 시점과 상황에 따라 적합한 최적의 콘텐츠가 달라지므로 개인의 사용자가 선호할만한 특정 속성의 콘텐츠를 추천하기보다는, 더 넓은 시각으로 바라보고 대부분의 사용자가 반응할 만한 시의성과 트렌드 키워드 기반의 콘텐츠를 추천한다.

GIPHY의 메인(홈)과 탭 구성


GIPHY의 메인(홈)은 Trending(트렌딩) 탭이다. 이외에는 순서대로 Stickers(스티커), Emoji(이모지), Reactions(리액션), Artists(아티스트), Clips(클립), Text(텍스트), Memes(밈), Animals(동물) 탭이 있다. 실제 GIPHY에서 정의하는 콘텐츠 유형은 아래의 3가지인데, 콘텐츠 구분 외 다양한 테마에 따라 콘텐츠를 구분하여 탭으로 노출하고 있다.

 [ (참고로 알아보는)GIPHY의 콘텐츠 구분 ]
아래는 현재 GIPHY에서 정의하고 있는 콘텐츠의 구분이며, 그 조건과 기준은 콘텐츠의 활용성으로 추측된다.

- GIFs : 확장자가 'JPG 또는 PNG, GIF, MP4, MOV, WEbM'인 콘텐츠
- Stickers : 확장자가 'JPG 또는 PNG'이며, 배경이 투명하거나 이미지 외곽에 투명한 여백이 있고, 커뮤니케이션 시 스토리 텔링으로 사용 가능한 콘텐츠(=이모티콘의 개념이며, 글로벌에서는 이모티콘보다 스티커라는 표현이 자주 쓰인다.)
- Clips : 확장자가 'JPG 또는 PNG, GIF, MP4, MOV, WEbM'이며, 사운드가 있는 콘텐츠


GIPHY의 메인(홈)에서의 추천
같은 날 구글 트렌드의 화면


Trending 탭에서는 말 그대로 트렌디한 콘텐츠를 노출해 준다. 트렌드 키워드의 예시로는 특정한 기념일(글로벌 전체 또는 상위 사용국가 기준), 시즌성 또는 실시간 인기 키워드 기준으로 이에 매칭되는 콘텐츠를 보여주는 것으로 보인다. 예시로, 2024년 4월 21일 기준 구글의 트렌드 데이터 팀이 큐레이션 한 키워드에는 #Earth Day 2024(*지구의 날은 4월 22일이다)와 #Fomula 1(*포뮬러1의 상하이에서 2024년 4월 19~21에 개최되고 있었다)이 있다. 같은 날 GIPHY의 Trending 탭의 상단 배너는 지구의 날에 부합하는 "ALL The Earth GIFS"였고,Trending 탭과 Stickers탭의 가장 상단에서 노출되는 콘텐츠는 포뮬러1을 연상시키는 콘텐츠였다.


2024년 4월 21일의 GIPHY Trending 탭 콘텐츠
비개인화 추천으로 "인기" 콘텐츠를 추천하는 GIPHY

Trending 탭은 트렌드 키워드 콘텐츠 외에도 시의성에 맞거나 인기 있는 콘텐츠를 혼합하여 보여준다. 위 화면을 기준으로 설명해 보면, 포뮬러1 관련 콘텐츠 외에 #ryangarcia(권투 경기로 4월 19일 구글 검색어 트렌드 상위 랭크, GIPHY 클립 탭에서 상위 추천) #sunday(4월 21일의 요일) #happybirthday(인기 키워드, 주로 인사말의 경우 꾸준히 사용되므로 인기도가 높은 경향이 있음)의 콘텐츠가 함께 노출됨을 알 수 있다. 그리고 같은 날 노출되는 인기 키워드는 GIPHY 자체 웹/앱 외에 API/SDK 솔루션에도 동일하게 적용된 것을 확인할 수 있었다.


GIPHY가 공개한 2023년 TOP GIFs 콘텐츠


다음 키워드로 넘어가기 전, GIPHY가 공개한 2023년 TOP GIFs 콘텐츠를 기반으로 인기 키워드에 대해 알아보겠다. 커뮤니케이션에서 주로 사용되는 GIF 콘텐츠의 인기란 결국은 사용성과 연관된다. 이는 이모티콘과 같은 원리인데, (1)메세지가 긍정적이며 (2)메세지를 전하는 대상(캐릭터, 인물 등)이 매력적이여야하고 (3)전하는 메세지가 텍스트/동작/사운드 등의 요소로 잘 전달이 되는 콘텐츠가 많은 사용자들의 선택을 받고 인기 콘텐츠가 되는 것이다.

결국 대부분의 사용자가 자주 전하는 메세지 기준으로 인기 키워드(e.g. 사랑, 행복, 축하, 인사 등)가 정해지고, 그 메세지를 전하는 대상과 표현력 기준으로 키워드 안에서 인기 콘텐츠가 판가름될 것이다.(아마 위 인기 콘텐츠의 경우는 인기 키워드 나열 후 해당 키워드에서 가장 상위의 콘텐츠를 골라낸 것으로 보인다)




2. "메타데이터 수집과 활용"

누구나 콘텐츠 사용자가가 될 수도 있고, 콘텐츠 크리에이터가 될 수 있는 서비스이기에 GIPHY에게는 메타 데이터가 아주 중요한 정보이다. 기본적으로는 검색 시 키워드를 분석하여 이에 적합한 결과를 매칭하여 보여주어야하며, 여기에 GIPHY는 커뮤니케이션 상황에서 사용된다는 걸 감안한다면, 대화형검색(NLP기반)으로 실시간으로 입력되는 키워드에 반응하며 매칭되는 콘텐츠를 노출해주어야한다. 현재 GIPHY가 어떻게 검색 결과를 보여주는 지는 아래의 이미지를 보면 이해가 쉽다.

첫 번째로는 인스타그램 스토리에서 키워드를 바꾸어가며 GIPHY 스티커를 검색해 봤다. h -> hi -> hik 하나의 알파벳을 더해가면서 검색 결과가 어떻게 바뀌는지 살펴봤다. 그리고 다음으로는 형용사와 단어를 조합해서 검색을 해봤다. 두 가지 검색 과정 모두 검색 시 결과는 실시간으로 반영되어 빠르게 콘텐츠가 보여졌으며, 정확도도 꽤 높아 보였다. 


검색할 수 있는 키워드의 범위가 궁금해지니, 두 번째로는 키워드의 형태를 달리하여 검색해 봤다. 고양이 이모지와 cat과 kitty를 검색해 보고, 뒤이어 ❤️와 고양이 이모지+❤️를 각각 압력해보며 검색 결과가 어떻게 바뀌는지 살펴보았다. 결과로 보여진 콘텐츠는 위와 같았는데, 이를 통해서는 아래와 같은 내용을 유추할 수 있다.


(1)여러 개의 단어 또는 문장을 입력 시 키워드가 되는 단어를 추출한다. 

(2)검색 키워드는 텍스트-이모지 간 맵핑되어있다.(고양이 이모지 = cat, 두 키워드의 검색 결과는 동일했다)

(3)개별 콘텐츠는 여러 개의 키워드(=메타데이터)를 갖고 있다.(고양이 이모지cat, kitty 검색 결과에 모두 노출된 콘텐츠가 있었다. 해당 콘텐츠는 이외에도 kitten, 고양이, 캣 등 연관 키워드를 갖고 있을 수 있다)


영어와 이모지 외에 한글로도 검색해 본 과정


이외에 한글로도 문장을 검색해 보기도 했다. 피자 -> 피자먹는 고양이는 -> 피자먹는 고양이는 행복해 순으로 문장을 늘려가며 검색 결과를 살펴보았는데, 해당 결과도 꽤 정확했다.('피자먹는 고양이는'과 '피자먹는 고양이는 행복해'의 경우 결과는 거의 흡사했으나, 결과 내에서의 우선순위가 다르고 가장 상위의 결과가 검색 키워드에 부합하므로 '꽤 정확했다'라고 판단했다)



콘텐츠 상세에서의 연관 추천


콘텐츠가 가진 키워드(=메타데이터)는 검색 외에, 콘텐츠 상세에서의 추천에서도 활용된다. 해당 페이지의 하단에서 사용자가 선택한 콘텐츠와 유사성 높은 연관 콘텐츠들을 추천해 준다. 위 예시로 보면 피자를 물고 있는 고양이 콘텐츠의 경우 #피자(#pizza, #피자 이모지) #고양이(#cat, #고양이 이모지) #점심(#lunch) #배고파(#hungry)의 키워드를 가지고 있을 것이며, 이외에 #접시 이모지 #침 흘리는 이모지 등 연관되는 키워드들을 가졌을 수 있다.


그럼, 이렇게 다양한 검색어 키워드의 검색 결과로 매칭되는 콘텐츠의 관리는 어떻게 해야 할까? GIPHY가 제공하는 콘텐츠 제작 및 업로드 기능을 통해 콘텐츠를 업로드하는 과정을 아래와 같이 살펴봤다.


GIPHY APP에서의 콘텐츠 업로드 과정
GIPHY WEB에서의 콘텐츠 업로드 과정과 태깅


콘텐츠 업로드는 콘텐츠 파일을 업로드하고 파일의 추가 정보를 기입하는 순서로 진행된다. 추가 정보는 콘텐츠의 공개 여부와 태그, 소스 URL, 콘텐츠의 연력 등급, 콘텐츠가 추가될 콜렉션으로 구성되어 있다. 여기서 콘텐츠를 검색 및 추천 시 기본적으로 활용할 수 있는 메타데이터는 태그일 것이다. 사용자가 입력하는 태그가 곧 해당 콘텐츠의 근본적인 키워드이자 메타데이터가 되므로, GIPHY 역시 이를 중요하게 바라보고 올바른 태깅을 위한 콘텐츠 태깅 가이드를 제공하고 있다. 상세 내용은 아래와 같다.


[ GIPHY의 콘텐츠 태깅 가이드라인 ]

•  대상의 이름(The subject’s name)

•  대상의 행동(The subject’s actions)

•  콘텐츠에 대한 상황 설명(Description of what is happening in the content)

•  콘텐츠에 사운드 또는 텍스트로 포함된 단어(Words spoken or text in the content)

•  콘텐츠에 대한 사람들의 반응(How people would react to the image or text)

•  콘텐츠의 대상이 표현하는 감정(The emotions being displayed by subjects of the image)

•  콘텐츠와 관련된 인기 캐치 프레이즈(Popular catch phrases associated with the content)



GiPHY의 자동 추천 태깅 모듈


이외에도 GIPHY는 2019년 태그 입력의 자동화를 위해 메타데이터와 K-Nearest Neighbor 모델을 기반으로 GIF에 태그를 추천하는 GIPHY Tagz(콘텐츠 파일 자체의 이미지 분석을 통한 태깅)라는 서비스를 테스트했었고, 수동 태그의 문제점 보완을 위해 한정된 계정에 한해서만 콘텐츠 업로드 과정에서 자동으로 추천 태그를 제공하는 태깅 모듈을 베타로 제공한 이력이 있다.



FB WSL 모델을 통한 태그 추출 사례


GIPHY의 기술 블로그에 따르면, 자동 추천 태깅 모듈은 콘텐츠에 태그가 아예 없는 경우에는 새로운 태그를 제안하고, 태그가 있는 상태라면 기존 태그와 유사한 태그를 제안했다. 그리고 이렇게 제안된 태그의 정확도를 측정하기 위해 추천하는 태그에 대해 확인(seen)/추가(add)/삭제(reject) 이벤트를 트래킹하여 모델의 성능 개선에 활용했으며, 일부 한정된 계정에서의 베타 테스트를 통해 아래와 같은 결과를 얻었다고 한다.


태그 없는 GIF 콘텐츠의 비율이 45% 감소

태그가 1개뿐인 GIF 콘텐츠 비율이 13% 이상 감소

1개 이상의 태그를 지닌 GIF 콘텐츠의 비율이 2% 증가

업로드된 GIF 콘텐츠 당 평균 태그 수가 약 39% 증가



[ GIPHY의 자동 태깅 모델 구축 관련 기술 블로그 포스트 ]

Part 1: Computer Vision @ GIPHY: How we Created an AutoTagging Model Using Deep Learning

Part 2: Computer Vision @ GIPHY: How we Created an AutoTagging Model Using Deep Learning




3. "콘텐츠 필터링"

다양한 키워드에 맞춰 콘텐츠를 추천하고 검색 결과로 제공하는 것 외에, 글로벌 서비스에서는 각 문화권마다의 콘텐츠 기호도를 반영하는 것도 중요하다. 가령, A라는 국가에서 제일 인기가 많았던 콘텐츠라도, 해당 콘텐츠에 등장하는 대상과 대상의 행동, 텍스트나 사운드가 B라는 국가에서는 부정적이거나 금기시될 수 있기 때문이다.(e.g. 엄지를 올리는 동작, 하이파이브, 락앤롤 제스처 등) 따라서 콘텐츠를 트렌드 기반으로 잘 추천하고, 검색 결과로 메타데이터 기반으로 매칭되는 콘텐츠를 노출하는 것만큼이나 콘텐츠 자체의 안정성을 확인하고 연령 및 국가에 따라 콘텐츠를 잘 필터하여 보여주는 것이 필요하다. 

GIPHY의 경우 자체 앱에서는 로그인 시 사용자 수위 높은 콘텐츠의 검색 결과 반영 여부를 선택할 수 있으며, 이외에 부적합한 콘텐츠에 대한 리포트와 기술 관련 파트너십을 통해 전반적인 콘텐츠와 태그에 대한 안정성 모니터링을 진행한다.


GIPHY의 콘텐츠 필터링



콘텐츠가 지닌 다양한 메타 데이터를 활용해 전 세계 사용자들을 대상으로 비개인화 추천을 하는 GIPHY. 개인 사용자의 선호도를 반영한 개인화 추천영역이 더해진다면 액티브 유저의 볼륨 증가에도 기여할 텐데 개인화 추천을 적극적으로 하지 않는 부분에 대해서는 의문이 남는다. 


GIPHY에서 좋아요한 콘텐츠를 모아볼 수 있는 Favorites 탭. 여기서 콘텐츠 개인화 추천을 한다면 어떨까?


당장은 아니더라도 이후 개인화 추천의 한 영역으로 고려해 볼 수 있는 지점은 Favorites 탭이다. GIPHY에서 좋아요한 콘텐츠를 모아볼 수 있는 공간으로, 현재는 사용자가 직접 좋아요한 콘텐츠만 보여주기 때문에 콘텐츠가 없는 빈 화면이 노출되거나 소수의 콘텐츠만 노출되기도 한다. 여기서 (1)인기 콘텐츠나 (2)사용자가 좋아요한 콘텐츠와 메타데이터 기반으로 연관성을 지닌 콘텐츠(이미 각 콘텐츠의 상세 페이지에서는 노출되고 있으므로 아주 간단한 작업일 것)를 노출한다면, 사용자의 좋아요 액션은 물론 콘텐츠 탐색도 함께 유도할 수 있지 않을까?


어쩌면, GIPHY가 적극적인 개인화 추천을 하지 않는 이유는 "비로그인 상태 또는 API/SDK 솔루션을 통해 서비스를 사용하는 사용자의 비중이 크기 때문에 사용자 프로파일 생성이 어려워서"일지도 모른다. 또는 "서비스가 사용되는 상황의 특성상(불특정 다수와의 커뮤니케이션, 스티커로 콘텐츠를 꾸미거나 생성 등) 개인화 추천이 비효율적"이라고 판단했을지 모른다. 정확한 이유야 무엇인지 알 수 없을 테지만, 서비스의 추천 방향성이 비개인화 추천이라도 특정 영역에서는 개인화 추천이 필요하며 적합한 형태일 수도 있다. 

다양한 형태로 서비스를 확장하며 성장해온 서비스 GIPHY. 성장의 과정에서 과연 개인화 추천까지 추천의 범위를 확장할지, 아니면 비개인화 추천을 유지하며 로직을 더 고도화할 것인지 앞으로의 추천 방향성이 기대된다.




이어지는 다음 글에서는 "추천의 정확도를 높이기 위한, 자연스러운 사용자 선호도 데이터 습득의 사례"를 다룬다.

https://brunch.co.kr/@eunkyfanxy/50


매거진의 이전글 고객을 만족시키는 추천이란
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari