Algorithm Almighty?
우리는 알고리즘의 시대를 살고 있다. '알고리즘'이란 단어가 흔해졌다. 예전에는 평생 들어보지도 못했을 사람들의 입에서 알고리즘이란 단어가 심심찮게 나온다. 제대로 이해하고 말했다고는 보지 않지만 그만큼 알고리즘이란 단어가 흔해졌고 일종의 알 수 없는 전지전능한 무엇을 총칭하는 용어가 됐다. 이글에서 알고리즘의 사전적 의미까지 뒤질 필요는 없을 거다. 그냥 일반인들이 느끼는 알고리즘의 느낌적 느낌에서 시작한 글이다.
어느 순간부터 '알고리즘'은 그저 마법의 단어가 됐다. '알고리즘이 알아서 해줘요'라고 하면 모든 상황이 종결된다. 알고리즘의 간택으로 벼락 유명인이 된 콘텐츠 제작자들의 간증을 유튜브에서 심심찮게 볼 수 있다. 그 단맛을 잊지 못해서 다시 간택을 받으려고 알고리즘 친화적인 콘텐츠를 제작해서 알고리즘의 시간에 맞춰서 콘텐츠를 올리기 시작한다. 글이든 동영상이든 한 텀만 쉬어도 알고리즘의 채찍질을 받는다. 그렇게 우린 알고리즘의 노예를 자처한다. 한편 일반 유저들도 알고리즘이 추천했다면 의심 없이 그냥 받아들이는 경향도 있다.
알고리즘을 마법의 단어로 사용하는 또 다른 부류가 있다. 바로 그 알고리즘을 활용하는 회사들이다. 구글 (유튜브), 페이스북뿐만 아니라 국내의 카카오나 네이버, 그 외의 수많은 테크 기업들이 알고리즘 (또는 인공지능)을 입에 달고 산다. 특히 그들이 불리한 입장, 즉 공정성을 공격받을 때면 '알고리즘이 했어요. 그러니 우린 잘못 없어요.'라는 틀에 박힌 변명을 내놓는다. 'Q. 검색 결과가 이상한데요? A. 알고리즘이 수많은 데이터를 분석해서 알아서 보여주는 거예요.' 'Q. 이번 달엔 호출수가 급감했어요. A. 알고리즘이 여러 요인을 복합적으로 고려해서 최적의 기사들을 호출했어요.' 'Q. 왜 자꾸 이상한 광고들이 노출되는 거죠? A. 알고리즘이 모든 이력을 분석해서 여러분이 좋아할 광고를 찾아서 보여주는 거예요.' 좋든 나쁘든 알고리즘이 알아서 했으니 나는 모르겠다는 거다. 이런 레토릭은 진짜 혐오스럽고 가증스럽지 않은가?
알고리즘은 전능한가? 좀 더 구체적으로 알고리즘은 정말 무결하고 전혀 편향이 없는가? 당연히 NO다. 그런데 위의 레토릭은 마치 알고리즘이 전능한 신인양 말한다. 많은 신 (god)들 중에서 기독교의 여호와만을 God이라 적듯이 알고리즘도 algorihm이 아니라 Algorithm이라 적어야할 듯하다. 알고리즘 뒤에 숨은 비겁한 인간들, 그리고 대중의 무지... 알고리즘이 그렇게 예측/계산한 것이 아니라, 인간이 그렇게 계산하도록 알고리즘을 설계, 학습한 거다. 간혹 예측불가 또는 해석 불가한 경우도 있지만, 지금 그렇게 나온다는 것은 그렇게 나오도록 만들었기 때문이다. 정도의 차이 또는 기술력의 차이는 있지만, 알고리즘이 전혀 사람과 무관하게 구축되진 않는다.
어떤 알고리즘도 완전할 수 없다. 컴퓨터 성능이 좋아지고 더 많은 데이터가 모이고 또 더 나은/복잡한 모델이 발견/발명되면서 알고리즘의 성능도 점점 더 좋아지고 있다. 어떤 분야에선 인간을 뛰어넘었다. 그래도 완전무결한 존재가 된 건 아니다. 소수의 알고리즘은 자연/물리 법칙을 설명하는 수식에 의해 만들어졌지만, 대부분의 알고리즘은 결국 인간 경험에 기반해서 설계되고 변형된 거다. 설계자의 의도가 반영되지 않은 알고리즘은 없다. 뿐만 아니라, 누적된 인간들의 휴리스틱의 결과물이 오늘날의 대부분의 알고리즘들이다. 그냥 특정 영역이나 지표에서 성능이 좋을 뿐, 그게 자연 순리대로 생각하는 힘을 가졌다는 것이 아니다. 모든 측면에서 알고리즘을 평가할 수 없고, 그냥 특정 평가 지표만을 확인할 뿐이다. 특히 편향성 같은 걸 제대로 검증되지도 않고 평가할 수도 없다. 사람이 설계한 loss (또는 cost) 함수를 최소화하도록 알고리즘이 학습됐을 뿐, 그 이상도 그 이하도 아니다.
그리고 알고리즘이 작동하기 위해선 많은 먹잇감, 즉 학습 데이터가 필요하다. '가비지 인 가비지 아웃'은 컴퓨터학의 기본이다. 알고리즘도 가비지 데이터로 학습하면 결과 알고리즘도 가비지일 뿐이다. 편향된 데이터를 학습하면 알고리즘은 편향될 수밖에 없다. 즉, 우리가 접하는 대부분의 알고리즘들은 그저 학습자의 의도에 맞게 선별된 편향 데이터로 구축된 모델일 뿐이다. 그러면 인간이 검수하지 않고, 시스템에서 생성되는 모든 데이터를 학습에 사용하면 되지 않느냐? 고 반문할 수 있다. 의도 중립적일 수도 있지만, 시스템을 거친 데이터는 결국 서빙 바이어스에 이미 노출된 데이터다. 만약 1,000개의 카테고리에 매핑되는 100만 개의 콘텐츠가 있다고 치자. 특정 개인이 이 100만 개의 모든 콘텐츠를 볼 수 없다. 처음에 수 십 개나 수 백 개만을 볼 수 있다. 게 중에서 마음에 드는 몇 개만을 클릭했다면 앞으로 클릭했던 그 콘텐츠와 유사한 또는 그 콘텐츠가 속한 카테고리의 콘텐츠들만 추천될 확률이 높다. 이를 Filter Bubble이라고 한다. 즉 앞으로 시스템은 이전 히스토리를 기반으로 선택된 수 만 개의 콘텐츠 내에서 내게 선택권이 주어진다. 이미 서빙된/제공된 콘텐츠 내에서의 행동 데이터만 수집되는, 즉 서빙에 따른 바이어스가 발생한 거다.
이를 극복하기 위해서 다양한 Exploration 전략을 취한다. 머신러닝의 장점은 학습된 대로 잘 작동한다는 건데, 역으로 학습한 대로만 작동한다는 것이 머신러닝의 단점이다. 그래서 이전에 학습하지 않았던 영역으로 stochastic하게 가보고 그곳에서 새로운 정보를 얻고 preference를 갱신한다. 가장 간단하면서 대표적인 exploration 전략은 임의성 (random)을 취하는 거다. 기존 이력과 무관한 나머지 수십만의 콘텐츠들 중에서 몇 개를 임의로 선택해서 떡밥을 툭툭 뿌려놓고 우리가 그걸 무는 지 보는 거다. 이런 랜덤 전략은 서빙 바이어스를 해결하는 좋은 방법이지만, 결국 랜덤을 보여줬다는 것 자체가 알고리즘의 한계를 여실히 보여주는 증거다. 완전무결하지는 않지만 인간의 의도를 배제한다는 점에서 참을만하다. 그런데 이 랜덤의 비율을 정하는 것도 결국 인간의 선택인데...
어떤 모델을 사용할 것인가? 어떤 아키텍처를 따를 것인가? 어떤 피쳐를 사용할 것인가? 어떤 데이터로 학습할 것인가? 등등의 모든 것이 현재로선 인간의 선택에 따른다. 그런 선택의 결과가 우리가 알고리즘이라 부르는 그것이다. 편향적이 않을 수 없다는 얘기다. 위의 예시 레토릭에 등장하는 모든 상황도 인간의 선택에 의해서, 보통은 그들의 매출 극대화라는 목적에 따른 편향된 알고리즘의 결과다. 그렇게 알고리즘을 편향되게 만들어놓고, 그 결과는 편향되지 않다고 말하는 것은 무책임을 넘어 범죄다. 그리고 저런 C/S를 처리하는 사람들은 실제 알고리즘이 어떻게 작동하는지도 모르고 -- 간혹 설명을 조금 듣기도 하지만 -- 앵무새처럼 정해진 답변만 반복해야 하니 그것도 참 슬픈 현실이다.
인간의 개입을 최소화하는 여러 자동화 방법론들이 연구되는 것은 다행이다. 그렇더라도 완전무결이 되는 건 아니다. 진짜 알고리즘이 지능을 갖기 전까진...
앞으로 '알고리즘이 알아서 했어요'라는 말을 들으면 그런 결과가 나오는 모델과 아키텍처를 사용했고, 그런 결과가 나오도록 데이터 (피쳐와 샘플)을 사용했고, 그런 결과가 나오도록 성능을 최적화했기 때문에 그런 결과가 나왔다고 이해하면 된다. 또는 진짜 '왜 그렇게 됐는지 전혀 모르겠어요'일 수도 있다. 전자는 무책임이고 후자는 무지다. 그런데 의외로 무지의 비율이 꽤 높다. 그 알고리즘을 직접 설계하고 학습시킨 개발자들마저도... (그래서 XAI 분야를 주목하고 있다.) 무지도 결국 무책임이다. 자연의 법칙에 따른 알고리즘이 아닌 이상 순전히 가치중립적인 알고리즘은 없다. 그저 사람보다 더 많은 데이터를 더 빠르게 검토할 수 있는 것뿐이지 현재로선 사람으로부터 완전히 독립적일 수는 없다. 특히 탐욕적인 인간으로부터는...