방대한 논문과 특허 분석해 인용 관계에 주목해 분석
미래 성장 영역이 될 수 있는 기술을 미리 발견 가능

 

 

일본 도쿄대의 한 연구소에서 2만 3319건의 논문을 분석해 상호 관련성을 나타내는 인용 관계에 착안해 '지식'의 관계성을 시각화하는 연구를 진행하고 있다. 정리된 연구 영역을 컬러 클러스터로 추출하고 키워드와 출판 연도부터 성장성까지 예측할 수 있는 분석 시스템이다.

 

 

기술이 세분화되고 분야를 가로지른 기술 간 융합이 급속히 진행됨에 따라 연구 개발주기가 빨라지고 있다. 이에 따라 기업·기관에서 기술개발 투자를 위해 미래를 전망하는 활동이 더욱 어려워지고 있다. 이런 어려운 환경을 지원하는 연구가 일본 도쿄대학 대학원 공학계 연구과의 사카타·모리 연구소에서 진행되고 있다.

 

'학술·산업 기술 조망(insight) 시스템(이하 인사이트 시스템)'이 그것이다. 도쿄대에서 개발중인 인사이트 시스템은 전 세계의 방대한 학술 논문과 특허 데이터를 분석·추출해 '지식'의 관계성을 시각화함으로써 미래 성장 영역이 될 수 있는 기술을 미리 발견할 수 있도록 돕는 이른바 기술개발 포인트를 찾기 위한 일종의 특허맵 도출과 같은 것이다.

 

논문이나 특허 상호 관련성을 나타내는 인용 관계가 존재한다. 인사이트 시스템에서는 이 인용 관계에 주목하고 방대한 논문과 특허의 대규모 인용 네트워크를 구축해 네트워크 분석을 한다. 또한 텍스트 마이닝 및 데이터 마이닝 등의 기술을 이용해 개별 논문이나 특허에 대한 텍스트 분석을 실시해 대상 기술 영역의 지식의 관계를 자동으로 추출한다.

 

논문의 그룹은 키워드 등으로 특징

[그림 1]은 머신러닝과 데이터 마이닝과 관련한 학술 논문을 바탕으로 작성한 인사이트 맵이다. 맵에서 가는 선은 개별 논문 간의 인용 관계를 표현한 것이다. 논문 데이터는 학술 문헌 데이터베이스 (톰슨 로이터의 'Web of Science')를 'machine learning OR data mining'이라는 쿼리에서 검색해 얻은 3만 4098건의 논문(2015년 6월 현재)을 사용해 그 중 가장 대표적인 인용 네트워크를 구성하는 2만 3319건의 논문을 대상으로 분석했다. 이 논문의 평균 출판 연도는 2008년으로 되어 있다.

 

[그림 1] '기계 학습'과 '데이터 마이닝'에 대한 학술 논문의 인용 관계를 선으로 표현

(인용 관계가 조밀한 213 클러스터를 추출해 색상으로 표현했다. 분량은 많지만 오래된 연구 영역 클러스터를 빨간색으로, 미래의 성장을 전망할 영역 클러스터를 파란색으로 보여주고 있다

 

인사이트 맵에서 다른 색으로 표시된 것은 「클러스터」인데, 전체 인용 네트워크 중에서도 특히 인용 관계가 조밀한 논문들을 보여준다. 인용 관계가 밀접한 것은 서로 내용이 깊이 관련된 논문이 하나의 그룹, 즉 연구 영역을 형성하고 있는 것이다. 클러스터는 연구 영역에 해당된다. 크고 작은 213의 클러스터가 추출되어 있다. [그림 2]는 그 중에서도 가장 큰 4425 논문을 포함한 클러스터(붉은색)를 나타낸다. 키워드는 클러스터에 포함된 논문에서 특징적인 단어를 보여주고 있다. 이 클러스터는 'association rule'이나 'fuzzy' 등의 키워드로 표시되도록 데이터 마이닝의 기초적인 연구 영역을 지원하고 있다.

 

[그림 2] 논문 건수는 가장 많지만 다소 오래된 연구 영역 클러스터 만 표시

 

또한 이 클러스터 논문의 평균 출판년도는 2007년에 인용 네트워크 전체 논문의 평균 출판년도에 비해 다소 오래된 영역인 것을 알 수 있다. 이와 같이 각 클러스터는 논문에 포함된 키워드 또는 출판년도, 국가, 조직, 저자 등의 정보라고 할 수 있다.

 

[그림 3]은 2183건의 논문을 포함한 5번째로 큰 클러스터(파란색)를 나타낸 것이다. 이 클러스터 논문의 평균 출판년도는 2010년으로 매우 새롭고 최근 성장중인 영역임을 알 수 있다. 키워드는 머신러닝으로 추출했으며, 현재 다양한 응용이 이뤄지고 있다. 'support vector' 등이 나타난 것을 알 수 있다.

 

[그림 3] 미래의 성장을 전망 할 영역 클러스터

 

기술개발 투자 조사를 위해 수만 건의 논문을 사람이 조사한다는 것은 사실상 불가능에 가깝다. 하지만 도쿄대의 인사이트 시스템을 이용하면 대상 영역의 전체를 쉽게 조망할 수 있으며, 최근 급성장하는 기술도 파악할 수 있다. 정부 또는 기업에서 기술 로드맵과 이슈 스캐닝(Horizon Scanning)과 같은 미래 예측을 할 때, 일반적으로 전문가의 합의 등 모든 지각에 근거한다. 

 

한편 방대한 논문과 특허 데이터에서 도출된 인사이트 맵이 나타내는 것은 학술·산업기술 지식의 객관적인 파악이 가능하다. (출처: 「니케이 빅데이터」, 2015. 7. 7)

 

글: 모리 준이치로

정보공학 박사. 도쿄대 대학원 공학계 연구과 기술경영전략학 전공, 강사. 일본 국립 정보학연구소 등을 거쳐 2012년부터 도쿄대에서 연구하고 있다. 전문은 빅데이터 분석, 인공지능, 웹 정보학이다.

Posted by 글키우는 농부
:

 

며칠 전, 한 데이터 분석 교육기관의 빅데이터 교육 수료 프로젝트 발표회장에 갔다.

네 팀이 발표를 했는데, 꽤 흥미로운 주제를 발견했다. 글로벌 호텔 체인 마케팅 담당자 또는 시스템 개발자가 참여해서 이뤄진 '호텔 객실 수요예측' 프로젝트였다.

발표를 했던, 호텔에서 일하는 분의 말이 인상적이었다. "5~7년은 호텔에서 일해야만 알 수 있는 것을 3주 간의 분석으로 (분석가들이) 파악해 내는 것이 정말 놀라웠다. (분석가들이) 마치 호텔 팀원들처럼 얘기를 하고 있었다."

발표자 당신은 바쁜 일이 있어서 분석 과정에 참여하지 못했는데 "2주 후 팀원들이 데이터 분석을 통해 호텔의 상황을 읽어내는 것을 보고 너무 놀랐다"면서 한 말이었다.

 


페이팔의 CEO였던 피터 틸이 써서 국내에서 꽤 주목을 받았던 「제로투원 Zero to One」이라는 책에서 빅데이터에 대한 꽤 흥미로운 통찰을 하고 있어서 소개한다.

 

"어떻게 하면 컴퓨터로부터 도움을 받을 수 있을까?"

"인간과 컴퓨터가 각자 성취할 수 있는 것보다 함께했을 때 극적으로 더 훌륭한 결과를 달성할 수 있다면, 이 핵심 원칙을 이용해 만들 수 있는 가치 있는 기업은 어떤 게 있을까?

(중략)

컴퓨터가 인간을 대체해야 한다는 편견을 전형적으로 보여주는 또 다른 유행어는 빅데이터다. 오늘날 기업들이 끝없이 데이터를 갈구하는 것은, 데이터가 더 많으면 항상 더 많은 가치를 창출할 수 있을 거라고 잘못 믿고 있기 때문이다.

하지만 빅데이터는 보통 아무 짝에도 쓸모없는 데이터다. 컴퓨터는 사람이 찾아내지 못하는 패턴을 찾아낼 수 있지만, 서로 다른 출처로부터 패턴을 비교하거나 복잡한 행동을 해석할지는 모른다. 오직 인간인 애널리스트들만이 쓸모 있는 통찰 결과를 찾아낼 수 있다.

우리가 빅데이터에 사로잡혀 있는 것은 기술을 신기한 것으로 생각하기 때문이다. 우리는 컴퓨터 혼자서 해낸, 별것 아닌 일들에는 감동하면서도 인간이 컴퓨터의 똑똑하지 못한 부분을 채워주며 이뤄낸 커다란 업적들은 무시한다. 왓슨이나 딥블루, 계속 발전하는 기계학습 알고리즘 같은 것들은 멋지다. 하지만 미래에 가장 가치 있는 기업들은 컴퓨터 (스스로) 혼자서 무엇을 해결할 수 있을지 묻지는 않을 것이다. 오히려 그들은 이렇게 물을 것이다. "어떻게 하면 인간이 어려운 문제를 해결할 수 있도록 컴퓨터가 도울 수 있을까?"

(중략)

먼 미래에 대한 불명확한 두려움 때문에 지금 명확한 계획을 세우지 못해서는 안 된다. 기술 반대주의자들은 컴퓨터가 언제가 인간을 대체할지도 모르기 때문에 컴퓨터를 만들면 안 된다고 주장한다. 반면에 열광적인 미래 전문가들은 우리가 컴퓨터를 만들어야 한다고 주장한다.

이 두 입장은 서로 배타적이지만, 이것들이 가능성의 전부는 아니다. 두 입장의 중간쯤에는 분별력을 가진 인간이 수십 년 후에 훨씬 나은 세상을 만들 가능성도 아직 남아 있다. 컴퓨터를 활용할 새로운 방법들은 찾아낸다면, 컴퓨터는 단순히 인간이 이미 하고 있는 일만 더 잘할 수 있는 것이 아니라. 우리가 이전에는 상상조차 할 수 없었던 일을 할 수 있게 도와줄 것이다."


인터페이스

피터 틸은 엔지니어가 아닌 것으로 아는데, 충분히 공감할 만한 논리였다. 사람의 부족한 부분을 메워주는 측면에서 컴퓨터의 가능성을 보아야 한다는 의견이었다.

이 책을 보면서 적어도 향후의 이슈는 인간과 컴퓨터 사이의 '인터페이스'가 아닐까 한다. 데이터 분석 영역에서는 컴퓨터와 사람의 인터페이스는 아직 초보 단계로 볼 수 있다. 데이터를 분석해 보고 싶어도 데이터 취합, 전처리, 분석 방법을 모르기에 데이터 엔지니어의 도움을 받는 것을 보면 말이다.

누구나 데이터를 분석하거나 컴퓨터에서 자신의 생각을 프로그래밍하여 더 좋은 결정을 내리고 자신의 생각을 확장할 수 있는 것이 데이터 분석 시대, 이것이 바로 빅데이터가 추구하는 것이 아닐까? 그 측면에서 요즘 유행하는 소프트웨어 교육의 분명한 목적 하나도 발견할 수 있지 않을까 한다.

Posted by 글키우는 농부
:

문제는 알고리즘이다

칼럼 2015. 6. 29. 14:58 |

 

수만 명의 회원이 가입한 생활코딩이라는 페이스북 그룹이 있다. 나도 최근에 회원으로 가입했는데, 여러 가지 포스팅 중에서 간혹 알고리즘에 대한 질문이 올라오는 것을 보게 된다. "프로그래밍을 하려면 알고리즘을 꼭 알아야 하나요?" "개발자에게 알고리즘은 얼마나 중요한가요?" 이와 같은 내용의 질문이다.

알고리즘이라고 하면 병합정렬, 그래프검색, 동적 프로그래밍 등과 같이 구체적인 '알고리즘'을 떠올리는 경우가 일반적이다. 아마 질문을 올린 사람도 그런 알고리즘을 염두가 두었을 것이다. 그렇기 때문에 위의 질문을 "PHP로 웹사이트를 개발하고 있는데 반드시 병합정렬을 알아야 하나요?"처럼 좁은 의미로 해석하면 대답하기가 쉽다. 웹사이트를 개발하기 위해서 꼭 병합정렬을 알아야 할 필요는 없기 때문이다.

그렇지만 우리가 이야기하는 알고리즘이라는 것이 그렇게 특정한 '알고리즘'을 모아놓은 것을 의미할까. 이 부분이 핵심이다. 제대로 된 답을 구하려면 우선 질문을 제대로 구성하는 것이 중요하다. 메리엄-웹스터 사전에 나와 있는 알고리즘의 정의를 살펴보자.

"a set of steps that are followed in order to solve a mathematical problem or to complete a computer process"

수학적인 문제를 해결하거나 컴퓨터 프로세스를 완결하기 위해서 차례로 뒤따르는 단계의 집합. 이게 알고리즘이다. 여기에서 "단계의 집합"은 "규칙의 집합"이라고 바꿔 불러도 좋을 것이다. 이러한 정의에 따르면 알고리즘은 어떤 문제를 해결하기 위해서 필요한 규칙을 이해하고 그러한 규칙을 단계별로 적용해서 문제를 해결하는 것을 의미한다.

다시 질문으로 되돌아가보자. "프로그래밍을 하려면 규칙을 이해하고 그런 규칙을 단계별로 적용하는 능력이 반드시 필요한가요?" 혹은 "개발자에게 규칙을 이해하고 그런 규칙을 적용해서 문제를 해결하는 능력은 얼마나 중요한가요?" 질문을 이렇게 바꾸면 질문 자체가 성립하지 않는다는 사실을 알게 된다. 왜냐하면 "규칙을 이해하고 그런 규칙을 적용해서 문제를 해결하는 것"이 바로 프로그래밍이기 때문이다.

올초 지디넷코리아에 실렸던'컴공 전공자가 왜 SW 개발을 못하나'라는 기사가 개발자 사이에서 잠시 회자되었다. 컴퓨터 공학을 전공한 졸업생들이 회사에 취업했을 때 회사가 원하는 수준의 코딩 실력을 갖추지 못하는 현실을 지적한 내용이었다. 컴공을 전공한 학생이 대학을 졸업하서 코딩을 하지 못하면 확실히 문제다. 하지만 '코딩'이 특정 회사가 요구하는 특정 플랫폼, 특정 언어, 특정 API에 대한 내용이면 이야기가 달라진다.

대학은 학원이 아니기 때문이다. 대학에서 학생들이 배워야 하는 것은 특정한 API를 다루는 '코딩' 능력이 아니라 주어진 문제를 해결하기 위해서 규칙을 이해하고 규칙을 단계별로 적용해서 문제를 해결하는 능력이다. 즉, 코딩이 아니라 알고리즘이다. 코딩은 알고리즘이라는 능력이 겉으로 드러나는 여러 가지 방식의 하나일 뿐이다. 코딩은 외공이고 알고리즘은 내공이다.

그렇기 때문에 대학은 학생들에게 코딩 능력이 아니라, 문제를 해결할 수 있는 능력, 즉 알고리즘 능력을 길러주는 방법을 고민해야 한다. 살에 새긴 문신 같은 코딩 능력은 MOOC, 학원, 스터디 그룹 등을 통해서 필요할 때 얼마든지 배울 수 있다. 지울 수도 있다. 하지만 뼈에 녹아들어 나와 한 몸이 되는 알고리즘 능력은 그 자체로 프로그래머의 정체성을 규정한다. 그렇기 때문에 배워야 하는 시기가 따로 있다. 시기를 놓치면 익히기 어렵다.

요즘처럼 기술변화의 속도가 빠른 시대에는 특정 기술, 플랫폼, 언어, API에 종속되는 코딩 기술의 가치가 전보다 크지 않다. 오히려 낡은 기술을 버리고 새로운 기술을 재빨리 익히는 능력이 중요하다. 전투기의 생명이 빠르게 방향을 전환하는 기동성(maneuverability)에 달려 있는 것처럼, 프로그래머의 생명도 방향전환 능력에 달려있다. 알고리즘은 그러한 방향전환을 가능하게 만들어주는 일종의 "메타-능력"이다.

그래서 미국의 IT 회사들은 (특별한 경우를 제외하면) 특정 기술이나 API에 정통한 사람을 찾지 않는다. 기본적인 능력(문제를 해결할 수 있는 능력, 즉 알고리즘)을 갖춘 상태에서 새로운 기술을 빠르게 습득해서 활용할 수 있는 사람을 찾는다. 이런 면들을 생각해보면 실리콘밸리라는 미국드라마에서 해커 느낌이 풍기는 보안전문가와 자바전문가가 아니라 파일을 압축하는 '알고리즘'을 개발한 사람을 주인공으로 배치한 것은 우연이 아니었을 것이다.

프로그래밍이라는 기술은 이렇게 알고리즘이라는 세포로 이루어져 있다. 그리고 알고리즘이라는 세포의 내부에 존재하는 DNA는 논리다. 만사에 논리적인 사람은 좋은 코드를 작성하지만, 논리적 사고가 결핍되어 있는 사람은 아무리 열심히 '코딩'을 배워도 좋은 코드를 작성하지 못한다. 다시 질문으로 되돌아가보자.

"프로그래밍을 하려면 알고리즘을 꼭 알아야 하나요?" "개발자에게 알고리즘은 얼마나 중요한가요?"

이제 질문의 의미를 정확하게 이해할 수 있게 되었으므로 대답을 할 수 있다. 그렇다. 프로그래밍을 하려면 알고리즘이라는 메타 능력이 반드시 있어야 한다. 알고리즘이 얼마나 중요한가하면 프로그래밍 그 자체라고 말할 수 있을 정도로 중요하다. 문제는 알고리즘이다. (출처: www.zdnet.co.kr, 임백준 칼럼니스트baekjun.lim@gmail.com)

'칼럼' 카테고리의 다른 글

데이터 사이언티스트의 꿈을 가진 후배들에게  (0) 2015.06.20
영화와 음악  (0) 2015.05.26
네팔에서의 추억  (0) 2015.05.20
창의성이란 무엇인가?  (0) 2015.05.05
Posted by 글키우는 농부
: