Category Archives: Uncategorized

스냅에서의 석달

한국에서 중고교를 마친 사람이라면 다들 공감하겠지만, 필자의 고교 시절은 정말 공부 이외에는 전혀 다른 선택지라고는 없는 무미건조한 시절이었다. 아침 자율학습에서 시작해 수업, 야간 자율학습, 그리고 독서실로 이어지는 그 생활을 몇 년을 했다는 것이 지금 생각해보면 믿기지 않는다. 지금도 크게 달라진 것 같지는 않지만 그땐 다들 그렇게 살았다.

하지만 그때는 지긋지긋 했던 고교시절이 서른 중반이 된 지금은 가끔 그리울 때가 있다. 우리나라의 입시제도를 미화하려고 의도는 추호도 없지만 한가지에 자신의 모든 것을 쏟아 부어 몰두하는 경험, 그리고 그 노력의 결과를 좋든 나쁘든 성적이라는 결과물로 확인하고 다시 시작하는 과정에서 많이 배우고 성장한 것은 사실이니 말이다. 어른이 되서는 뭔가에 그렇게까지 집중하기도 힘들고 노력한 결과가 바로바로 보이지도 않으니 말이다.

각설하고 본론으로 들어가자면, 필자가 스냅에서 보낸 석달은 마치 고등학교에 다시 입학한 수험생이 된 기분이었다. 밤낮, 주말도 없이 열심히 일하는 동료들과 보조를 맞추고, 숨가쁜 스케줄과 쏟아지는 이메일을 소화하기 위해서는 깨어있는 시간을 거의 업무에 투자해야 했다. 그러고도 항상 뭔가 부족한 기분이 든다면 지나친 걱정일까. 이렇게 기진 것을 다 털어넣어 일하는 경험은 고등학교, 그리고 대학원 이후 처음이었다.

한가지 다행인 것은 누가 시켜서 이렇게 한 것도 아니고, 그 과정이 고통스럽지는 않았다는 점이다. 우리 팀에는 스냅챗에 검색 기능을 런치해야 한다는 분명하고 가치있는 목표가 있었으며, 이런 공통의 목표를 항하여 모두 열심히 일하는 분위기에 자연스럽게 녹아들었기 때문이다. 마치 기계의 톱니바퀴가 서로 맞물려 돌아가듯 이런 환경에서 대충 시간만 때우려고 했다면 오히려 괴로웠을 갓이다.

이렇게 모두가 합심해서 노력할 끝에 우리 팀은 몇 주 전 스냅챗의 스토리 검색 기능은 미국 전역에 성공적으로 런칭할 수 있었다. 스토리 검색은 전세계의 스냅챗 사용자들이 공유한 스냅을 흥미있는 스토리로 만들어 이를 검색할 수 있게 만들어주는 기능으로, 기존의 메신저 서비스에 더하여 사진 및 비디오 중심의 컨텐츠 플랫폼으로 발돋음하려는 스냅의 중요한 디딤돌이다. 검색에 이어 지난주에 파트너 팀에서 런칭한 스냅 맵 역시 이런 컨텐츠 전략의 일환이다.

필자는 대학원 시절부터 검색 관련 일을 했지만, 소셜 네트워크 상에서 이미지 및 비디오 컨텐츠를 대상으로 하는 스냅챗의 스토리 검색은 상당히 다른 문제다. 사용자들의 검색 의도, 질의 패턴, 그리고 컨텐츠의 성격이 모두 다르기 때문이다. 원하는 정보를 효율적으로 찾아주어야 하는 검색엔진의 기본에 충실하면서, 흥미있는 컨텐츠를 원하는 스냅챗 사용자들의 특성을 모두 만족시켜야 하는 것이다. 또한 문서가 아닌 이미지와 비디오에서 검색에 필요한 다양한 속성을 뽑아낼 수 있어야 한다.

게다가 검색 대상인 웹 문서가 이미 주어진 웹 검색과 달리 스냅챗의 검색은 ‘문서’를 만드는 것에서부터 시작한다. 검색 대상이 되는 스토리 자체를 사용자들이 공유한 스냅을 바탕으로 만들어야 하기 때문에 비슷한 주제 및 시공간에서 찍힌 스냅을 일관성있는 스토리로 만드는 과정이 추가되는 것이다. 여기에는 분류, 군집화, 필터링 등 다양한 머신러닝 기법이 사용되며, 이 과정이 꾸준히 개선되기 위해서는 대한 엄밀한 평가 기법이 필요한데, 이 부분이 현재 필자의 주된 업무 영역이다.

연구자와 개발자의 구분의 비교적 뚜렸했던 MS에 비해, 필자가 직접 완성도나 높은 코드를 짜서 보여줘야 한다는 것도 새로운 도전이었다. 평가 지표 및 데이터 분석 결과를 리포트나 프리젠테이션 형태로 다른 팀에게 전달했던 예전 직장에서와 달리, 실제 지표 계산에 필요한 데이터 파이프라인을 많은 부분 직접 만들어야 하기 때문이다. 그래도 원래 글쓰기던 코딩이던 뭔가 만들는 행위를 즐기는 편이라 별로 힘들지는 않았다. 덕분에 문서가 아닌 코드로 말하는 개발자의 일상에도 익숙해지고 있다.

스냅에서의 세 달은 분명 필자의 인생에서 가장 편안한 시기는 아니었지만 돌이켜보면 상당히 만족스러웠다. 정신없이 하루하루를 보내다가 어느 날 거울에서 키가 훌쩍 큰 자신을 발견한 십대의 기분이랄까. 작년 창발의1 컨퍼런스 키노트에서 윤필구님은 현실에 안주하지 않는 도전을 강조하며 ‘스스로를 불편하게 만드는 일을 종종 해야 성장한다’는 말씀을 하셨는데, 편안하고 만족스러운 시애틀 생활에 머물렀다면 지금의 만족감은 경험하지 못했을 것이다.

시애틀에서 LA로, 그리고 최근에 검색팀이 있는 SF오피스로 옮기면서 생활 면에서도 적응해야 할 부분이 많았는데, IT의 중심지인 실리콘벨리에서의 생활도 기대가 된다. 당분간 회사일로 바쁜데다 몇주 전에는 아내가 귀여운 딸아이를 출산해서 정신이 없었지만, 앞으로 이 지역에 계시는 IT 종사자 분들과도 폭넓게 교류하려고 한다. 마지막으로 Snap의 LA / SF / 시애틀 오피스에서는 열정과 실력을 갖춘 데이터 과학자 및 개발자를 채용하고 있으니 혹시 관심이 있는 분이라면 필자의 메일(lifidea@gmail.com)로 연락 바란다.

[1]: 시애틀의 한인 IT 종사자들의 모임: http://www.changbal.com/

데이터과학 팟캐스트를 시작합니다!

예술가들은 종종 자신이 주특기가 아닌 다른 미디엄의 가능성에 도전하곤 한다. 장편 소설을 본업으로 하지만 그 중간중간 좀더 가벼운 소재를 바탕으로 수많은 단편 소설이나 에세이를 펴낸 무라카미 하루키, 화가로 유명하지만 입체파의 대가답게 수백점의 조각을 남기기도 한 피카소가 떠오른다. 이처럼 예술가들이 다양한 장르에 도전함으로써 아이디어에 적합한 표현 방식을 찾거나, 창작의 영감을 얻어왔다.

필자는 스스로를 ‘글쓰는 사람’으로 여겨 왔지만, 이번에 글이 아닌 대화라는 미디엄에 도전하기로 결심했다. 그동안 논문이나 책을 통해 독자들을 만나며 최대한 독자들의 피드백을 청취하려고 애써왔지만, 글이라는 미디엄이 갖는 일방성에 한계를 느껴 왔다. 꾸준히 쓰겠다는 목표를 지탱해줄 동기를 찾기가 쉽지 않은 문제도 있었다. 이에 혼자 일방적으로 전달하는 것이 아니라, 다른 사람과 대화하는 형태가 어떨까 생각하게 되었다.

필자가 생각하는 대화의 구체적인 형태는 데이터 과학의 다양한 영역을 주제로 하는 팟캐스트(Podcast)이다. 작년에 헬로 데이터 과학을 출간한 이래 데이터 과학 분야에서는 딥러닝에 대한 폭발적인 관심을 비롯하여 많은 변화가 있었다. 관련 분야 종사자들에게도 현기증이 날 정도의 발전 속도니, 인공지능 및 관련 기술의 미래에 대해서 다양한 억측이 난무하는 것도 무리는 아니다.

이처럼 빠르게 변화하며, 게다가 데이터 수집, 처리, 분석, 시각화 및 소통 등 다양한 영역을 포괄하는 데이터 과학의 특성상 한사람이 모든 영역의 전문가가 되기는 힘들다. 하지만 각 분야의 전문가들을 초대하여 깊이 있는 이야기를 들을 수 있다면 많은 사람에게 도움이 되는 컨텐츠를 만들어낼 수 있을 것이라는 생각이다.

하지만 팟캐스트를 시작하는 것도 간단한 일이 아닌데, 다행히 나는 프로그래머다(나프다)에서 필자가 진행하는 채널을 하나 만들어 주시기로 하셨다. 채널의 이름은 데이터 싸이언스에서 ‘싸이’를 따서 싸이(Sci)채널로 하기로 했다. 방송을 통해 연구(싸이언스)와 개발(엔지니어링)간의 브릿지 역할을 하고 싶은 생각도 있으니, 나쁘지 않은 이름이다.

나프다는 국내 개발자들이 가장 많이 듣는 방송으로, 필자도 작년에 데이터 과학을 주제로 출연했던 경험이 있다. 팟캐스트를 처음 시작하는 입장에서, 나프다를 통하여 수만명에 달하는 청자에 도달할 수 있는 것은 큰 가능성이다. 나프다에서도 최근 데이터 관련 토픽을 많이 다루고 있으니, 반대로 필자가 기여할 수 있는 부분도 있다고 본다.

나프다는 소프트웨어 개발자를 대상으로 한 방송이기는 하지만, 데이터 과학과 개발은 밀접한 관계가 있으며 그 구분은 점점 무의미해지고 있으니 문제는 없으리라 본다. 사실 요새 개발자 가운데 데이터 과학에 전혀 무관한 사람은 많지 않을 것이며, 딥러닝 분야에서 빠른 혁신이 일어나는 것은 텐서플로와 같은 개발 툴킷의 등장에 힘입은 바가 있으니 이 둘의 거리는 점점 좁혀지고 있다고 본다.

방송은 소통의 수단으로 중요하지만, 방송된 내용이 널리 공유되고 이를 바탕으로 다양한 컨텐츠가 만들어질 수 있다면 더 가치있을 것이다. 앞으로 필자의 홈페이지 및 페북 페이지를 통해서도 방송 내용 뿐 아니라 데이터 과학 관련 자료와 각종 소식을 지속적으로 공유할 생각이다. 이들 채널은 싸이 채널에 출연하시는 분들과도 공유하여, 데이터 과학 전문가들과 일반인들이 소통할 수 있는 장으로 만들어 나갈 계획이다.

아래 이미지를 클릭하면 나프다 싸이 채널의 모든 방송을 들을 수 있다!

2017-02-10 16_39_16-Presentation1 - PowerPoint

 

나프다 싸이채널 방송 듣기

헬로 데이터 과학이 출고되었습니다!

헬로 데이터 과학이 드디어 출고되었습니다. 늦어도 며칠 안으로는 온라인/오프라인 서점에서 만나보실 수 있을 겁니다. 독자분들께서 이 책에서 최대한의 가치를 얻어내기 위해 다음 몇 가지 사항을 제안합니다. 책을 읽으시다가 궁금하신 내용은 헬로 데이터 과학 Q&A 게시판을 이용해 주시구요, 구매자 설문에도 꼭 응답해 주시면 감사하겠습니다.

  • 데이터 과학은 결국 데이터를 사용한 문제 해결입니다. 책을 읽기 전에 자신이 데이터를 통해 어떤 문제를 해결하고 싶은지를 생각해 보고, 책을 읽으면서 이 문제를 꾸준히 떠올려 보세요.
  • 데이터 과학의 학습은 직접 해보는 실습으로 완성됩니다. 이책에서 제공하는 엑셀 실습은 꼭 따라 해보고, R 및 기타 실습도 따라해 봅니다.
  • 데이터 과학의 모든 내용을 책 한권에서 배울 수는 없습니다. 심화 학습을 위해 이 책에서 제공하는 참고 자료 중 관심이 가는 것은 꼭 찾아서 학습하세요.
  • 데이터 과학은 다른 사람과 함께 배워야 더 효과적입니다. 자신의 데이터 문제 해결 과정과 궁금증을 생활 데이터 커뮤니티에 공유해 보세요.
  • 데이터 과학은 끊임없이 변화하기 때문에 지속적으로 배워야 합니다.이메일 독자그룹이 책의 Facebook 페이지에 공유되는 데이터 과학에 관련된 최신 소식과 학습자료를 받아보세요.

2016-02-02 01_37_41-Store

넷플릭스가 추천 및 검색 알고리즘을 개선하는 방법

오늘은 최규민님의 소개로 넷플릭스가 추천 및 검색 알고리즘을 개선하는 방법에 관한 아티클을 읽었 습니다. 제 연구분야인 온라인 서비스의 평가방법에 관한 글이라 관심있게 읽었는데, 넷플릭스가 아니더라도 검색이나 추천과 같은 데이터 프로덕트를 만드는데 관심이 있는 분이라면 꼭 읽독을 권합니다. 아래는 간추린 핵심 내용입니다.

  • 넷플릭스의 개인화 추천 알고리즘은 각 고객에게 좀더 다양하고 만족스러운 시청 경험을 제공함으로써 최소한의 영화 컬렉션으로 (비용절감) 최대한의 고객 유지율을 (매출극대화) 달성할 수 있게 합니다.
  • 개인화 추천 알고리즘의 결과 품질에 대해 직관적으로 평가하는 것은 (특히 제3자의 입장에서) 어려운 일이기에, 평가자 데이터보다는 온라인에서의 사용자 행동이 주된 평가 척도가 됩니다.
    • 반대로 비교적 객관적인 평가가 가능한 검색 결과의 경우 평가단에 (Human Relevance Judgment) 많이 의지합니다. (자세한 내용은 제 SIGIR 튜토리얼 참고)
  • 넷플릭스가 사용하는 행동 기반의 지표에는 고객 맴버십 지속도(retention) / 고객 흥미도(engagement) 등이 있는데 흥미도와 지속도 사이에는 강한 상관관계가 있습니다. 또한 지속도는 구전효과(word-of-mouth)와 높은 상관관계가 있습니다.
    • 넷플릭스에서는 새로운 기능이 실제 서비스에 반영되기 위해서는 국지적인 지표의 개선을 가져올 뿐만 아니라 전체적인 고객의 흥미도와 지속도를 높일 수 있어야 합니다.
  • 넷플릭스에서는 온라인 실험을 위해 사용자를 작은 그룹(cell)으로 나누어 각 그룹에 대해 2~6개월 가량 일관된 경험을 제공한 후, 그룹간에 다양한 지표를 비교합니다.
    • 반대로 고객의 유지도보다는 결과의 품질에 초점을 맞추는 정보검색 분야에서는 비교적 짧은 기간(며칠~몇주)안에 온라인 실험이 끝나는 경우가 많습니다. (관련 논문)
  • 온라인 실험에서 주요 지표간 불일치가 발생하는 경우에는 (예: 고객 유지도 증가 but 흥미도 감소 혹은 제자리) 노이즈인 경우라고 생각하고 실험을 다시 수행하게 됩니다.
  • 온라인 실험의 대상에는 신규 고객과 기존 고객이 있는데, 기존 고객은 훨씬 많은 숫자가 있지만 새로운 경험을 제공했을때 그 효과를 편향없이 측정하기가 어렵습니다. 신규 고객은 숫자가 적지만 익숙함에 따른 편향이 적은 대신 Free Trial 관련 노이즈가 있습니다.
  • 넷플릭스에서는 몇 달씩 걸리는 온라인 실험의 효율을 높이기 위해 여러 알고리즘을 동시에 실험에 포함시키거나, 개별 유저를 서로 간섭하지 않는 여러 실험에 동시에 포함시키거나, 혹은 오프라인으로 온라인 실험 결과를 예측하는 기법을 사용하기도 합니다.
  • 넷플릭스는 진출한 나라마다 별도의 추천 알고리즘을 만드는 대신 사용자나 영화 컬렉션 면에서 비슷한 특색을 가진 국가를 지역으로 묶어 지역별로 다른 알고리즘을 제공하는 방법을 사용하고 있습니다.

이 아티클에 지적된 사항 중 많은 부분은 Bing의 검색 품질에 대한 평가를 담당하는 저도 고민하는 부분입니다. 여러가지 미묘한 차이가 있지만, 검색이나 추천이나 결국 사용자의 Input에 따라 최적의 결과를 보여주는 기법이기 때문입니다. 작년에는 주로 데이터 입문자 대상의 글을 썼는데, 올해는 제 연구분야의 글도 본격적으로 써볼 생각이니 기대 바랍니다.

p.s. 예전에 썼던 페이스북 피드 랭킹의 평가에 대한 글도 참고하세요. http://www.hellodatascience.com/?p=572

헬로 데이터 과학: 삶과 업무를 개선하는 데이터 과학 이야기

한국 방문 중 두차례의 공개 세미나를 통해 많은 분을 만났습니다. 데이터에 관한 글을 쓰기 시작한 이후로 가장 보람된 순간이 아니었나 합니다. 저도 이번 발표를 준비하고, 여러분들과 소통하면서 많은 것을 배울 수 있었습니다.

제한된 시간동안 최대한 많은 것을 전달하려고 했지만, 부족한 점이 있었을 줄로 압니다. 12월 22일 발표에서 사용한 자료는 아래 링크에서 보실 수 있습니다. 실제 사용했던 슬라이드에 시간 관계상 생략했던 슬라이드와 각종 링크를 추가한 확장판입니다.

자료를 보시고 추가적인 의견/궁금증을 알려주시면 앞으로의 글 및 발표에 반영하도록 하겠습니다. 앞으로 미국에서도 지속적인 온라인 세미나를 계획중이므로, 여러분들의 피드백은 큰 도움이 됩니다.

학습가이드(1) 데이터과학 개념잡기

데이터과학 관련 자료는 많지만 무엇을 어떤 순서로 읽어야 할지를 결정하기는 쉽지 않다. 제가 관리하던 데이터 과학 자료모음을 바탕으로 각 주제별로 데이터과학을 공부하기 위한 학습 가이드를 만들어 보려고 한다. 오늘은 첫번째로 데이터과학을 전반적으로 이해하기 위한 자료들이다.

데이터 과학은?

우선 데이터 과학의 역사와 주요 개념 및 프로세스를 이해하도록 도와주는 글이다. 위키피디아 아티클도  참고하자

데이터 과학의 흐름

빅데이터에 초점을 맞추어 데이터 과학의 흐름을 다룬 책자입이다. 처음 두개는 경영 컨설팅사의 관점, 마지막은 각계 연구자들의 공동 작업으로 쓰여진 것이다.

빅데이터의 한계 / 위험성

하지만 빅데이터를 제대로 사용하기 위해서는 주의를 기울여야 한다. 아래 글들은 빅데이터를 제대로 사용하지 못했을 때 얻을 수 있는 다양한 오류 가능성을 다룬다. 특히 마지막의 논문은 한때 빅데이터를 대표하는 기술로 여겨졌던 Google Flu의 다양한 한계를 다룬다.

데이터 과학자는?

데이터 과학을 이해하는 가장 좋은 방법중 하나는 데이터 과학자에 대해서 아는 것이다. 아래는 데이터 과학자라는 개념을 널리 알린 기사 및 최근의 트랜드에 관한 책자다.