군집화, 클러스터링

당신의 세상을 개인화 하는 비밀

by 이연곤

혹시 "꼭 내 마음을 꿰뚫어 보는 것 같다", "아니, 내 취향을 어떻게 이렇게 잘 알지?"


이런 생각 해 보신 적 없으세요? 마치 내 머릿속을 그냥 환히 들여다본 것처럼 나한테 딱 맞는 무언가 추천받을 때 말이에요.

살짝 소름 돋았던 경험 다들 한 번쯤은 있으실 거예요. 그죠?



사실 그 놀라운 경험 뒤에는 보이지 않는 아주 똑똑한 기술이 숨어 있습니다. 그게 바로 지금부터 알아볼

'클러스터링'이라는 녀석이죠.




정답지 없이 그룹 짓기


클러스터링(Clustering), 이게 뭐냐면 '비슷한 것들끼리 하나의 덩어리, 그룹으로 묶어주는 머신러닝 기술'이에요. 엄청나게 많은 데이터 속에서 기계가 스스로 숨겨진 규칙이나 패턴을 발견해내는 거죠.


그리고 클러스터링은 머신러닝에서 비지도학습의 대표주자라고 할 수 있습니다.



지도학습이라는 건 "자, 이건 고양이 사진이야" 이렇게 정답지를 콕 집어 주면서 가르치는 방식이고,

반면에 비지도학습은 그런 정답지가 아예 없어요. 그냥 데이터만 냅다 던져 주고 "알아서 배워 봐" 하는 방식인 거죠. 기계가 스스로 기준을 찾아내야만 해요.


기계한테 동물 사진을 수만 장 그냥 주면, 기계는 사자가 뭔지, 호랑이가 뭔지 이름은 전혀 몰라도 "음, 얘네는 갈기가 있고 무리 지어 다니는 애들", 또 "얘네는 줄무늬가 있고 혼자 있는 애들" 이런 식으로 비슷한 특징을 가진 사진을 착착 묶어내는 겁니다.


정답 없이 패턴을 찾아내는 것. 이게 바로 클러스터링의 진짜 매력이죠.




유사성, 데이터 간의 거리


아니, 근데 기계가 도대체 비슷하다는 걸 어떻게 판단하는 걸까요?


그 비밀은 생각보다 아주 간단한 원리에 있습니다. 핵심은 바로 거리입니다.


클러스터링은 데이터들 사이가 얼마나 가까운지 재서 비슷함을 판단하는 거예요. 정말 간단하죠.

서로 가까이 있으면 "아, 너네 비슷한 애들이구나" 하고

멀리 떨어져 있으면 "음, 너네는 다른 그룹이네" 이렇게 보는 거죠.



다음 세 단계만 기억하시면 돼요.

첫째, 모든 데이터를 어떤 가상의 공간에 하나의 점으로 콕 찍습니다. 예를 들어 고객 데이터라면 나이나 구매 금액 같은 것이 점의 좌표가 됩니다.

클러스터링1.PNG

둘째, 그다음에는 수학 공식을 써서 이 점들 사이의 거리를 싹 다 계산해요.

클러스터링2.PNG

마지막으로, 거리가 가까운 점들을 하나의 그룹, 그러니까 클러스터로 묶어 주기만 하면 끝.

클러스터링3.jpg



어때요? 생각보다 간단하죠?



거리를 재는 방법도 사실 여러 가지가 있는데 가장 흔하게 쓰는 것은 유클리드 거리예요. 이름이 좀 어려워 보이지만 전혀 그럴 필요 없습니다. 그냥 우리가 자로 재는 것처럼 두 점 사이에 가장 짧은 직선 거리를 말하는 겁니다. 제일 직관적이잖아요. 속도도 빠르고요.




추상적 데이터의 점


여기서 다들 이런 궁금증이 생기실 거예요.

"아니, 나이나 구매 금액 같은 숫자는 점으로 찍기 쉬운데 사람의 취향이나 SNS에 쓴 글 같은 건 어떻게 점으로 만들지?"

맞아요. 아주 좋은 질문입니다. 바로 이 마법의 핵심에는 벡터화라는 과정이 있습니다.



기계는 글자나 그림을 우리처럼 이해하지 못합니다. 그래서 모든 데이터를 숫자로 된 좌표 즉, 벡터(Vector)로 바꿔주는 작업이 필요합니다.

예를 들어 "나는 커피를 좋아해" 라는 문장이 있으면 "커피"라는 단어의 1점, "주스"에는 0점, 이런 식으로 숫자 리스트를 만드는 거죠. 이렇게만 하면 아무리 추상적인 취향이라도 넓은 공간 위에 하나의 점으로 딱 표현할 수 있게 되는 겁니다.



일상 속 클러스터링


이 똑똑한 기술이 실제로 우리 일상에서 어떻게 쓰이고 있는지 아주 구체적인 사례들을 한번 만나 볼까요?


기업들이 이 클러스터링 기술을 정말 사랑하는 이유, 바로 고객 세분화 때문입니다.

예전처럼 그냥 20대 여성, 30대 남성 이렇게 나누는 거랑은 차원이 달라요. 클러스터링을 이용하면, 훨씬 더 깊이 있는 분석이 가능하거든요.

고객들의 구매 데이터를 분석해서 숨겨진 그룹들을 찾아낼 수 있어요. 예를 들면 "가격에는 민감하지만 엄청 자주 사는 알뜰 쇼핑 그룹", 아니면 "신제품은 무조건 제일 먼저 사는 얼리 어댑터 그룹", 또 "할인할 때만 잠깐 나타나는 체리피커 그룹" 같은 것들이요.

이렇게 고객 그룹의 특징을 제대로 알게 되면 각 그룹에 딱 맞는 맞춤형 마케팅이 가능해지는 거죠.


그리고 이 기술의 힘을 우리가 진짜 매일매일 온몸으로 느끼는 곳이 있습니다. 바로 소셜 미디어죠.

우리가 쓰는 페이스북, 유튜브, 인스타그램 같은 플랫폼들은 우리의 모든 행동 데이터를 실시간으로 모으고 분석하고 있어요. 우리가 어떤 게시물에 "좋아요"를 누르는지,

어떤 영상을 스킵하지 않고 끝까지 보는지,

심지어 광고를 클릭하는지까지 전부 다요.

그리고 이 어마어마한 데이터를 바탕으로 우리를 비슷한 취향과 행동을 보이는 다른 사용자들과 하나의 클러스터로 묶어 버립니다.

그런 다음에 같은 그룹에 있는 다른 사람들이 좋아했던 콘텐츠를 "너도 이거 좋아할 걸" 하면서 추천해 주는 거예요. 이게 바로 우리가 매일 보는 개인화된 피드와 추천 알고리즘의 핵심 원리랍니다.






이렇게 보니까 클러스터링이 우리 세상을 참 편리하게 만들어 주는 강력한 기술인 건 분명하죠.

하지만 모든 기술이 그렇듯이 한계도 있고, 또 우리에게 질문을 던지기도 합니다.


클러스터링이 아무리 똑똑해도 결국 그 판단의 근거는 우리의 과거 데이터와 현재의 유사성이라는 거예요.


그렇다면

지금의 나와 비슷한 사람들이 좋아한다고 해서
과연 미래에 나도 그걸 좋아할까요?


사람의 취향이나 관심사는 계속해서 변화하고 또 발전하잖아요. 그런데 과거의 데이터에만 기반한 이 유사성이라는 잣대가 계속해서 변화하는 우리의 미래 모습을 정말로 예측할 수 있을까요?


여러분의 생각은 어떠신가요? :)







이전 10화회귀 분석