제공 :
한빛 네트워크
저자 : DJ Patil
역자 : 권정민
원문 :
Data Jujitsu: The art of turning data into product
똑똑한 데이터 과학자는 큰 문제를 작게 만들 수 있다.
학계, 정부기관, 산업체에서 일하면서, 나는 각 분야에서 제품을 만들어 보는 독특한 기회를 얻었다. 이런 제품 개발의 대부분은 데이터 제품과 관련된다. 일반적인 제품 개발 방법이 꾸준히 진행되다보면, 데이터 제품에 대한 아이디어도 꾸준히 생겨난다. 데이터 과학의 일반적인 영역에서의 대규모 투자 덕분에, 많은 주요 혁신적 제품들을 통해 (하둡(Hadoop), 볼드모트(Voldemort), 카산드라(Cassandra), HBase, Pig, 하이브(Hive) 등)데이터 제품을 보다 쉽게 구축할 수 있게 되었다. 물론 그래도 여전히 데이터 제품은 작은 팀에서 제한된 금액을 사용해서 구축하기에는 매우 어렵고, 다루기 힘들어 보인다는 점에서 독특한 영역이다. 물론, 이를 해결하기 위해 매일같이 노력하고 있다.
어떻게? 이를 해결하려면 대부분의 사람이 일생동안 고민해야 하는 문제에 대해서 5분동안 더 좋은 답을 찾아낼 수 있는 초능력자 데이터 과학자여야 하는 게 아닐까? 몇 시간만에 수백만줄의 고성능 기계학습 알고리즘 코드를 조합할 수 있는 응용수학의 마법사인 건 아닐까? 아니다. 이들 중 대부분은 물론 매우 똑똑하지만, 큰 문제를 만난다는 건 보통 옳은 방법은 아니다. 크고 무거운 해결 방법을 피하고 대신 빠르고 반복적인 방식을 구축하는 데에 집중해서 데이터 문제를 해결하는 방법이 있다. 똑똑한 데이터 과학자는 크고 어려운 문제를 해결하지 않는다. 그들은 본능적으로 큰 문제를 작게 만든다.
우리는 이렇게 여러 데이터 원소를 가지고 반복적으로 문제를 푸는 방법들을 재치있게 조합하여 다루기 힘든 데이터 문제를 해결하는 예술을 데이터 주짓수(Data Jujitsu)라고 부른다. 이는 고대 무술인 주짓수를 정의하는
위키피디아의 정의에서 유래했다. "자신이 가진 힘만으로 상대를 직면하기 보다 자신에게 대항하는 상대의 힘을 조작하는 예술 혹은 기술."
이 개념을 데이터에 어떻게 적용할까? 데이터 관련 문제의 "무게"는 무엇이고, 이 무게를 어떻게 사용할까? 이런 질문들에 대하여 다음 장들을 통해서 살펴볼 것이다.
내 경우에는, 데이터 제품에 대한 훌륭한 정의란 데이터 사용을 통해서 최종 목표에 용이하게 도달할 수 있도록 하는 제품이다. 데이터 제품을 순전히 데이터 문제 해결용으로 생각하기 쉽다. 결국 많은 기술 지식과 근사한 알고리즘을 사용하여 어려운 문제를 해결하는 것만큼 재밌는 건 없다고 생각한다. 우리는 지금까지 이렇게 배워왔고, 그래서 이 게임을 시작하게 된 것이다. 하지만 지금까지 여러 경험을 해보면서, 문제를 직접 맞딱뜨리는 것은 재앙을 불러오는 요리법이다. 훌륭한 데이터 제품을 만드는 것은 매우 도전적인 일이고, 문제는 항상 더 복잡해지고, 풀려고 시도할수록 더욱 다루기 힘들어지기만 할 것이다.
크나큰 노력을 투자하기 앞서서, 간단한 문제 하나에 대답해 볼 필요가 있다. 당신의 제품을 원하거나 필요로 하는 사람이 있는가? 제품을 원하는 사람이 아무도 없다면, 지금까지 한 모든 분석 업무는 쓸모가 없어진다. 따라서, 고객이 있는지 없는지 알기 위해 간단한 것부터 시작할 필요가 있다. 이렇게 하려면, 제품을 무사히 시장에 안착시키기 위해 몇 가지 똑똑한 지름길을 만들어야 한다. 때때로, 이런 지름길은 미처 생각지 못했던 근본적인 좋은 아이디어가 되어서 완성본에까지 살아남기도 한다. 때로는 이런 것들이 더 복잡한 분석 기술을 대체하기도 한다. 어떤 경우든, 근본적인 아이디어는 전체 문제를 한 번에 해결할 수는 없다는 것이다. 더 진행되기 전(최소한의 가시화된 제품이 생산되기 전)에 이를 충분히 알아두는 것이 좋다.
간단히 예를 들어 보자. 사용자의 주소를 수집하고자 한다면 어떻게 해야 하는가? 일단 형식 없는 텍스트 상자를 떠올릴 수도 있겠지만, 이름과 거리명, 아파트 호수, 도시, 우편번호 등을 구분할 구분자를 만드는 것은 예제의 복잡성에 따라 어려워질 수 있다. 사용자는 쉼표 같은 구분자를 넣지 않을 수도 있고 주나 도시 이름의 철자를 틀리게 쓸 수도 있다. 만약 대부분의 웹 애플리케이션에서 사용하는 방식인, 각 필드별로 다른 텍스트 영역을 지정하고, 주의 경우 드롭다운 상자를 사용하여 만들면 문제가 좀 더 쉽게 해결될 것이다. 만약 도시와 주를 우편번호(혹은 이와 유사한 것)를 통해서 추출해 낼 수 있다면 더욱 문제가 간단해 질 것이다.
그럼 좀 덜 간단한 예를 살펴보자. 링크드인 프로필에는 굉장히 많은 정보가 포함되어 있다. 이를 이용해서 컨퍼런스 추천 시스템을 구축할 수 있을까? 답은 "그렇다"이다. 하지만 대답하기 전에 "어떻게"를 생각하자. 지나온 길을 살펴보면서 근본적인 질문을 해보는 것은 중요한 일이다.
A) 고객이 관심을 가지고 있는가? 시장이 형성되어 있는가? 만약 아니라면, 이 애플리케이션을 만들 필요가 없다.
B) A에 대한 대답을 얻는 데 얼마나 걸렸는가?
완전히 성숙한 추천 엔진을 만들고 테스트하는 것부터 시작할 수도 있었을 것이다. 이렇게 하려면 정보 추출 시스템과 정보 검색 시스템, 모델 트레이닝 기술, 잘 구축된 사용자 인터페이스 등이 필요하다. 이렇게 하려면 사용자가 신경을 쓰든 말든 1,000시간 이상 일을 해야 가능할 것이다.
대신, 훨씬 간단한 시스템을 구축할 수도 있다. 여러가지 예 중, 링크드인 프로필의 도서 리스트를 보자.
책에는 ISBN이 있고, ISBN은 키워드와 같이 태깅되어 있다. 유사하게, 키워드로 분류되는 이벤트의 분류 목록도 있다. (
Lanyrd가 이런 식이다.) 키워드와 단순한 사용자 인터페이스로 대충 빠르게 매칭 시스템을 만들고 높은 관심을 보이는 제한된 사용자를 대상으로 광고를 한다. 결과는 상상해오던 최고의 매칭 시스템은 아니겠지만, 사용자가 이에 대해서 관심을 가지고 있는지 아닌지에 대한 반응을 얻기에는 충분하다. 가장 중요한 것은, 이런 것은 빠른 시간 안에(몇 시간, 안된다면 며칠만에) 개발이 가능하다는 것이다. 여기서, 이 제품은 완성본과는 거리가 멀다. 하지만 사용자가 관심을 가지는지 아닌지를 판단하기 위해 테스트를 한 것일 뿐이다. 그럼 이제 더욱 제품 개발에 박차를 가할 수 있다. 보다 원활한 사용자 인터페이스를 구축하고, 기능들을 추가하고, 실시간으로 새로운 데이터를 통합하며, 추천 엔진의 품질을 향상시킬 수 있다. 추천 내용을 위해 프로필의 다른 부분들(기술, 참여 그룹, 혹은 최근 트윗 같은 것)을 보다 복잡한 인공지능이나 기계학습 엔진의 일부로 사용할 수 있을 것이다.
여기서 핵심은 간단하게 시작해서 최대한 간단한 상태를 유지하는 것이다. 데이터 제품 아이디어는 시작은 간단하지만 점점 복잡해지는 경향이 있다. 만약 복잡하게 시작한다면, 손을 댈 수 없는 형태로 되어버린다. 하지만 간단하게 시작하는 게 항상 쉬운 일은 아니다. 매우 큰 문제의 각 부분을 보통 어떻게 푸는가? 시간이 지남에 따라, 당신은 당신만의 문제 해결 도구 레퍼토리를 구축하고 있을 것이다. 다음은 일을 시작할 때 도움이 되는 몇 가지 아이디어이다.
제품 디자인을 활용하라
데이트를 사용해서 일할 때 가장 크게 다가오는 문제 중 하나는 데이터를 유용한 형태로 가져오는 것이다. 데이터를 정제하는 일을 간과하고 바로 제품 개발로 넘어가기 쉽지만, 데이터를 사용 가능한 형태로 변환하는 일이 우선 순위로 놓지 않으면 결국 실패할 것이다. 예를 들어, 사용자가 이전 회사를 기록하도록 하는 텍스트 영역을 만들었다고 해보자. 거기에 "IBM"이라고 입력하는 방법이 몇 가지나 있을까? 몇 십 가지? 사실대로 말하자면, "IBM"과 "I.B.M"부터 시작해서 "T.J.왓슨 연구실"과 "네티자"까지 몇 천 가지가 있다. 지금 만들고 있는 데이터 제품에서 이 모든 이름을 고유 ID로 묶어야 한다고 가정해 보자. 결과가 모호하지 않게 나올 수 있도록 하는 가장 일반적인 방법은 비교적 복잡한 인공지능 엔진을 구축하는 것이지만, 이러려면 상당한 시간이 필요하다. 다른 방법으로는 모든 회사에 대해 드롭다운 목록을 제공하는 것이지만, 이는 목록의 길이와 선택에 제한이 걸리므로 끔찍한 사용자 경험을 제공할 것이다.
데이터 주짓수는 어떨까? 훨씬 단순하고 믿을 만한 해결책이 있을까? 있다. 하지만 인공지능은 아니다. 사용자가 명확한 답을 얻도록 도와줄 수 있는 사용자 인터페이스를 제공하는 것처럼 어렵지 않다. 예를 들면, 다음과 같은 것들을 할 수 있을 것이다.
- 사용자가 가장 알려진 단어를 선택할 수 있도록 미리 형식을 지원해 주기
- 사용자에게 "...를 뜻합니까?"라고 확인하는 프롬프트 보여주기
- 여전히 사용할 수 없는 단어가 나온 상태라면, 사용자에게 더 도와줄 것이 있는 지 물어보기. 증권사 기호 혹은 회사 홈페이지의 URL을 물어볼 수 있다.
여기서의 핵심은 형식을 제공하는 것보다 상호 대화를 해야 한다는 점이다. 분석에만 의존하지 말고, 사용자가 당신을 도와줄 수 있도록 하라. 이는 사용자를 더 참여시키는 것만이 아니라(물론 이것대로도 좋다), 백엔드 시스템에서 일을 단순화할 수 있도록 데이터를 정제하고자 함이다. 여러 번 시도해 본 결과, 백엔드 시스템에서 문제를 해결하는 경우 앞단에서 해결하는 데에 비해서 100~1,000배의 비용이 소모된다는 것을 알게 되었다.
의심이 생긴다면, 사람을 활용하라
공학자들의 말에 따르면, 우리는 확장 가능한 기술 솔루션을 찾고자 하는 경향이 있다. 어떤 솔루션을 써야 할 지 알기 전에 기술적 해결책을 적용하는 것으로 종종 넘어가기도 한다. 이때 이 프로세스를 확장할 수 있는 기술적 해결책을 찾아내는 것보다, 주어진 일을 사람이 할 수 있는 수준인 바이트 크기의 조각으로 나눌 수 있는 지 살펴보도록 하자. 아마존의 메카니컬 터크(Mechanical Turk)는 작은 문제들을 온라인상에 올리고 이를 해결한 사람들에게 소정의 액수의 돈(보통 2센트)을 지불하는 시스템이다. 이는 제품을 빨리 시장에 내놓고 싶어하지만 분석 솔루션에 많은 시간을 투자할 수 없는 기업가들을 구해낼 수 있다.
다음 예를 보자. 한 카메라 회사가 식당 주인들에게 하루에 얼마나 많은 테이블이 차는 지 혹은 비는 지에 대해 알려줄 수 있는 제품을 테스트하고자 한다. 이 문제를 컴퓨터 비전의 관점에서 다루면, 매우 복잡해진다. 물론 이는 해결 가능하지만, 몇 명의 박사와 많은 시간과, 대량의 컴퓨팅 자원이 소요될 것이다. 이를 더 간단히 해결할 수 있는 방법이 있다. 사람들은 쉽게 사진을 보고 한 테이블에 누가 앉아있는지 아닌지를 말해줄 수 있다. 그러므로 회사에서는 일정한 시간 간격으로 사진을 찍어서 사람들에게 차 있는 테이블을 세 달라고 하면 된다. 이는 그들의 아이디어를 테스트하여 매우 어려운 문제에 대한 해결 방법을 개발하기 전에 이 제품이 실용성이 있는 지 판단할 수 잇는 기회를 준다. 또한 이를 통해서 고객들이 진정으로 알고자 하는 것을 찾아낼 수 있다. 고객들이 점유된 테이블의 수만 알고자 하는 것인가? 혹은 각 테이블의 평균 고객 수를 알고자 하는 것인가? 아니면 고객이 테이블에서 얼마나 오래 머무르는 지 알고자 하는가? 이런 식으로, 실제 제품을 구축하기 시작했을 때, 사람보다 컴퓨터 비전 기술을 사용하여, 어떤 문제를 풀어야 하는 지 알 수 있다.
또한 사용할 수 없는 입력값에서 유효한 값을 분리해내는 데에도 사람의 힘이 유용하게 사용된다. 온라인 요리책에서 요리법을 수집하는 시스템을 구축한다고 가정하자. 이때 대량의 스팸성 데이터가 모일 거라는 것을 쉽게 알 수 있다. 여기서 제대로 된 요리법을 어떻게 분리할 것인가? 이 역시 추가적인 투자 없이 AI로 구현하기 어려운 문제이지만, 사람이 하면 꽤 간단히 해결된다. 시작할 때, 메카니컬 터크를 통해 각 페이지를 세 사람에게 전송한다. 만약 이 사람들 모두가 이 요리법이 적합하다고 동의하면, 이를 사용한다. 만약 모두가 이 요리법이 스팸이라는데 동의하면, 이 페이지는 버린다. 만약 의견이 불일치하면, 다른 검토인 집합에게로 이 페이지를 넘기거나 보다 판단을 잘 할 것이라고 여겨지는 다른 검토인들로부터 추가 데이터를 얻는다. 여기서 중요한 점은 사람들이 판단하는 기준 및 반응을 지켜보는 것이다. 이런 반응을 정의하면, 보다 복잡한 자동화된 시스템을 구축할 수 있다. 사람이 기본적으로 문제를 해결하는 방법을 사용하여, 매우 낮은 비용으로 문제를 잘 해결하는 방법을 배울 수 있다.
애드바크(Aardvark,구글에 인수된 유망한 신생 기업)가 유사한 길을 가고 있다. 이 회사의 목적은 질문을 생성하고 실제 사람들에게 사용자의 질문을 전달해서 "내재 지식"으로 만든 후 답변을 제공하는 것이다. 예를 들어, 사용자가 캘리포니아의 팔로 알토에서 첫 데이트를 하기 위해 좋은 식당을 찾고자 한다고 하자. 애드바크는 이 질문을 팔로 알토 근교 지역에 사는 사람들에게 전달하고, 답변을 완성한다. 그들은 직원들에게 이 질문을 수동으로 전달하는 도구를 만드는 것으로 회사를 시작했다. 이 경우 확장성은 떨어지지만, 질문 전달을 위해 보다 자동화된 솔루션을 만들어야 하는 지에 대해 충분히 알 수 있도록 해 준다. 사람을 사용한 해결책은 무엇을 구축해야 하는 지를 명확히 해 줄 뿐만 아니라, 기술 솔루션에 들이는 노력이 충분히 가치가 있고 이를 구축하는 시간을 벌어 줄 수 있다.
양쪽 경우 모두, 시간 대비 예상 업무량의 그래프를 그려보면, 다음과 같을 것이다.
내가 데이터 과학의 기본적인 법칙을 위반해서 각 축의 축척 없이 그래프를 그렸다는 사실은 무시하자. 여기서 중요한 점은 장기적 경우 기술 솔루션이 유리하다는 것이다. 기술 솔루션은 항상 더 효율적이고, 별로 좋지 않은 기술 솔루션인 경우에도 사람이 질문에 대답하는 것보다는 더 나은 결과를 보인다. 하지만 막 시작할 때는, 장기적인 경우까지 고려할 필요가 없다. 일단 제품이 충분한 가치가 있다는 것을 증명할 만큼 오래 살아남아야 장기전을 할 수 있다. 그리고 단기적으로는, 사람을 사용하는 것이 보다 일이 적게 든다. 당신이 필요한 정도의 기간을 고려하자.
승리를 위한 기회를 찾자
극단적으로 단축키를 만드는 것 같은 경우에도 가능한 것을 최대한 단순하게 구축하기 위해 스트레스를 많이 받았다. 일단 뭔가 작동하고 그것을 사용자가 원한다는 것을 알게 되었으면, 다음 단계를 이를 제품으로 발전시키는 것이다. 아마존은 좋은 예시를 제공한다. 그들이 기업을 시작했을 때를 돌아보면, 아마존의 웹 페이지에는 제품 세부 정보, 리뷰, 가격, 아이템 구매 버튼이 포함되어 있다. 그런데 고객이 자기가 원하는 제품을 찾았는 지 확신하지 못하고 다른 제품과 비교하면서 쇼핑을 하기를 원한다면 어떻게 해야 할까? 이런 경우 현실 세계에서는 아주 간단하지만, 아마존의 초기 유일한 대안은 검색 엔진으로 돌아가는 것이었다. 이것은 "막다른 골목의 흐름"이다. 일단 사용자가 검색 상자, 또는 Google로 돌아가면, 그 사람이 길을 잃었을 가능성이 크다는 것이다. 사용자는 아마존이 보다 나은 가격에 동일한 제품을 판매하는 경우에도 경쟁사에서 원하는 도서를 찾을 수 있다.
아마존은 다른 관련 제품으로 사용자를 연결해주는 페이지를 구축하는 것이 필요했다. 자기가 제일 먼저 본 것을 구매하지 않는 고객을 잃지 않도록 유사한 페이지에 사용자가 직접 접근하게 하는 것이 필요했다. 아마존은 복잡한 추천 시스템을 구축했지만, 훨씬 더 간단한 시스템을 사용하도록 선택했을 수 있다. 그들은 자신들의 페이지에 "이 제품을 본 사람들이 본 다른 제품"을 추가하기 위해 협업 필터를 구축하였다. 이 추가 작업은 이런 영향을 미쳤다. 사용자는 해당 사이트를 떠나지 않고 제품 조사를 할 수 있다. 만약 원하는 것이 첫 페이지에 발견되지 않을 경우, 아마존은 다른 페이지로 연결해 준다. 아마존이 "이 제품을 구입한 사람들이 구입한 다른 것들" 등 이런 많은 다양한 기능을 개발한 것(그래서 여러 추가 제품 또한 같이 구입할 수 있다)은 매우 성공적이었다.
협업 필터는 이게 어떻게 작동하는 지를 한 번 알면 간단한 제품으로 시작한 것이 나중에 더 복잡한 시스템으로 변한다는 것에 대한 매우 좋은 예제이다. 협업 필터를 확장하기 시작하려면, 모든 구매 정보를 정확하게 기록하고 있어야 하고, 데이터를 저장할 공간과, 프로세싱을 위한 계층을 구축하고, 데이터를 갱신하고, 이에 따른 연관성 문제를 해결할 프로세스를 구축해야 한다. 연관성 문제는 매우 까다로울 수 있다. 데이터가 거의 없을 경우, 협업 필터는 매우 이상한 결과를 내기 쉽다. 데이터베이스에서 몇 번 클릭만 잘못해도, 패션 액세서리에서 공구가 나오는 결과를 얻을 수 있다. 하지만 동시에, 문제를 보다 간단하게 만들 수 있는 방법은 여전히 존재한다. 데이터 분석을 배치 모드로 실행하여 시간 문제를 감소시킬 수 있다. "이것을 본 고객이 본 다른 제품"을 실시간으로 수행하는 대신, 이를 밤에만(혹은 주마다 혹은 월마다) 갱신하면 된다. 간헐적으로 상관없는 결과("가죽 핸드백을 구매한 사람이 전동 스크류드라이버를 구매한다")를 얻거나 혹은 미리 계산된 추천을 필터링하기 위해 메카니컬 터크를 사용하여 사용자에게 도움을 요청할 수도 있다.
일반적인 제품 분석을 통해 기회를 찾을 수도 있다. 월스트리트 저널에서는 징가(Zynga)가 FishVille 게임으로 어떻게 빠르게 성공할 수 있었는지에 대한 케이스를 연재했다. 이 게임에서는 물고기를 사면서 돈을 벌 수 있지만, 돈을 지불하기도 해야 한다. 징가 분석 팀은 특정 물고기들이 다른 물고기들에 비해서 6배 잘 팔리는 것을 알아챘다. 징가는 비슷한 여러 가상 물고기를 만들어서 $3부터 $4까지의 값을 매겼다. 이에 대한 데이터에서 무언가를 발견할 수 있었다. 물고기가 반투명한 것을 고객이 원한다는 것을 알게 된 것이다. 이런 빠른 관찰과 간단한 테스트 결과를 조합하여, 그들은 꽤 높은 수익을 얻을 수 있었다.
실제 세계에 제품을 정착시켜라
아마존의 협업 필터를 보면 더 많은 것을 배울 수 있다. 만약 헤드폰 같은 것을 사러 직접 매장에 들어가면 무슨 일이 일어나는가? 보통 할인 가격을 찾은 후, 후기를 찾지만, 보통 딱 한 제품만을 본다고 확신할 수 없다. 일단 눈에 처음 들어온 것 주변의 비슷한 여러 개의 제품을 같이 살펴 볼 것이다. "이 제품을 본 사람들이 본 다른 제품" 항목을 추가함으로써, 아마존은 웹 페이지에서도 비슷한 경험을 구축했다. 요약하자면, 데이터를 통해서 실제 세상에서 일어나는 것과 유사한 가상 경험을 "정착"시킨 것이다.
링크드인의 "당신이 알 수도 있는 사람"은 데이터 주짓수와 현실에 제품을 정착시키는 것 모두를 구체화했다. 컨퍼런스 리셉션에 도착하면 무슨 일이 일어나는지 생각해보자. 아는 사람을 찾기 전까지는 리셉션 바깥쪽을 돌아다니다가, 아는 사람을 만나면 다른 아는 사람이 보일 때까지 그 사람에게서 떨어지지 않는다. 이때, 당신의 상호 작용 행태가 변화한다. 친숙한 얼굴이 보이기 시작하면, 모르는 사람들과 교류해야 한다는 생각에서 풀려난다(다음에 컨퍼런스에 참석하게 되면 실제로 이런지 살펴보는 것도 좋다).
소셜 네트워크에 가입하면 유사한 종류의 경험을 체험할 수 있다. 링크드인의 첫번째 데이터 과학자는 이를 인지하고 그들의 온라인 세상의 두 가지 큰 과제를 깨달았다. 첫 번째, 이는 웹사이트이므로, 그룹의 바깥쪽을 수동적으로 돌아다닐 수 없다. 이는 어두운 방에서 친구를 찾는 것과 마찬가지이다. 두 번째, 링크드인은 당신이 이 사이트에 머무르는 매 순간을 위해 투쟁한다. 여기는 친구를 찾는 동안 한 두 잔 음료를 마실 수 있는 컨퍼런스장이 아니다. 여기는 그저 작은 창이고, 실제로 교류를 갖기 위해 몇 초만 머무르게 된다. 만약 이 사이트에서 어떤 접점도 찾지 못하면, 당신은 다른 곳을 클릭하여 떠나갈 것이다.
이 문제를 해결하기 위한 주소록 가져오기나 검색 장치 같은 초기 접근법은 매우 많은 장벽에 부딪쳤다. 이 사이트가 왜 쓸모있는 지를 이해하지 못한 사용자에게 너무 많은 노력을 요구했다. 하지만 우리 링크드인 팀은 몇 가지 간단한 추론을 통해 "당신이 알 수도 있는 사람"을 구성할 수 있다는 것을 알게 되었다. 우리는 완벽한 솔루션을 구축할 자원은 없었다. 하지만 초기 단계에서, 데이터 베이스에 간단한 쿼리 여러 개를 돌렸다. "직업이 무엇인가" "어디에 사는가" "어느 학교를 나왔는가" 같이 사람을 처음 만났을 때 물어보는 질문들이다. 또한 폐쇄 삼각형 기법(제인이 마크와 연결되어 있고, 마크가 샐리와 연결되어 있다면, 샐리와 제인은 서로 알 가능성이 높다)도 사용하였다. 이 아이디어를 시험해 보기 위해, 서로 알 것 같은 세 사람에게 각자의 결과를 보여주는 개인화된 광고를 구축했다. 이들 중 한 명이 클릭을 하면 "연결 맺기" 페이지로 이동시켜 준다. (물론, 그 광고를 다시 보게 되면, 결과는 마찬가지겠지만, 여기서 요점은 사용자에게 최소한의 영향을 주고 빠르게 테스트를 하는 것이다.) 결과는 압도적이었다. 이는 완제품에 사용되었고, 페이스북과 다른 소셜 네트워크 제품에 빠르게 복제되었다. 수작업으로 히트를 쳤다는 것을 깨달은 후에야 결과를 확장하기 위해 복잡한 기계적 장치를 구축하였다.
"당신이 알 수도 있는 사람" 이후, 우리 링크드인 팀은 "당신이 좋아할 그룹"에도 비슷한 방식을 사용할 수 있다는 것을 깨달았다. 우리는 새로운 데이터베이스 기술들에 익숙해졌을 때, 이를 예제 삼아 구축하기 시작했다. 1차 버전을 구축하고 똑같이 홈페이지 광고 영역에 적용하는 데에 1주일 미만이 걸렸다. 이 과정에서 우리는 추천 시스템의 제한과 능력에 대해 많은 것을 배웠다. 한 쪽에서는, 수치상으로는 사람들이 이 제품을 정말 좋아하고 있었다. 그러나 추가 필터 규칙이 필요했다. 사용자들은 시스템이 정치/종교 그룹을 추천해주면 좋아하지 않았다. 지나고 나서 보니, 이는 매우 당연하고, 우스울 수도 있지만, 모든 필요한 규칙을 사전에 인지하는 것은 매우 어렵다. 이런 간단한 테스트는 필요한 것으로 판명된 규칙을 추가할 수 있는 유연성을 가져다 주었다. 어쨌든 우리는 새 데이터베이스를 테스트해야 했기 때문에, 우리는 이 제품을 "무료"로 내놓았다. 이는 무언가에 성공한 후, 이후의 승리를 위한 추가의 기회를 더 얻은 그룹에 대한 좋은 사례이기도 하다.
부가가치 창출을 위해 사용자에게 데이터를 환원하라
사용자에게 데이터를 환원함으로써, 사용자 참여 및 수익 모두를 얻을 수 있다. 우리는 지금까지 대부분의 사용자가 자신들이 고객이 아니라 제품이라는 것을 깨닫는 데이터 게임을 충분히 해왔다. 시스템에서 사용자의 역할은 광고 타겟팅을 지원하거나 최고가를 입찰하거나, 혹은 두 가지 모두에 대한 데이터를 생성하는 것이었다. 그들은 이런 역할을 받아들였을 수도 있지만, 과연 이런 것을 누가 좋아할 지 잘 모르겠다. 하지만 데이터를 사용자에게 환원하는 것은 당신은 사용자 편이란 것을 보여주어, 제품에 사용자 참여를 증대시키는 방안이 될 수 있다.
데이터를 사용자에게 어떻게 환원할까? 링크드인은 "당신의 프로필을 본 사람"이란 제품을 만들었다. 이 제품은 당신의 프로필을 본 사람들의 목록을 보여주고(물론 개인 정보 설정에 따른다), 본 사람들에 대한 통계 정보를 제공한다. 당신을 찾기 위해 사용한 검색어의 목록도 시계열 적으로 보여주고, 프로필을 본 사람들이 어디에 사는 지 지리적으로도 알려준다. 이는 시기적절하고 실행 가능한 데이터로, 중독성이 있다. 이는 모든 사람들의 홈페이지에서도 볼 수 있고, 프로필 본 사람들의 숫자를 보여주므로, 고정적이지 않다. 매 시간 당신이 자신의 링크드인 페이지를 볼 때마다 이를 클릭하고 싶을 것이다.
그리고 사람들은 클릭한다. 참여가 매우 높아지자 링크드인은 두 가지 버전을 내놓았다. 하나는 무료이고 하나는 가입 패키지 형태이다. 이 제품은 보다 진지하게 사용하는 사용자를 위한 손쉬운 업그레이드를 제공하며, 보다 정교한 기능 및 과부하 없이 요약 통계를 볼 수 있는 등의 혜택을 통해 보통 유저와는 차별화를 둔다.
데이터를 환원하는 것은 링크드인 뿐이 아니다.
조브니(Xobni)는 이메일을 분석하여 보다 나은 연락처 관리 및 받은 편지함 관리를 지원한다. 민트(
Mint, 인튜잇(Intuit)에 인수되었음)는 신용카드 정보를 통해 당신의 지출을 계산하고 이를 비슷한 다른 사람들과 비교해 준다. 퍼시픽 가스 앤 일렉트릭(Pacific Gas and Electric)에는 당신의 에너지 사용량을 분석해주는
스마트미터(SmartMeter)라는 제품이 있다. 당신의 전화 및 다른 센서들로부터 데이터를 수집해서 개인 대시보드를 제공하는 건강관련 앱도 볼 수 있다.
요약하면, 이 글을 읽는 모든 사람은 작년 혹은 직장 생활 중 더 많은 기간을 데이터를 구성하는 데에 소비한 것이다. 하지만 이는 우리를 위해서만은 아니다. 사용자를 포함한 모든 사람들은 데이터의 가치를 깨닫고 있다. 이를 쌓아두지 말자. 이를 돌려주면, 당신과 당신의 회사 모두에 보다 많은 참여와 많은 수익을 불러오는 경험을 하게 될 것이다.
데이터를 토하지 않게 하라
데이터 과학자들에 따르자면, 우리는 가공되지 않은 데이터를 다루는 것을 더 선호한다. 우리는 이를 가져와서 변형해서, 다른 데이터들과 결합하여 시각화할 줄 안다. 대부분의 고객들은 이를 할 줄 모른다. 데이터 제품을 개발하는 데에 가장 큰 문제 중 하나는 사용자에게 데이터를 어떻게 환원할 지 판단하는 것이다. 너무 많은 데이터를 한 번에 돌려주면 이를 감당하지 못하고 전신마비를 일으키며 "데이터를 토해내는" 상황에 이르게 될 것이다. 자기가 원하는 제품을 구축하는 것은 자연스러운 일이지만, 이러다보면 사용자의 능력을 과대평가하기도 쉽다. 자기가 원하는 제품이 사용자가 원하는 제품은 아닐 수도 있다.
"내 프로필을 본 사람"의 프로토타입을 구축할 때, 우리는 세부 사항까지 드릴-다운하여 모든 종류의 놀라운 데이터를 보여주는 것이 가능한 환상적인 능력을 가진 초기 버전을 만들었다. 이를 테스트하기 위해 몇 번을 클릭했을까? 0번이다. 왜냐고? "반 상호작용 법칙"은 대부분의 사용자에게 적용된다. 많은 데이터를 보여줄 수록, 상호작용이 적어진다.
데이터를 토해내는 상황을 피하는 가장 좋은 방법은 데이터의 행동 가능성에 집중하는 것이다. 즉, 사용자가 어떤 행동을 해주기를 원하는가? 사용자가 그들이 데이터로 할 수 있는 행동의 수에 감동받기를 원한다면, 데이터를 토하는 상황이 일어날 가능성이 높다. 만약 사용자가 해야 할 행동을 명확히 알려주기를 원한다면, 보다 명확한 목적을 가진 제품을 구축해야 한다.
뜻하지 않은 부작용을 예상하라
물론, 뜻하지 않은 부작용을 완전히 피한다는 것은 불가능하다. 그렇지 않은가? "뜻하지 않은"이란 단어의 뜻이 그런 것이기 때문이다. 하지만 뜻하지 않은 부작용은 농담이 아니다. 뜻하지 않은 부작용의 대표적인 사례 중 하나는 "내 티보는 내가 게이라고 생각한다(
My TiVo Thinks I"m Gay)"이다. 대부분의 디지털 비디오 레코더는 당신이 보고자 하는 쇼를 추천해 주는 추천 시스템이 내장되어 있다. 이는 아마존으로부터 배웠다. 하지만 사용자가 어떤 쇼("윌과 그레이스(Will& Grace)")를 본 경우 비슷한 테마의 다른 쇼들("엘렌 디제니어 쇼(The Ellen DeGeneres Show)", "퀴어 애즈 포크(Queer as Folk)" 등)을 추천하는 경우가 있다. 유사한 방식으로, 이웃에 동남아시아 계열 사람들이 많이 사는 나의 영국계 친구는 최근에 나에게 그의 넷플릭스 추천 시스템이
발리우드 영화들만 추천해주는 경향이 있다고 알려주었다.
이런 이야기들은 우습고, 시트콤의 이야기의 뼈대로 사용되기도 한다. 하지만 사용자들을 실제로 괴롭히는 점이기도 하다. 당신이 무엇을 원하는 지 "결정"한 추천 시스템이 한 수 앞을 내다보게 하는 것은 어렵고 힘든 일로, 고객을 잃게 되는 계기가 될 수 있다. 뭐가 잘못 된 것일까? 발리우드 추천 사례를 보면, 알고리즘이 아마도 주변의 사람들이 보는 영화에 과적합되어 있을 것이다. 티보의 경우, 시스템이 잘못 되었다고 말하기는 쉽지 않다. 대신, 당신이 보다 한 수 앞서도록 강요하고 있으며, 이를 사용해 본 사용자들은 지능형 에이전트가 잘못된 결과만 가져다 준다고 생각할 수밖에 없다.
정확도와 재현률 높이기
운 나쁜 추천 시스템 및 협업 필터링같은 것이 뭐가 잘못된 것인지 같은 - 나쁜 결과가 나왔는지 판단을 위한 도구에는 뭐가 있을까? 정확도(precision)과 재현률(recall)이라는 두 가지 개념이 있다. 보다 이것들을 정확히 설명해 보자. 이 개념들의 뜻은 다음과 같다.
정확도 - 원하는 결과와 일치하는 능력. 만약 추천 시스템을 구축했다면, 매번 정확한 추천을 제공하는가? 만약 광고를 보여주고 있다면, 모든 광고가 클릭되었는가? 이러면 정확도가 높은 것이다.
재현률 - 가능한 잘된 추천의 집합이다. 재현률은 기본적으로 인벤토리와 관련이 있다. 재현률이 높다는 것은 좋은 추천 내용들을 많이 보유하고 있거나, 사용자에게 보여줄 수 있는 광고를 많이 가지고 있다는 것이다.
정확도와 재현률 모두가 높아야 한다는 것은 명확하다. 예를 들어, 사용자에게 광고를 보여준다고 할 때, 만약 보여줄 광고가 많고 모든 광고가 클릭으로 이어지는 확률이 높다면 마치 천국에 간 기분이 들 것이다. 불행히도, 정확도와 재현률은 서로에게 역으로 작용하기도 한다. 정확도가 높아질 수록, 재현률이 떨어지기도 하고, 반대의 경우도 가능하다. 클릭으로 이어지는 경우가 95%인 광고의 수는 상대적으로 적고, 1%의 클릭 확률을 가진 광고는 당연히 훨씬 많다.
따라서, 제품 디자인에서 중요한 문제는 정확도 대비 재현률의 조절이다. 검색 엔진을 만드는 경우, 중요한 것은 정확도로, 그냥 그런 검색 결과의 큰 인벤토리는 소용없다. 사용자가 만족하는 결과가 페이지 상위에 오도록 하는 것이 필요하다. 낮은 정확도의 검색 결과는 나쁜 사용자 경험을 유발한다.
반면에, 낮은 정확도의 광고는 대부분 무해하다(아마도 정확도가 낮아서일 수도 있지만 다른 이유도 있을 것이다). 어떤 광고가 클릭을 유도하는 지 알기 어렵고, 보통 사용자에게 아무 것도 보여주지 않는 것보다는 무언가를 보여주는 것이 훨씬 낫다. 연관성없는 광고들을 효과적으로 조율 가능하다는 것을 충분히 보아왔다.
이 두 경우의 차이는 데이터가 사용자에게 어떻게 보여지느냐 하는 것이다. 검색 데이터는 직접 보여진다. 만약 구글에 "데이터 과학(data science)"을 검색하면, 0.47초(이것을 기록하는 동안)동안 11억 6천만 건의 결과를 얻을 수 있을 것이다. 처음 몇 페이지에는 모든 결과에 "data science"라는 단어가 포함되어 있을 것이다. 검색에 대한 결과는 직접 받게 된다. 이는 직관적으로 이해가 갈 것이다. 하지만 광고 콘텐츠에 대한 근거는 명확하지 않다. 당신이 광고를 볼 때, 왜 이 광고가 나오는 지는 모른다. 아무도 "이 광고는 당신이 데이터 과학에 대해서 검색했었고 당신이 버지니아에 살고 있다는 것을 알고 있으므로, 당신의 데이터에 가장 적합한 광고들이 수집된 것이 여기이므로 이 광고를 지금 보여주고 있다"고 알려주지 않는다. 광고와 당신의 취향의 관계가 모호하므로, 광고가 연관성이 있는지 마구잡이로 판단하기도 어려울 뿐 더러, 여기에 집중할 필요도 없다.
광고로 대표된 모호한 데이터(사용자와 결과의 관계가 명확하게 이루어지지 않는 데이터)를 사용하는 데이터 제품을 구축하면, 정확도는 타협이 가능하지만 재현률은 아니다. 하지만 데이터가 노출된다면, 정확도를 높이는 데 집중하라.
주관성
맞닥뜨리게 되는 또 다른 문제는 주관성이다. 사용자가 결과를 어떻게 인식할까? 링크드인의 한 제품은 10개의 추천 직업을 제공한다. 여기서 문제는 사용자가 잘 된 추천보다는 안 좋은 추천에 집중한다는 것이다. 9개의 결과가 정확히 맞았고 하나가 틀렸다면, 사용자는 전체 제품이 이상하다고 생각하면서 떠날 것이다. 하나의 나쁜 경험은 좋은 경험을 일관되게 망쳐놓을 수 있다. 만약 5개 이상의 웹 세션에서, 한 줄로 49개의 완벽한 결과를 보여줬지만, 50번째 결과가 이상하다면 피해는 계속될 것이다. 물론 첫번째 세션부터 나쁜 결과가 나왔을 때보다는 낫겠지만, 여전히 나쁜 건 마찬가지이고, 되돌리기도 어렵다. 가장 일반적인 가이드라인은 좋은 결과를 많이 제공하고, 아주 훌륭한 결과도 몇 개 제공하되, 나쁜 결과는 안 만드는 결과 분포를 위해 노력하라는 것이다.
이는 이야기의 일부일 뿐이다. 당신은 사용자가 나쁜 추천을 고려하는 지 실제로는 잘 모른다. 다음 두 가지의 직업 추천을 보자.
무엇이 중요할까? 직업 자체? 아니면 위치? 아니면 직함? 완벽하게 잘 맞는 직업이지만, 미네폴리스로 이사해야 한다면 사용자는 그 추천을 "나쁘다"고 생각할까? 만약 직업 자체는 완벽하게 잘 맞지만, 사용자가 직함에 "수석"을 달기를 원한다면? 이런 걸 진짜로 알 수는 없다. 추천엔진이 이런 문제를 예측하는 것은 매우 어려운 일이다.
다른 사용자 같이 나열하기
문제를 해결하기 위해 주짓수에서 접근하는 한 가지 방식은 이를 주변에 뿌린 후 소셜 시스템을 사용하는 방식이다. 이런 추천을 바로 사용자에게 보내는 대신에, 추천 결과를 사용자와 연결된 사람들에게 보낸 후 관련된 것을 보내달라고 요청할 수 있다. 마이크가 직업 추천을 이런 식으로 나에게 보냈는데, 처음 딱 보기에, 난 마음에 안 들었다고 가정하자. 다음 두 가지 경우 중 하나가 일어날 것이다.
- 직업 추천을 본 후 이 것이 매우 끔찍한 추천이며 이는 마이크의 실수라고 생각한다.
- 직업 추천을 본 후 마이크가 왜 이 것을 나에게 보냈는 지 고민한다. 마이크는 내가 놓치고 있는 무언가를 보았을 수도 있다. 아마 그는 이 회사가 정말 좋다고 알고 있을 수 있다.
시스템이 나쁜 추천을 한다고 처벌을 받지는 않는다. 게다가 제품은 데이터를 통해서 모델을 계속 훈련시켜서 전반적인 정확도를 향상시킨다. 따라서, 제품을 약간만 손 보면 심각한 연관성 문제는 사라질 수 있다. 이런 식의 응용을 통해 매우 중요하고 어려운 문제를 해결하여 제품을 깔끔하게 마무리할 수 있게 해준다.
구하라, 그리하면 얻을 것이다
우리는 제한된 사용자 데이터에만 집중하고는 한다. 하지만 이를 잘 하면, 보다 유용한 고품질의 데이터를 제공하는 사용자의 참여를 유도할 수 있다. 예를 들어, 만약 당신이 식당 추천 서비스를 구축하고 있다고 하면, 사용자의 우편번호를 물어야 한다. 하지만 이 때 사용자가 일하는 곳의 우편번호를 묻게 되면, 보다 많은 정보를 얻을 수 있다. 또한 두 지역에 대한 추천 뿐만이 아니라, 사용자의 일반적인 통근 패턴을 예측하여 그 길 사이의 식당 추천도 가능하다. 사용자에게 보다 다양한 종류의 추천을 제공함으로써 당신의 가치를 보다 높일 수 있다.
데이터 주짓수에 따르면, 통근 패턴을 추천하는 것은 아마도 제품 첫 단계에는 포함되지 않을 수 있다. 현재 작업 가능한 최대한 간단한 제품을 만들고자 할테니까 말이다. 하지만 데이터를 요구하는 것은 이후 보다 강력하고 가치있는 제품을 만들 수 있는 가능성을 제공한다.
데이터를 얻으려고만 하지 말고 주의를 기울여라. 사용자에게 왜 이런 데이터를 요구하는 지 설명을 해야 한다. 데이터를 가지고 악용하는 것이 아니라 사용자에게 가치(이 경우, 보다 좋은 추천)를 제공하기 위해 필요하다는 것에 대한 정보를 충분히 제공하여 사용자의 거부반응을 해제해야 한다. 사용자에게 긴 서류를 작성하게 하는 것보다, 대화 형식으로 제공해야 한다는 것을 반드시 기억해야 한다.
실패를 예상하라
보다시피, 데이터 제품은 정확도와 재현률의 조절로 인한 연관성 문제 때문에 실패할 수 있다. 실패할 거라고 가정하고 제품을 설계하라. 그리고 이 과정 중에, 실패하더라도 사용자 경험을 보존할 수 있도록 설계하라.
사용자 경험을 극대화한 두 데이터 제품은 소니의 아이보(
AIBO, 애완견 로봇)와 비행기 예약 변경을 위해 항공사에 전화했을 때 응대하는 사람같은
대화식 음성 응답 시스템(IVR)이다.
일단 아이보를 살펴보자. 아이보는 복잡한 데이터 제품이다. 여러 다른 센서로부터 데이터를 수집하여 이 데이터를 당신에게 반응하는 모델을 훈련하는 데에 사용한다. 아이보가 떨어진다든가 벽에 갇혀서 뱅뱅 돈다거나 하는 바보같은 행동들을 하면 어떻게 하는가? 발로 차 버릴 것인가? 저주의 말을 퍼부을 것인가? 아니다. 대신 당신은 다시 이를 집어와서 제대로 움직이게 도와줄 것이다. 아이보가 실패했을 때에 당신은 효율적으로 도와줄 것이다. 로봇 강아지 대신 뜨거운 커피를 가져오는 로봇이라고 가정하자. 만약 커피를 당신에게 쏟았다면, 어떤 반응을 보일 것인가? 아마도 발로 차 버린 후 저주를 퍼부을 것이다. 이 둘이 뭐가 다를까? 차이는 제품의 형태 및 수행 내용이다. 로봇을 개로 만듦으로써, 소니는 당신의 경험을 제약한다. 만약 로봇이 정확히 행동하지 않더라도 이를 심하게 책망하지 않게 만든 것이다.
그럼 이번엔 IVR 시스템을 생각해보자. 이 역시 복잡한 데이터 제품이다. 이 제품은 당신이 말하는 것을 이해한 후 당신을 정확한 담당자에게 안내해주는 일을 하며, 이는 간단한 일이 아니다. 당신이 이 시스템에 전화를 했을 때, 첫 번째 반응은 무엇인가? 목소리가 들리면, 당신은 "담당자 연결해주세요"라고 말할 것이다. 만약 이 때 제대로 작동하지 않으면 "다른 사람" 혹 "대표 바꿔주세요" 라고 할 것이다. (아마 시스템에게 "사람을 바꿔줘"라고 소리지르고 싶을 수도 있다.) 아마 "0"번을 누르고 시작할 수도 있다. 이 프로세스를 거치면서 기분이 좋았던 적이 있는가? 보통 좌절스러운 결과를 얻었을 것이다.
무슨 차이가 있는가? IVR 제품은 프로세스 도중에 마찰(최소한 고객의 관점에서는)이 발생하고, 사용자가 문제를 해결하는 데에 제약을 만든다. 게다가 이 시스템을 재정의하기도 어렵다. 사용자는 시스템이 사용자보다 더 똑똑한데, 사용자가 하고자 하는 일을 못하게 한다고 생각한다. 일부 사람은 이는 디자인 문제로, 마찰이 발생하도록 하는 것은 고객 서비스 에이전트의 수많은 상호작용을 처리하기 위한 방법이라고도 주장한다. 하지만 결론적으로는 고객을 좌절하게 한다.
사용자의 기대치를 적절히 설정하면 데이터 제품을 성공시킬 수 있을 가능성이 더 높다. 아이보는 이 기대치를 상대적으로 낮추었다. 사용자는 로봇 강아지에게 귀여운 것 이상을 기대하지 않는다. 직업 추천의 예로 다시 돌아가보자. 데이터 주짓수를 이용하여 결과를 수신자에게 직접 보내지 않고 이 사람의 네트워크에 보내서, 사용자를 해치는 과하게 지적인 기계처럼 보이지 않는 제품을 만들었다. 필터링을 통해서, 추천 시스템 뒤에 사람이 있는 것처럼 하였다.
데이터 제품 설계에서 놓치는 부분 중 하나는 사용자가 이 제품을 사용한 후에 어떻게 느끼는 지를 알아내는 것이다. 사용자는 좋아했는가? 힘이 나는가? 아니면 기운이 빠지고 낙담했는가? 아이보같은 제품이나 친구를 통한 직업 추천 같은 것은 사용 후 기분이 좋아지도록 하게 만들어져 있다.
많은 어플리케이션이, 결과에 대한 사용자 컨트롤을 제공하는 설계 처리를 통해 사용자가 만족해 하는 상호작용을 제공할 수 있다. 예를 들어, 만약 협업 필터를 구축한다고 하면, 잘못된 추천을 만드는 것을 피할 수 없을 것이다. 하지만 만약 사용자가 X라는 버튼을 눌러서 만족스럽지 않은 추천을 알리게 할 수 있다.
페이스북은 광고를 보여주는 데에 이 설계 기술을 사용했다. 또한 광고를 숨길 수 있또록 하여, 상관없다고 생각하는 광고를 페이스북에 알려줄 수 있는 기회를 제공한다. 페이스북은 상관없는 것부터 당신에게 해를 주는 것까지의 범위를 선택할 수 있게 해준다. 이는 사용자에게 컨트롤할 수 있게 해줌으로써 참여할 수 있는 기회를 준다. 성가신 일은 권한 확장으로 전환된다. 사용자는 잘못된 광고 타겟팅의 피해자라고 생각하는 대신, 미래에 보게 될 광고의 추천 시스템을 직접 만든다는 기분을 느끼게 해준다.
데이터 주짓수를 실제로 활용하기
당신은 아마 데이터 주짓수와 애자일 방법론의 초기 단계에서 몇 가지 유사성이 있다는 것을 깨달았을 것이다. 데이터 주짓수는 최소한의 사용 가능한 제품과 만들 수 있는 가장 간단한 형태를 가지고 방향을 잡아가도록 한다. 이런 아이디어가 직관적인 개념을 제공하는 동안 공학자로서, 우리의 대다수는 아름답고, 완벽하고, 거대한 복잡한 솔루션을 만들려고 하는 데에 대항해야 한다. 루브 골드버그(
Rube Goldberg)의 만화가 매력적인 이유이다. 데이터 주짓수는 우리의 내부의 루브 골드버그에게 항상 "아니오"라고 말해준다.
서두에서 깨끗한 데이터를 얻는 일에 대해서 이야기했다. 여기에 과한 기준을 세우는 것은 불가능하다. 어떤 데이터 프로젝트에서도 80%는 데이터 클렌징에 소요된다. 만약 본질적으로 정제된 데이터를 얻을 수 있는 전략을 잘 세운다면(주와 도시 정보를 우편번호로부터 가져오는 것 등) 이는 훨씬 줄어들 것이다. 정제된 데이터를 획득하는 초반의 노력은 은 프로젝트의 전 과정을 통해 충분히 상환될 것이다.
데이터 주짓수의 많은 양은 제품 설계와 사용자 경험에 대한 것이다. 만약 사용자가 (아이보나 링크드인의 직업 추천 엔진 같은 경우) 잘못된 부분을 잘라낼 수 있게 하도록 제품을 설계했다면 향후 앞서 나갈 수 있을 것이다. 도움을 줄 수 있는 사용자의 목록을 작성했다면, 몇 단계를 앞서 나가는것이다. 사용자 참여를 높일 수 있고, 이를 통해 더 큰 데이터 문제에 대한 지름길을 종종 발견하게 될 거이다.
데이터 제품의 핵심은 "제품"을 앞에 놓고 "데이터"를 그 다음에 두는 것이다. 다르게 말하자면, 데이터는 사용자 관점으로 제품을 만드는 하나의 수단일 뿐이다. 모든 제품에 이어서, 자기 자신에게 다음 세 가지 질문을 해야 한다.
1. 이 제품으로부터 사용자가 무엇을 얻을 수 있을 것인가?
2. 사용자가 이 제품을 통해 어떤 행동을 하기를 원하는가?
3. 사용자가 이 제품을 사용하는 동안, 사용한 후 어떻게 느꼈을까?
만약 제품이 성공적이라면, 이제 클라우드에서 돌아가는 컴퓨팅 클러스터에서 복잡한 기계학습 알고리즘을 사용해 보는 등의 원하는 시도를 해 볼 충분한 시간이 마련될 것이다. 데이터 주짓수는 길의 끝이 아닌 시작일 뿐이다. 하지만 다음 단계로 이끌어주는 시작이다.