ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Youtube 추천 시스템 분석
    역기획 2018. 11. 10. 21:05

    기획을 제대로 공부하려면 서비스 역기획 해보라는 을 읽고 겁도 없이 Youtube 추천 시스템을 팠다

    (지금 보니 이 글에서 Youtube 추천 기술에 대한 얘기가 나와서 그랬나 보다..)


    이미지 1. 시청한 비디오 갯수 VS 홈페이지 리스트 중 관련 없는 추천 갯수



    분석 결과 특정 검색어가 포함된 비디오를 많이 시청할 수 록 관련 없는 비디오 추천이 줄어든다는 조금 당연한 상관관계를 빼고는 각 검색어마다 상이한 결과를 보였다. 위의 그래프를 보면 경사도가 -0.29, -0.45, -1.05 로 차이가 많이 나서 각 결과가 비슷한 관계를 나타낸다고 보기에는 어렵다.  


    또한 관련 있는 추천과 관련 없는 추천을 판단하기에는 각 검색어마다 연결될 수 있는 키워드가 너무 많다는 사실을 분석 중 깨달았다. 두 단어로 구성된 Disney Piano라는 키워드에는 특히나 연관 키워드가 많았는데, 예를 들면 ‘Disney Piano’라는 단어가 포함된 비디오를 보고 난 후, 라이온킹, 클래식, 재즈, 피아노, 디즈니 캐릭터, 만화, 어린이 등의 단어가 포함된 비디오가 추천 리스트에 표시됐다. 추천 리스트에 Lion King 토픽이 표시된 경우, 이는 내가 본 Disney Piano 비디오와 관련이 있는 비디오인가 아닌가?  




    내 머리로는 추천된 비디오와 시청한 비디오 사이의 연관성을 다 파악할 수 없음을 분석 도중 깨닫고, 1주가 넘는 삽질 후 답안지 구글을 폈다.  



    이미지 2. 구글 검색 결과


    ..딥러닝


    그렇다.. Youtube 추천 시스템은 내가 검색 몇 번으로 분석할 수 있는 그런 간단한 구조의 서비스가 아니었다.. 


    그래도 이왕 시작한 거 끝을 보자는 생각으로 관련성이 높아 보이는 The Verge, Medium 의 아티클과 추천 시스템을 만든 구글 엔지니어들의 논문을 읽었다. 개인적으로 머신 러닝은 이전에 구글 한 적이 있었지만 딥러닝은 처음 배우는 개념이어서 처음 글을 읽을 때에는 아무것도 이해할 수 없었다 ㅋㅋ. 그래도 모르는 단어마다 검색하며 끝까지 읽었고, 여기서 3개의 글을 통해 내가 이해한 Youtube 추천 시스템을 설명해보려 한다.


    읽은 글:

    1. "HOW YOUTUBE PERFECTED THE FEED" by Casey Newton

    (https://www.theverge.com/2017/8/30/16222850/youtube-google-brain-algorithm-video-recommendation-personalized-feed)

    2. "How YouTube Recommends Videos" by Moin Nadeem 

    (https://towardsdatascience.com/how-youtube-recommends-videos-b6e003a5ab2f)

    3. "Deep Neural Networks for YouTube Recommendations" by Paul Covington, Jay Adams, Emre Sargin

        (https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/45530.pdf)




    분석의 목적:

    어떻게 Youtube가 추천 기술을 사용하여 사업 전략을 구현해냈는지 이해하기 위함



    1.    비즈니스 (Youtube의 목표와 전략):


    Youtube2005년 다른 웹사이트에 동영상을 손쉽게 올릴 수 있는 인프라로 시작. 광고 플랫폼으로서 동영상에 광고를 매칭 및 사용자에게 노출시켜 수익 발생. 서비스 초기에 사용자들은 보고싶은 동영상이 있을 때 youtube에 들어가 검색. 특정한 니즈가 있을 때만 홈페이지를 사용하다 보니 사용자 당 시청 동영상 수, 사용자가 홈페이지에 머무르는 시간 (engagement) 모두 저조. 2011년 부터 youtube의 목표: 사용자들이 홈페이지에서 더 많은 시간을 보내게 하자. 찾고 싶은게 없어도 홈페이지에 들어오게 만들자! ‘Make Youtube a destination.’ 사용자들이 플랫폼에 머무르는 시간이 길어질 수 록 광고 노출 기회 증가, 수익 발생.


    Youtube가 목표를 달성한 방법:


    1.     2012. 비디오 클릭 수 대신 비디오 시청 시간 기반으로 동영상을 추천하기 시작: 자극적인 제목과 썸네일로 클릭을 유도하지만 사용자들이 오래 시청하지 않는 저품질의 비디오 추천 리스트에서 제외. 그 대신 사용자들이 끝까지 시청하는 고품질의 영상을 추천 리스트에 포함. 이를 통해 이후 3년 동안 사용자들의 동영상 시청 시간이 매년 50%씩 증가.


    2.     2015. 모회사 구글의 딥 러닝 인공지능 Brain 사용하기 시작. 이전에는 유저들의 과거기록을 머신 러닝으로 분석, 유저가 시청한 비디오와 유사한 비디오를 추천하는 것에 그쳤음. Google Brain의 딥러닝을 통해서는 유저와 비디오의 관계를 다각도에서 분석, 유저와 다양한 관련성을 가진 비디오를 빠르고 정확하게 추천. 고도의 비디오 맞춤 추천 기술로 이후 3년 동안 Youtube 사용자의 총 비디오 시청 시간 20 배 증가. 현재 사용자가 youtube에서 시청하는 비디오의 70% Brain 알고리즘이 추천한 비디오



    2.    기술


    이미지 3. Youtube 추천 시스템



    Youtube의 추천 시스템 overview: 

    l  구글 딥 러닝 인공지능 Brain의 알고리즘과 심층 신경망 (Deep neural network, DNN) 모델 사용.

    l  엄청난 다중 분류 문제: 수많은 비디오 중 사용자가 오랜 시간 시청할 비디오 몇 개를 골라내기

    l  두 단계의 정보 검색 방법을 따라 2개의 심층 신경망으로 구성된 시스템.

    1. Candidate Generation network (후보 생성 네트워크) : 사용자가 다음에 시청할 비디오 예측.

    2. Ranking network (순위 평가 네트워크): 사용자의 비디오 시청 시간 예측.


    정보를 단계적으로 접근하는 이유: 제한된 정보를 사용해 첫 번째 네트워크로 분석해야 할 데이터 범위 좁힘. 좁혀진 데이터 범위 내에서 두 번째 네트워크로 더 많은 정보를 사용해 사용자가 시청하고 싶어 하는 비디오 정확하게 추천.  



    1.    Candidate Generation network (후보 생성 네트워크)

    이미지 4. 후보 생성 네트워크



    후보 생성 모델이 풀어야 할 문제: 사용자가 시청할 다음 비디오는?



    후보 생성 모델이 하는 일: 

    시청한 비디오 ID, 검색어, 사용자 정보 (위치, 나이, 성별 등) 등 유저의 활동 내역과 유저가 비디오를 시청한 문맥 배우기. 모든 유저 정보는 벡터로 “embedding” (숫자화) 되어 심층 신경망에 입력됨. 이 정보를 통해 모델은 수 만개의 비디오 사이에서 유저가 시청할 만한 몇 백개의 비디오 분류. Softmax 다중 분류 함수 활용해 분류된 비디오 각각의 시청확률 분석. 시청 확률이 높은 비디오 선별.  


    (다른 모든 정보 -검색 내역, 기기 정보 등- 또한 ‘embedding’을 통해 심층 신경망에 쉽게 연결할 수 있음. 많은 정보를 처리하여 사용자와 관련성이 높은 비디오 추천 가능해짐.)


    후보 생성 모델 트레이닝: 

    딥 러닝 모델이 분류한 비디오가 사용자가 원하는 비디오인지 아닌 지 알려줌으로써 모델의 정확도 개선. 분류 성공: 분류한 비디오를 사용자가 끝까지 시청 / 분류 실패: 분류한 비디오를 사용자가 끝까지 시청하지 않음. 모델이 사용자가 끝까지 시청하는 비디오를 골라내도록 훈련.


    후보 생성 모델이 새로운 비디오를 추천하게 하기: 

    사용자들은 자신과 관련 있는, 새로운 콘텐츠를 보고 싶어함. 이를 위해 모델 트레이닝 시 업로드 된 지 얼마 안 된 비디오를 분류 성공카테고리에 포함시켜서 모델이 시간에 따른 비디오 인기도를 이해하게 함. 이 방법을 통해 모델은 추천 후보 생성 시 업로드로부터의 시간을 반영. 새로운 비디오의 조회수를 올리거나 바이럴 콘텐츠를 퍼뜨리는 데 중요한 기술.


    테스트 데이터 샘플을 고를 때 주의해야할 점: 

    모델이 단순히 주어진 데이터를 활용해 시청내역 사이에서 사용자가 시청한 비디오를 추측해 낼 수 있음 (그림 a). 이를 위해 모델 테스트 시 시간 t 까지의 순서를 매기지 않은 시청내역 데이터를 입력. 사용자가 시간 t+1에 시청할 비디오를 추측하게 하여 (그림 b) 모델의 정확도 높임.



    이미지 5. 테스트 데이터 고르기



    2.    Ranking network (순위 평가 네트워크)



    이미지 6. 순위 평가 네트워크



    순위 평가 모델이 풀어야 할 문제: 사용자가 추천 표시된 비디오를 얼마나 오래 시청할 것인가


    순위 평가 모델이 하는 일: 

    비디오와 유저에 대한 다양한 정보를 바탕으로 수백 개의 비디오 후보에게 점수 부여, 가장 높은 점수를 받은 비디오 몇 개를 

    사용자에게 보여줌.

    각 사용자의 기준에 맞춰 사용자가 끝까지 시청할 확률이 가장 높은 비디오를 추천. 비교적 작은 숫자의 비디오만 분석하므로, 비디오에 대한 정보, 사용자와 비디오 간의 관계에 대한 다양한 정보를 처리할 수 있음.


    다양한 데이터를 모델에 포함시키기:

    l  연속형 데이터 (마지막으로 비디오를 시청한 때로부터의 시간, 이전에 비디오가 표시된 횟수), 이산형 데이터 (비디오 ID)

    l  Impression 데이터: 비디오에 대한 정보, 비디오가 점수를 부여받을 때 마다 데이터 처리.

    l  Query 데이터: 유저/문맥에 대한 정보. 입력이 있을 때마다 데이터 처리.


    순위 평가 모델은 위와 같은 데이터 수백 개를 처리. 연속형 데이터는 정규화 (normalize), 이산형 데이터는 벡터화하여 (embedding) 처리.  


    어떻게 사용자의 연속적인 행동을 비디오 순위 평가에 반영할 것인가? 구글 엔지니어들이 파악한 중요한 데이터

    1. 추천된 비디오와 유저의 이전 interaction. 유저는 추천된 비디오가 업로드된 채널의 비디오를 이제까지 몇 개 시청했는가? 유저가 이 토픽의 비디오를 시청한 마지막 시간은? 유저의 활동 내역을 담은 연속적인 데이터를 활용해 각각의 비디오에 대한 정보를 연결

    2. 후보생성 모델이 제공한 정보 활용. 후보 생성 모델은 어떤 정보를 토대로 이 비디오를 추천했는가? 그 정보가 시청 확률에 미친 영향은? 3. 이전 비디오 표시 빈도. 만약 유저가 추천 리스트에 표시된 비디오를 시청하지 않았다면 순위 평가 모델은 다음 추천 리스트에서 그 비디오를 제외함. 추천 리스트가 사용자에 맞게 계속 변할 수 있도록 함.


    순위 평가 기준: 

    비디오 표시 당 예상 시청 시간. 시청 시간이 사용자의 Engagment를 클릭 수 보다 더 잘 담아냄. (클릭 수로 순위 평가 시 시청자가 끝까지 보지 않는 허위 비디오 조장)


    순위 평가 모델 트레이닝

    추천된 비디오를 보거나, 안 보는 2가지 경우의 수에 따라 비디오 분류. 비디오를 보는 경우 시청 시간에 따라 더 높은 점수를 줌. 추천 성공: 유저가 표시된 비디오를 클릭, 시청 시간에 따라 점수 부여. / 추천 실패: 유저가 표시된 비디오를 클릭하지 않음. 이와 같은 예로 모델을 트레이닝 해 사용자의 비디오 시청 시간을 근접하게 예측하는 함수 생성. 시청 시간이 높게 예측된 비디오를 추천.



    두 모델이 공통적으로 보여주는 딥 러닝 인사이트:

    유투브의 추천 시스템 “Deep collaborative filtering model”. 다양한 정보를 연결해서 유저에게 가장 적합한 비디오 추천! 심층 신경망을 켭켭이 쌓아 다양한 정보를 효과적으로 연결. (이미지 4, 이미지 6 참고)

    첫 번째 레이어에 다양한 정보를 입력, 연결. 그 위에 수 겹의 히든 레이어 Rectified Linear Units (ReLU)를 연결. 레이어들이 연결되면서 직관적이지 않은 수 많은 데이터들 간의 관계가 연산됨. 데이터와 히든 레이어를 추가할수록 (레이어 depth가 증가할수록) 모델의 정확도 증가. 방대한 데이터와 그 사이의 상호작용을 반영하여 시청 확률이 높은 비디오 추천


    이미지 7. 후보생성 모델모델 테스트 정확도 VS 네트워크 깊이 (네트워크에 포함된 정보)


    이미지 8. 순위 평가 모델추천 실패 확률 VS 네트워크 깊이




    결론Youtube는 어떻게 추천 기술을 사용하여 사업 전략을 구현해냈는가?


    Youtube의 사업적 목표는 사용자들이 찾고 싶은 게 없어도 홈페이지에 들어와 더 많은 시간을 보내도록 하는 것이었다. 사용자들이 플랫폼에 머무르는 시간이 길어질 수 록 광고 노출 기회가 증가해 더 많은 수익이 발생하기 때문이다. Youtube는 이를 위해 비디오 클릭 수 대신 비디오 시청 시간을 기반으로 동영상 선호도를 평가하고, 딥러닝을 활용해 추천 시스템의 정확도를 향상시켰다.


    Youtube는 수 만개의 비디오 중 사용자가 원하는 비디오를 찾기 위해 심층 신경망에 다양한 정보를 연결하여 분석한다. 1차적으로 유저에 대한 정보를 통해 사용자가 다음에 시청할 확률이 높은 몇 백 개의 비디오 후보를 선정한다. 2차적으로 다양한 정보를 연결해 몇 백 개의 후보 중 사용자가 끝까지 시청할 확률이 가장 높은 비디오 몇 개를 추천으로 보여주게 된다.   


    이 과정에서 Youtube는 단순히 유저의 이전 활동 내역에 기반한 추천이 (봤던 비디오와 똑같은 비디오 추천: Tesla 관련 비디오 시청 시, Tesla 관련 비디오 추천) 아니라, 유저가 다음에 보고 싶어 할 비디오를 예측하여 추천한다 (비슷하지만 다른 비디오: Tesla 관련 비디오 시청 시, 전기 차, 실리콘 밸리, 테크, 비즈니스, 증권 관련 비디오 추천).


    내가 시청한 비디오와 추천된 비디오 사이의 연관성을 다 파악할 수 없던 이유는 구글의 딥러닝 모델이 방대한 정보를 처리하여 내가 생각해 낼 수 없었던 비디오 사이의 연관성, 그리고 비디오와 나의 (사용자의) 연관성에 대해 알고 있었기 때문이다.


    추천 시스템의 딥 러닝 도입으로 2015년 부터 Youtube 사용자의 총 비디오 시청 시간은 20 배 이상 증가하였고, 우리가 Youtube에서 시청하는 비디오의 70% Brain 알고리즘이 추천한 비디오가 되었다. 그리고 그렇게 Youtube의 홈페이지는 무엇을 찾기 위해 거쳐야 하는 페이지에서, destination, 내가 원하는 것을 제공하는 도착 페이지가 되었다.


    이렇게 내가 생각했던 것보다 훨씬 더 크고, 복잡한 Youtube 추천 시스템을 분석해보았다. 시스템을 공부하면서 생소했던 딥러닝의 개념을 배우게 되었는데, 그 핵심에는 정보 간의 빽빽한 연결이 있다는 것을 어렴풋이 알게 되었다. 또한, 어떻게 기술이 사업목표 달성을 이끌어냈는지 공부하면서 기술과 비즈니스 사이의 연결점을 발견하였다


    이렇게 기술과 비즈니스를 연결하여 (기술 고도화를 통한) 서비스를 발전시키고, 고객을 만족시키고, 수익을 증가시키는 게 Product Manager role 이 아닐까 생각해본다.




     

    *이 글은 제가 개인적으로 이해한 내용을 바탕으로 작성되었습니다. 오류가 있을 수 있으며, 발견하신다면 알려주시면 감사하겠습니다! :)

    '역기획' 카테고리의 다른 글

    Bacon - The Game 분석  (1) 2018.11.13
    Youtube 추천 시스템 분석  (8) 2018.11.10

    댓글 8

    • Seopftware 2018.11.15 14:29 신고

      엄청난 고퀄리티의 글이네요!!!
      좋은 글 감사합니다!

      아무생각없이 보는 유튜브의 뒷 단에서는 엄청난 일들이 일어나고 있었군요...!!
      이걸 뜯어볼 생각을 하신 것도 대단한 것 같습니다ㅎㅎ :)

    • 도그냥 2018.11.18 02:22

      항상 범인 뒤에 천재가 나나 보네요ㅋㅋ
      역기획 해보라는 제 글에 이렇게 멋진 후기는 예상 못한 큰 선물이네요:)
      좋은 연구가 되셔서 스스로도 뿌듯하시고 공부가 많이 되셨을 것 같습니다. 아마 유튜브라는 프로덕트에 대해서 많이 이해하게 되는 과정이 되셨을 것 같아요! 이게 바로 기획공부의 참맛이죠ㅎㅎ
      제 브런치에 링크 걸고 글을 소개하고 싶은데 괜찮을까요?:)

      • 재원🌻 2018.11.26 16:52 신고

        헐!! 안녕하세요 도그냥님 ㅠㅠㅠㅠ......
        이메일로 답장 주실 줄 알고 기다리고 있다가 블로그에 댓글 주실 줄은 상상도 못했어요 ㅠㅠ!
        너무 늦게 봐서 죄송해요 ㅠㅠ
        네네 진짜 요리조리 뜯어보니까 새로운 것들 많이 알게되서 너무 재미있었어요 ㅎㅎ
        소...소개라니!! 그리하신다면 저는 영광이죠 ㅠㅠ 네!! 제 글 제발 가져가주세요~~~ ㅋㅋㅋ
        응원 감사해요!! 힘이 나네요 히히!!

    • 2019.02.08 14:57

      비밀댓글입니다

    • 2020.08.04 20:26

      비밀댓글입니다

    • 씽크이노베이터 2020.08.25 12:35 신고

      서비스 기획 스쿨 책에서 보고 왔습니다! 좋은 정보 감사드립니다

    • 마카롱. 2021.01.09 11:22 신고

      서비스기획자로서 더 많이 공부해야겠다는 생각이 드는 좋은 글이네요^^
      좋은 글 읽게 해주셔서 감사합니다~

    • 하이디 2021.06.21 10:04

      이제 막 시작하는 인턴인데요! 좋은 글 보고가요~ 정말 고민의 흔적이 여기저기 묻어있는 글입니다

Designed by Tistory.