[블로터10th]언론사가 알아야 할 알고리즘① k-means 클러스터링

가 +
가 -

“클러스터링은 네이버 뉴스가 지속적으로 진행해온 ‘검색품질 강화’의 일환이다. 각각의 이슈가 묶음 형식으로 보여지게 되면 다양한 이슈를 한 번에 확인할 수 있게 되고, 그 결과 묻혀 있었던 ‘양질의 기사’가 검색 결과에서 좀 더 쉽게 노출될 수 있는 등 이용자 만족도가 높아질 것으로 기대한다.”

clustring

클러스터링 알고리즘이 적용된 네이버의 뉴스 검색 결과.

2014년 12월 네이버가 뉴스 검색 결과에 클러스터링 방식을 적용했다며 내놓은 설명 문구다. 이 때를 기점으로 국내 언론사들은 클러스터링을 친숙한 단어로 간주하게 됐다. 수학과 코드, 논리가 뒤범벅된 알고리즘을 언론사들이 보통명사처럼 다루게 된 데는 그것이 언론사 수익에 차지하는 영향력이 상당해졌기 때문이다.

네이버가 뉴스 검색에 적용한 클러스터링은 군집화 알고리즘을 지칭한다. 여기서 유의해야 할 사항이 있다. 우리말로 군집화로 번역되는 ‘Clustering’과 분류로 표기되는 ‘Classification’은 기계학습 측면에선 다른 개념이다. 미리 거론하자면 분류는 ‘지도학습’, 군집화는 ‘비지도학습’ 알고리즘으로 다루는 데이터의 속성에서 차이를 보인다.

클러스터링 알고리즘도 다양한 종류가 있다. 크게는 계층형 클러스터링과 비계층형 클러스터링을 나뉘는데, k-means는 비계층형 클러스터링 기법에 해당한다. 굳이 이 글에서 k-means를 다루는 이유는 가장 보편적으로 활용되는 클러스터링 알고리즘인데다 구현이 쉽다는 장점이 있어서다.

비계층형(분할) 클러스터링 방식으로는 병합적 군집 모델, 분할적 군집 모델 등이 있는데 자세한 설명은 여기서 생략한다. 참고로 계층형 군집 모델은 수행속도가 느리고 오류 데이터에 민감한 반응을 보인다는 한계가 있다(Song, H. et al. 2015).

k-means 알고리즘의 역사와 의미

PDP-8A_400_front_panel

1960년대 인기를 구가했던 PDP-8 컴퓨터.(사진 : 위키피디아, PDP-11-34 front panel.jpg, CC BY-SA 3.0)

k-means 알고리즘이라는 단어는 약 50년 전쯤인 1967년에 처음 등장했다. 미국 캘리포니아대 교수였던 고 제임스 맥퀸 교수가 포드 재단 등의 연구비를 지원받아 발표한 논문 ‘some method for classification and analysis of multivariate observations’에서 처음으로 사용한 것으로 알려졌다. 이 논문에서 맥퀸 교수는 “N차원의 모집단을 표본의 속성에 따라 k개 세트로 나누는 과정”이라고 k-means를 정의했다.

k-means 알고리즘은 디지털 컴퓨터의 개발과 확산이라는 토대 위에서 탄생했다. 1960년대는 IBM 중심의 거대한 메인프레임 컴퓨터가 주류를 이루는 중에 1965년 등장한 ‘PDP-8’이라는 미니컴퓨터가 인기를 얻어가던 시기였다. PDP-8은 냉장고 수준으로 크기가 크게 줄어들었고, 가격도 웬만한 IBM 컴퓨터 가격의 10분의 1(1만8천달러)에 불과했다(홍성욱, 2001 ; P.25).

PDP-8이 대학 등을 중심으로 보급되면서 다루게 되는 데이터의 양도 늘어났다. 자연스럽게 다량의 데이터를 효율적으로 분류하기 위한 방법에 대한 탐구가 이어질 수밖에 없었다. 맥퀸 교수는 “k-means는 쉽게 프로그래밍 될 수 있고, 경제적으로 연산할 수 있어서 디지털 컴퓨터에서 대량의 표본을 처리하는데 있어 실현 가능성이 있다”고 했다.

지도학습과 비지도학습의 구분

지도학습과 비지도학습의 차이.(이미지 출처 : 데이터카페 블로그)

지도학습과 비지도학습의 차이.(출처 : 데이터카페 블로그)

앞서 짧게 언급했다시피 k-means는 비지도학습 알고리즘이다. 데이터에 대한 사전 학습을 시키지 않아도 자동으로 군집화한다는 의미다. 우리가 인공지능이라고 얘기하는 딥러닝도 비지도학습 알고리즘의 한 부류다.

비지도학습 알고리즘은 지도학습과 달리 자세한 데이터 속성을 알고리즘에 가르쳐주지 않는다. 이를테면 손글씨 분류 알고리즘에서 필기체로 휘갈겨 쓴 ‘1’을 숫자 ‘1’이라고 지정해주지 않는다. 해당 숫자를 1로 보든 2로 보든 알아서 1과 유사하게 생긴 숫자를 그룹화하라고 맡겨두는 방식이 비지도학습이다. 비지도학습 알고리즘은 데이터가 입력되는 대로 스스로 추론해 분류해야 한다.

이 개념을 이해하기 위해 트레이닝 (데이터) 세트와 테스트 (데이터) 세트를 알아둘 필요가 있다. 머신러닝은 트레이닝 데이터 세트를 통해 학습한 결과를 바탕으로 테스트 세트로 예측 결과를 검증하는 과정이다. 일반적으로 지도학습에서는 트레이닝 세트의 데이터가 x값(특징 변수)과 y값(목적 변수)을 함께 가지고 있었다.

하지만 비지도학습에서 사용되는 트레이닝 세트에는 y값, 즉 목적 변수가 없다. y값을 알려주지 않으니 x, y의 함수관계를 추정하기도 곤란하다. 예를 들어 수만 건 정치 기사를 국회, 청와대, 총리실로 자동으로 그룹화한다고 가정해보자. 각각 기사에는 ‘A 기사는 카테고리가 국회다‘라고 지칭하는 어떤 메타데이터도 없다. 오로지 기사에 등장한 단어만으로 국회 기사인지 청와대 기사인지, 총리실 기사인지 나눠야 한다. 이럴 때 비지도학습 알고리즘이 활용된다.

계산 절차와 과정

Kmeans_animation_withoutWatermark

k-means 클러스터링 알고리즘이 클러스터를 나눠가는 과정.(출처 : 위키피디아 Incheol, CC BY-SA 4.0)

k-means 알고리즘이 클러스터를 만들어가는 과정은 비교적 간단하다. 대신 한 가지 전제가 깔린다. 몇 개의 클러스터로 군집화할지 미리 정해줘야 한다. 바로 k값을 미리 설정해둬야 한다.예를 들어 k-means 알고리즘으로 정치 뉴스 검색 결과를 군집화한다고 할 때, 몇 개로 나눌 것인지 누군가가 미리 지정해둬야 한다는 뜻이다. 당연히 기획자나 설계자의 특정 의도가 개입되기 마련이다.

k값이 설정되면 다음 단계는 트레이닝 세트를 입력하는 것이다. 그리고 k만큼 무작위로 대표점을 지정한다. 정치 기사를 3그룹으로 군집화한다고 하면 k=3이므로 임의 대표점도 3군데에 찍어둔다. 그 다음 작업은 무작위로 찍어둔 대표점을 그룹의 한 가운데 점으로 위치를 옮기기 위해 반복적으로 학습하는 것이다. 이때 데이터 세트와 대표점의 거리를 계산하는 방식으로 대표점을 다시 찾아가게 된다.

여기서 k-means는 몇 가지 한계를 노출하게 된다. 나카이 에츠지(2016 ; p.170)은 “더욱 복잡한 트레이닝 세트를 사용한 경우나 더욱 많은 클러스터로 분류할 경우에는 처음에 대표점을 어떻게 잡았는지에 따라 결과가 달라질 수도 있다”고 지적했다. 뿐만 아니라 그는 “처음 대표점을 바꿔가며 계산을 여러 번 반복하여 더욱 적절하다고 판단되는 클러스터를 발견하는 방법 등 여러 가지 방법을 생각해봐야 한다”고 조언했다. k값을 몇 개로 설정할지, 설정한 뒤에 무작위 대표점을 어떻게 잡을지 설계자나 기획자가 다양하게 확인해봐야 한다는 것이다.

어떤 용도로 주로 쓰일까

perceptron

퍼셉트론으로 데이터를 분류한결과.

애초 맥퀸 교수는 논문을 발표할 당시 k-means의 용도에 대해 ▲유사집단 그루핑(클러스터링) ▲관련 집단 분류 ▲일반분포 근사 ▲다변량 내 독립성을 위한 차원 테스트 ▲거리 기반 분류 트리 등 5가지를 제시한 바 있다. 현재는 그 범위를 훨씬 넘어서고 있다.

k-means 알고리즘의 용도는 뉴스나 문서 검색 결과의 주제별 군집화에만 머무르지 않는다. 네트워크 유해 트래픽 탐지, 영화나 TV 장면의 분류, SNS 유사 사용자 군집화, 공시지가 유사가격 권역 설정 등으로도 분야를 망라해서 폭넓게 활용되고 있다.

네이버나 카카오가 k-means를 뉴스 검색 클러스터링 알고리즘으로 채택해 활용하고 있는지는 확인하기 어렵다. 단지, k-means를 어떤 방식으로든 검토하거나 테스트했을 것이라는 추정은 가능하다. 클러스터링 알고리즘 가운데 가장 기본이 되는 방식이기 때문이다.

뉴스를 분류할 때 k-means는 다른 알고리즘과 결합하는 경우가 빈번하다. 예를 들면, k-means와 TF-IDF 알고리즘을 결합하면 군집화된 뉴스 안에서 중요 단어를 추출할 수 있고 그것의 빈도에 따라 뉴스의 랭킹을 매기는 작업이 가능해진다.

언론사들에게 던지는 메시지

bloter_next_journalism_school_750

k-means 알고리즘의 변형이든 응용이든 혹은 다른 방식의 조합이든, 이 알고리즘의 적용에는 설계자의 다양한 의도와 철학이 개입된다는 사실을 확인할 수 있다. 이미 k-means만 하더라도 여러 기획된 설정값이 포함돼 있다.

게다가 초기 무작위 대표점을 어떻게 선정하느냐에 따라 그 결과값이 달라질 수 있다. 이 때문에 초기 대표점 선정을 둘러싼 다양한 견해와 방식이 제기되는 상황이다(이신원, 2012). 만약 TF-IDF와 같은 중요 키워드 추출 알고리즘까지 더 결합한다면 설정값과 가설의 조합은 더 많아질 수밖에 없다.

언론사들은 뉴스의 유통에 깊숙이 개입하고 있는 클러스터링 알고리즘에 대해 비판적이고 성찰적으로 접근할 필요가 있다. 알고리즘은 완벽한 상품도 완결된 작품도 아니다. 특정 집단에 의해 설계되고 재평가 받으면서 끊임없이 수정된다. 이 과정에서 기획자의 가치가 깊숙하게 개입되기 마련이다.

닉 디아코풀로스 메릴랜드대 교수가 알고리즘 책임성과 투명성을 강조하는 이유가 여기에 있다. 그는 “알고리즘 책임성은 알고리즘을 인간의 창조물로 간주해야 하며 설계에 영향을 미쳤을지도 모를 어떤 집단이나 기관의 목적을 고려해야만 한다”고 말했다(Diakopoulos, N. 2015 ; p.402). 그리고 ‘투명성’을 대안으로 제시했다. 알고리즘 설계에 영향을 미칠 수 있는 요인과 원칙을 투명하게 공개해야 한다는 목소리다. 현실적으로 알고리즘 투명성 확보가 어렵다면 저널리스트들이 직접 알고리즘 분석(역공정)을 통해 설계 의도를 파악해낼 필요가 있다.

참고 자료

  • 김의중. (2016). 인공지능, 머신러닝, 딥러닝 입문. 위키북스.
  • 나카이 에츠지. (2016) 머신러닝 이론 입문. 위키북스.
  • 이신원. (2012). K-Means 클러스터링에서 초기 중심 선정 방법 비교. 인터넷정보학회논문지, 13(6), 1-8.
  • 홍성욱.(2001). 싸이버스페이스 오디쎄이 2001. 창작과비평사.
  • Diakopoulos, N. (2015). Algorithmic accountability: Journalistic investigation of computational power structures. Digital Journalism, 3(3), 398-415.
  • MacQueen, J. (1967). Some methods for classification and analysis of multivariate observations. In Proceedings of the fifth Berkeley symposium on mathematical statistics and probability (Vol. 1, No. 14, pp. 281-297).
  • Song, H. M., Lee, S. J., & Kwak, H. Y. (2015). Clustering method for similar user with Miexed Data in SNS. Journal of the Korea Society of Computer and Information, 20(11), 25-30.

다음 회에선 기사 추천 등에 활용되는 협업 필터링 알고리즘을 다룰 예정입니다.

네티즌의견(총 2개)