일을 잘 하는 방법을 생각하다가

by SL

일을 하다 보면 그 일을 어떻게 하면 가장 효과적으로 할 수 있을지를 고민하게 된다. ((여기서 말하는 일이란 대체로 데이터마이닝/기계학습을 적용하는 일이다.)) 경험으로 배운 한 가지는, 어떤 방법 하나를 고집하고 고도화하기보다는 비용 대비 효과가 좋은 다른 접근을 찾아보는 게 나을 때가 많다는 것이다.

가령 어떤 문제를 100% 해결하는 게 목표라고 해보자. 이 문제에 대한 접근방법은 A, B, C 세 가지가 있다. 그런데 A, B, C를 어떻게 사용하는 게 가장 효과적인지는 모른다. A 방법론만 충분히 잘 만들면 문제를 완전히 해결할 수 있는지, 아니면 세 가지 방법으로 문제의 1/3씩을 각각 따로 풀어야 하는지.

그런데 대체로 A로 쉽게 풀리는 부분, B로 쉽게 풀리는 부분이 따로 있지, 만병통치약은 잘 없다. 따라서, 불확실한 세상에서는 전역 최적화에 대한 미련을 버리고, 그때그때의 최선을 택하는 탐욕적(Greedy) 접근방식이 낭패를 줄여준다.

어떤 문제라도 일부를 해결하는 건 생각보다 쉽다. 즉흥적으로 떠올린 방법만으로도 초기에는 상당한 효과를 거둘 수 있다. 하지만 일정 수준에 도달하고 나면, 특이한 케이스들이 보이기 시작하고, 이건 원래의 아이디어로는 해결되지 않는다.

예를 들어, 인터넷에 있는 사진 중에서 성인 이미지만 걸러내는 일을 생각해보자. 쉽게 떠올릴 만한 방법으로, 이미지에 포함된 살구색의 비율을 계산하는 것이 있다. 야한 사진에는 살이 많이 노출된다는 직관에 기반한 아이디어이고, 구현도 간단하다. 실제로 어느 정도까지는 성능이 나온다. (아마도)

그런데 정확도가 그 이상은 절대 못 올라가길래 오분류된 케이스를 봤더니… 씨름선수 사진이 잔뜩 있었다고 해보자. 이건 처음 아이디어를 낼 때 예상하지 못한 경우이며, 따라서 이제 다시 선택을 해야 한다.

첫 번째 방법은 지금의 방법론을 고도화하는 것이다. 예를 들면, 살구색이 많은 사진 중에서 씨름선수 사진을 구별할 수 있는 다른 패턴을 찾아본다. 아니면, 사진에서 사람 얼굴을 찾아 성별을 구분하는 방법도 있다. 듣기만 해도 갑자기 일의 난이도가 확 올라가는 느낌이 든다. 처음 생각보다 복잡하고 시간도 많이 들며, 그렇게 했을 때 잘 될지 어떨지조차 알 수 없다는 게 특히 부담스럽다.

이런 위험을 무릅쓰고 싶지 않다면 좀더 안전한 방법이 있다. 현재 방법론으로는 충분한 효과를 거두었으니 이제 다른 방향으로 접근하는 것이다. 위의 예에서라면, 이미지 자체를 분석하는 대신 그 사진이 들어있는 웹페이지의 제목을 분석하는 등의 착안이 있을 수 있다. 기계학습의 용어로 말하자면 새로운 분류자질(Feature) 발굴이다.

개인적으로 이 단계에서 딜레마를 많이 느낀다. 비용 대비 효과를 높여서 이른바 “일 잘하는 사람”이 되어야 한다는 생각 만큼이나, 어떤 일을 정공법으로 해결하고 싶은 욕심이 있기 때문이다.

이미지의 성인성/음란성과 살구색의 비율은 인과관계가 아니라 상관관계라고 봐야 한다. (살구색 비율이 원인이라면 살구 사진이야말로 가장 음란한 사진이 아닌가. 살구색 비율이 음란함의 결과라면, 모든 성인 사진은 살색의 비율이 높아야 하는데, 과연 그런가?) 기계학습을 할 때 상관관계를 이용하면 어느 정도까지는 분류 정확도를 높일 수 있다. 직관을 따르는 한 다른 사람에게 설명하기도 쉽다.

하지만, 이런 방식이 우리가 그 문제를 더 잘 이해하도록 돕는가?

잘 모르겠다. 정보검색에서 질의어와 문서의 유사도를 측정하는 아주 직관적인 방법으로 TF-IDF가 있다. 단어가 희귀할수록 더 중요하며, 중요한 단어가 문서에 많이 나올수록 그 문서와 질의어는 관련도가 높다는 아이디어인데, 매우 직관적이고 효과적이어서 검색엔진에서 광범위하게 활용된다.

그런데 ‘왜 TF-IDF가 좋은가’라고 물어보면 의외로 대답할 말이 궁색하다. 직관적으로 그럴 것 같지 않냐라거나, Zipf’s Law를 언급하며 빈도와 랭크의 관계를 얘기하는 정도? 아니면 다른 방식보다 통계적으로 성능이 좋았다는 실험 결과?

TF-IDF가 잘 못할 것 같은 질의어나 문서가 나왔을 때, 이를 보완하고 발전시킬 대안이 뾰족히 없다는 것도 약점이다. 휴리스틱에 새로운 휴리스틱을 더할 수는 있겠지만, 그러다보면 직관적이고 단순했던 모델이 어느새 누더기로 변해있을지 모른다.

얼마 전 링크드인에 가입하고 자기소개를 쓰면서 나의 직업적인 경력과 비전을 생각해보게 됐다. 보유기술란에 무엇을 쓸까 한참 고민하다가 결국 데이터 모델링이라고 적어넣었는데, 찝찝함이 남았다. 데이터 모델링 테크닉이라면 몇 가지 아는 게 있지만, 내 특기라고 할 정도로 그 일의 의미와 목적을 이해하고 있다는 생각이 들지 않아서다.

내가 하는 일, 하고 싶은 일의 의미를 찾는 것도 서두에서 얘기한 “일”이라고 할 때, 여러 접근방법이 있을 것이다. 요즘은 특히 상관관계를 이용해서 효과를 거두는 것 뿐만 아니라 모델링 작업 자체를 통해 어떤 현상을 더 잘 이해하고 배우고 싶다는 생각이 많이 든다. 그리고 거기에 관심있어하는 사람들과 나누고 싶은 목마름이 있다.