본문 바로가기

Gos&Op

우연 행운 그리고 필연 Serendipity

내가 기억하기로 Serendipity라는 말을 처음 들었던 것은 존 쿠색과 케이트 베킨세일 주연의 <세렌디피티>를 통해서다. TV의 영화정보프로그램을 통해서 영화를 알게 되었고, 또 시간이 흘러 TV에서 방영하는 것을 두번정도 시청한 듯하다. 영화의 내용은 좀 뻔하다. 우연히 마주친 운명적 상대를 시간이 흐른 뒤에 다시 만나서 운명을 이어간다는 뭐 그런... 현대 소설에서는 모든 사건사고가 필연에 의해서 이뤄져야 하는데, 제목부터 '우연한 행운'으로 지었으니...

사용자들을 상대로 하는 서비스를 만들다보니 Serendipity라는 말을 자주 하게 된다. 그저 누구나 예상할 수 있는 뻔한 서비스로는 계속 변화하는 사용자들의 필요 Needs와 욕구 Desire를 제대로 충족시켜주지 못한다. 카노모델 Kano Model에서 말하듯이 서비스가 기본적인 기능을 모두 충족시키면 그 이후에는 사용자들이 예상하지 못했던 부가기능을 제공해서 사용자들을 열광시키게 만들어야 한다. (물론, 기본 전제는 '기본 기능'에 충실해야 한다는 점.) 그런 예상치 못한 기능에 해당되는 것이 일종의 serendipity다.

여러 추천 알고리즘이나 랭킹 모델을 만들면서도 늘 마지막까지 고민이 되는 점이 serendipity다. 일전에 다음개발자컨퍼런스에서도 발표했듯이 대부분의 서비스는 기본적으로 CARTS, 즉 Coverage, Accuracy, Robustness, Timeliness, 그리고 Serendipity가 필요하다고 했다. (물론 다른 많은 기능이나 측도를 만족시켜줘야 한다.) 앞쪽의 4가지는 어느 정도 파라메터를 조정해가면서 일반적인 설정값 Optimal Setting을 정하면 되는데, 마지막 serendipity는 좀 더 사용자 개인에 치중한 것이어서 일반적 최적값이라는 것이 불가능할지도 모르겠다. (참고글. 의도된 우연) 관련검색어/연관검색어 서비스를 만들면서 관련성만 따지다보면 추천되는 모든 키워드들이 그냥 같은 (결과를 제공하는) 단어들의 나열로 끝난다. 이런 경우 주어진 키워드와 연관은 되지만 조금은 다른 세계로 이끌어주는 단어를 제시할 필요가 있다. 지금 개인적으로 관련영화를 뽑는 작업을 진행중인데, 추천되는 대부분의 영화들이 관련성은 보장이 되지만 너무 재미없다는 느낌을 받곤 한다. 많은 영화에서 유명한 몇몇 작품이 계속 반복해서 추천되기 때문이다. 새로움 Freshness를 줄 수 있는 방법은...?

2007년도에 학위를 받고 박사후 과정으로 연구실에 남아있으면서 몇 편의 협업필터링 Collaborative Filtering 관련 논문을 적은 적이 있다. 당시에 나와있던 많은 논문들을 리뷰했지만, 대부분의 논문들에서 다루는 주제 또는 알고리즘의 성능을 평가하는 측도는 바로 정확도였다. (대표적인 측도로 MAE mean absolute error) 어떤 데이터를 사용하면 더 정확한 추천이 가능할까? 어떤 유사도 함수를 사용하면 더 정확한 추천이 가능할까? Netflex에서 실시했던 추천알고리즘 개선 경진대회도 현재의 정확도를 10%이상 높이는 팀에게 우승상금 100만달러를 주기로 했고, 또 그런 팀이 나와서 최종 우승을 차지했었다. 그런데 위의 영화추천 작업을 하면서 그런 추천 알고리즘을 좀 정리해놓을 필요가 있을 것같아서 최근의 논문들을 찾아봤다. 5년 전에 읽었던 논문들과 기본적으로 크게 변한 것은 눈에 잘 띄지 않았다. 그런데 많은 논문들에서 눈에 띄는 것은 Serendipity / Serendipitous라는 단어다. 학술논문도 이제는 정확도의 세계에서 우연의 세계로 넘어온 것일까? (추천시스템 자체가 워낙 응용 Application 분야이기 때문에 과학/학술적 용어보다는 시장의 용어를 받아들인 듯하다.)

사사키 도시나오의 <큐레이션의 시대>를 읽으면서 한번 정리하고 싶었던 내용을 이제 적으려 합니다. 참고로, <큐레이션의 시대>는 딱히 추천하고 싶지는 않지만 그냥 읽을만하다정도입니다. 제가 일본인 저자의 책을 잘 읽지 않는 이유가 그대로 반영된 책이기도 하지만, 그래서 서구의 시각과 다른 개념이나 용어를 사용해서 조금 생각할 거리를 준다는 점에서는 좋은 점도 있습니다. (그것도 개인적 차이를 반영하겠지만) 책의 중간에도 Serendipity와 관련된 내용이 있었던 걸로 기억합니다. 그래서 당시에 명시적 우연 Explicit Serendipity과 암묵적 우연 Implicit Serendipity라는 용어를 (책에 나오는 용어는 아님) 블로그에 적었던 기억이 납니다. 오늘 적고 싶었던 글이 바로 우연에도 측도가 있다는 것입니다. 바로 명시-암묵의 측도입니다. 0에서 100까지를 놓고 보면 0은 완전히 명시적이고, 100은 완전히 암묵적이겠죠. 명시적이라면 그의 필연적으로 A 다음에 B가 오는 것이고, 암묵적이라면 진짜 소 뒷걸음질치다가 쥐를 잡는 식 이상의 임의/우연에 의한 사건입니다. 실생활에서는 0보다는 커고 100보다는 작은 그런 우연들이겠죠.

  • 명시적 우연 Explicit Serendipity은 거의 필연에 가깝습니다. 인터넷 정보 습득의 측면에서 보면 (열심히 활동하는) 카페/커뮤니티에서 얻는 정보가 될 듯합니다. 만약 내가 디아블로3에 빠져있으면서 관련된 카페나 커뮤니티에 가입하고 또는 루니웹 등의 전문 게시판에서 살다시피 한다면... 그런 카페나 게시판에 올라오는 대부분의 글들을 읽어보게 될 것입니다. 다른 이들이 올리는 그런 디아블로와 관련된 글들은 나의 입장에서는 랜덤으로 전달되는 정보들입니다. 그러나 내가 그런 커뮤니티에 가입되어있기 때문에 얻을 수 있는 정보입니다. 우연히 얻는 정보같지만 또 그렇지 않습니다. 카페 커뮤니티나 페이스북 팬페이지 등은 같은 관심사를 가진 이들의 모임이므로 좀 더 명시적 우연에 의해서 수집되는 정보입니다.
  • 암묵적 우연 Implicit Serendipity은 더 랜덤합니다. 처음 명시적 우연과 암묵적 우연이라는 말을 생각했을 때는 트위터의 타임라인이나 페이스북의 뉴스피드에 올라오는 정보가 암묵적 우연정도로 생각했었는데, 지금은 타임라인이나 뉴스피드 정도는 명시/암묵도가 50정도밖에 되지 않는 듯합니다. 검색엔진을 통한 것은 키워드라는 매개체가 있으니 70정도는 될 듯하고, 인터넷 전체가 8~90정도가 되지 않을까 합니다. 트위터나 페이스북에 올라오는 글들은 카페나 팬페이지처럼 특정 주제에 한정되지 않습니다. 그런 측면에서 암묵적 우연의 예시라고 생각했었는데, 또 달리 생각해보면 트위터의 타임라인이나 페이스북의 뉴스피드는 내가 선택한 이들의 글이 올라온다는 점에서 완벽한 우연성을 기대하기는 어렵습니다. 좀더 관심사가 같은 이들끼리의 친구네트워크가 생긴다면 트위터/페이스북도 명시적 우연에 더 근접하고, 역으로 그냥 대중 anonymous을 친구로 추가한다면 (검색엔진 이상의) 암묵적 우연이 될 듯합니다. 타임라인이나 뉴스피드에서 얻는 정보가 얼마만큼의 우연에 의해서 얻게되는지를 분석해보는 것도 재미있을 듯합니다.
  • 괜히 50짜리 우연인 트위터나 페이스북을 중간적 우연이라고 표현해야할까요?
많은 서비스를 사용해고 또 그런 서비스를 만들다보면 이런 우연성에 대한 생각을 많이 하게 됩니다. 그냥 '이게/우연성이 중요해'정도로만 생각했지, 실제로 내가 만들고 있는 서비스는 어느 수준까지의 우연성을 제공해줘야하는지에 고민은 깊이 해보지는 않은 듯합니다. 우연에 따른 행운이 아니라 필연으로 이어지는... 가끔 '흘러넘치는 정보는 무시해라. 그게 정작 내게 필요한 것이라면 언젠가 어느 경로를 통해서든 내게 전달될 것이다.'라고 말하곤 합니다. 우연에 의한 것이 아니라 어쩌면 그게 필연인지도 모릅니다. 데이터 분석가로써 그런 우연을 만들고 또 그래서 그것이 필연으로 만들어주는 방법을 더 깊이 고민하게 됩니다.


반응형