본문 바로가기

알고리즘

(18)
기술과 인간 "길게 잡아서 2년 내에 당신이 하고 있는 일의 절반 이상을 자동화시킬 수 있어야 한다." 최근 함께 일하고 있는 친구에게 한 말입니다. 미디어다음에서 뉴스를 편집운영하면서 뉴스추천 프로젝트를 메인으로 기획한 친구입니다. 제대로 된 뉴스 편집 및 운영은 끊임없이 쏟아지는 모든 뉴스를 읽고 미담이나 다음탑에 노출시킬 것인가 말것인가를 계속 판단해야 하는 사람손을 많이 타는 일입니다. 그럼에도 불구하고 이 활동의 절반 이상을 단기간 내에 자동화시키고 그 친구는 다른 더 창의적인 생각에 집중해야 한다는 말입니다. 비단 이 친구에게만 들려주고 싶은 말은 아닙니다. 지난 글(참고. 기획에 대해서)에서처럼 함께 일하고 있는 모든 기획자들에게 같은 조언을 해주고 싶습니다. 물론 개발자라고 해서 예외는 아닙니다. 성격..
서비스와 데이터마이닝 과학자는 자신이 가진 솔루션을 적용할 문제를 찾고 엔지니어는 자신의 문제를 해결할 솔루션을 찾는다라는 말로 과학(자)과 엔지니어링을 구분한 글을 본 적이 있다. 적절한 구분인 것같다. 데이터 분석/마이닝도 같은 관점에서 구분할 수 있을까? 문제에 맞는 솔루션을 찾는 사람은 데이터 마이너고, 알고리즘에 맞는 문제를 찾는 사람은 데이터 사이언티스트라고 부를 수 있을까? 별로 좋은 구분인 것같지 않다. 최근 빅데이터나 데이터 사이언스 등에 관심이 조금 쏠리고 데이터 기반의 무엇 (Data-driven X)이라는 표현을 자주 접하게 된다. 선무당이 사람잡는다는 말도 있지만, 데이터와 연결된 용어들이 범람하면서 데이터 선무당들도 많이 늘고 있는 것같다. 간혹 지난 몇 년동안 엄청나게 많은 데이터를 모아놓았는데 이..
페이스북 뉴스피드의 변화 최근 페이스북 뉴스피드를 보면 몇 가지 변한 점을 발견할 수 있다. 나쁜 점도 있고 좋은 점도 있다. 먼저 나쁜 점부터 집어 보면 (물론 개인의 사용 패턴 그리고 관점/철학의 차이에 따른 불편함이다.) 페이스북이 1월에 뉴스피드 노출 알고리즘을 개선했다. (참고. 페북 뉴스피드, 페이지보단 친구 소식 잘 띄게) 블로터 기사처럼 현재 뉴스피드는 친구의 글/사진과 페이지 (팔로잉하는 사람의 글/사진 포함)를 함께 보여줬는데, Most Recent 옵션을 사용하면 모든 글을 시간 역순으로 보여줬다. 그런데 뉴스피드 알고리즘을 변경한 후에는 뉴스피드만으로는 모든 글을 확인할 수 없다. 물론 이전에도 Top Stories를 선택하면 Edge Rank로 알려진 알고리즘에 의해서 많은 라이크나 댓글이 달린 기사를 우..
추천 시스템과 머신러닝 (PR시리즈.15) 14편의 글로 추천시스템을 마무리하려고 했었는데, 하나가 더 생각나서 글을 적습니다. 깊게 들어가면 어려워지는 문제지만, 이 그레서는 아주 피상적으로만 적겠습니다. 데이터마이닝하면 머신러닝이 같이 떠오른데 그러면 머신러닝은 추천 시스템에서 어떤 역할을 하느냐?라는 질문을 할 수 있습니다. 그래서 준비했습니다. 그러나 모든 디테일은 생략합니다. 구체적으로 어떤 머신러닝 알고리즘들이 추천시스템에 활용되고 있는지는 Netflix에서 나온 Mining Large Streams of User Data for Personalized Recommendations을 참조하세요. Collaborative Filtering 알고리즘을 설명하면서 모델기반 CF를 잠깐 언급한 적이 있습니다. 여기서 모델이란 머신러닝을 통해서..
추천대상에 따른 추천 시스템의 분류 (PR시리즈.3) 이번 글에서 추천 알고리즘에 따른 분류는 아닙니다. CF, 유저기반, 아이템기반 등의 일반적인 알고리즘의 설명은 다음 글에서 자세히 다룰 예정입니다. 이 글에서는 -- 적당한 표현이 떠오르지 않는데 -- 추천대상 또는 형태상의 분류를 다루고 있습니다. (아래는 그냥 '하다'체로 적겠습니다. 처음에 그렇게 적어놨었었네요.) 추천 시스템을 크게 나누면 전체추천, 그룹추천, 개인추천 (개인화), 및 연관아이템추천으로 나눌 수 있을 것같다. 전체추천은 말 그대로 불특정 다수에게 추천하는 형태다. 일반적으로 다음이나 네이버에 접속했을 때 첫화면에 보여지는 무수한 글/이미지/상품들이 전체추천이다. 일반적으로 에디터 또는 운영자들이 그날의 이슈에 따라서 선별해서 보여준다 (보통 featuring한다고 표현함). 조금..
추천 시스템을 위한 데이터 준비 (PR시리즈.2) 두번째로 추천에 사용되는 데이터에 대해서 간단히 설명하겠습니다. 추천방식에 따라서 필요한 데이터가 달라지지만, 가장 일반적인 내용을 설명하고 추후에 특정 알고리즘이나 방식에 맞는 데이터는 별도로 설명하겠습니다. (특정 용어가 특정/다른 상황에서 적절하지 않을 수도 있습니다.) 추천의 기본 원리는 과거는 곧 미래다입니다. 그렇기에 추천을 위해서 필요한 데이터는 유저들의 행위 behavior 기록입니다. 상품 구매 이력, 이벤트 참석 이력, 기사를 공유했거나 like를 한 이력, 영화나 드라마를 보거나 평점을 남긴 이력 등의 모든 것들이 추천시스템에서 활용합니다. 그런 모든 이력들이 제품이나 컨텐츠에 대한 사용자의 선호/관심을 나타내는 지표로 사용합니다. 좀 더 구체적으로 쇼핑 추천을 예로 들겠습니다. A라..
문제와 해법 페이스북에 짧게 적었던 글을 좀 길게 적습니다. --- 지난 밤에 읽은 책에서 (전체 내용과 관계가 적으므로 책 제목은 생략합니다) "과학자는 해법을 찾은 뒤에 그것을 적용할 문제를 고민하는데 반해, 엔지니어는 문제를 규정한 이후에 해법을 찾는다는 차이가 있다"라고 적혀있었다. 순수학문과 응용학문의 차이를 잘 설명해준다. 똑같지는 않지만 비슷한 고민을 오랫동안 해왔다. 나는 또는 내가 속한 팀은 기술 스택에 집중해서 다양한 기술을 연마하거나 알고리즘을 개발해서 서비스 분야에 접목을 시켜야 할지 아니면 서비스 스택에 더 집중해서 도메인/비즈니스 지식을 쌓은 후에 다양한 기술/알고리즘을 차용해서 현재의 문제를 해결해야 할지를 결정해야 했다. 현재 이도저도 아닌 어중간한 상태에 머물러 있어서 갈피를 못잡고 표..
관심 생명 주기 두가지 이야기부터 시작해보자. 첫번째는 최근에 진행 중인 쇼핑 추천 서비스와 관련이 있다. 아마존을 사용해본 사용자라면 다 알겠지만 아마존 홈페이지에 접속하면 최근에 구매했거나 조회해본 상품들이 첫화면에 나열되고 그것과 관련이 있는 상품들을 추천해준다. 일종의 개인화 추천이다. 구매나 조회는 나의 관심사를 암묵적으로 보여주고, 그것을 바탕으로 새로운 상품을 추천해주는 것은 직선적이다. 그런데 그런 상품을 언제까지 추천을 해줘야할까? 만약 1년 전에 마지막으로 아마존에 접속해서 책 한권을 살펴봤다가 1년만에 재접속했는데 여전히 그 책과 관련 도서를 보여준다면 제대로된 추천이라고 볼 수가 있을까? 두번째는 예전부터 알고는 있었지만 직접 경험해보니 좀 거시한 거다. 어떤 여성 의류 쇼핑몰이 있다. 그런데 최근..