최적화의 결과가 항상 최적이라고 생각할 수는 없는 이유
퍼포먼스 마케팅을 하면서 가장 자주 접하게 되는 단어들 중 하나가 최적화라는 말입니다. (퍼포먼스 마케터가 최적화를 위해 필요한 스킬들 관련 글 참조) 최적화의 사전적 정의를 찾아보니 "시스템 공학 등에서, 어떤 목적에 대하여 가장 적절한 계획을 세워 설계하는 일. 또는, 그러한 선택을 하는 일"이라고 정의되어 있습니다. 즉 어떤 목표(일반적으로 측정할 수 있는 수치)를 두고 계속해서 적절한 선택을 반복하는 것이라고 생각할 수 있죠. 대표적으로 A/B 테스트를 통해 유저가 더 많이 클릭하는 광고 소재를 만들어가는 과정, 유저가 검색할 가능성이 높은 키워드 리스트를 만들어가는 과정을 예로 들 수 있습니다.
그런데 이런 일을 하다 보니 대학원에서 머신러닝을 공부하던 때의 생각이 떠올랐습니다. 최적화를 진행하는 과정에서 그 최적의 값을 찾아가는 방법에 대한 이야기입니다.
위 그림과 같은 상황에서 가장 낮은 지점을 찾으려면 어떻게 접근해야 할까요? 수학을 잘하는 사람은 곡선의 식을 미분해서 기울기가 0이 되는 좌표를 한 번에 찾으려고 할 수도 있지만 어떤 사람은 그림의 화살표처럼 그냥 조금씩 조금씩 오르막이 나오지 않는 지점까지만 공을 굴려가면서 가장 낮은 지점을 찾으려고 할 수도 있습니다. 어쨌든 조금씩 공을 굴리다 보면 나오는 오목한 지점이 하나이기 때문입니다.
그런데 아래 그림과 같은 상황이라면 어떨까요? 오목한 곳은 여러 개 있고 현재의 위치에서 출발해서 공을 굴려가게 되면 가장 첫 번째로 만나는 곳까지 밖에 도달할 수 없을 것입니다. 사실은 그 앞에 더 낮은 지점이 있는데도 불구하고 말입니다. 그렇다고 곡선의 식을 찾아서 미분하기에도 하나의 식을 정의하기에는 너무 복잡해 보입니다. 이렇게 조금씩 조금씩 공을 굴려가면서 도달 가능한 최저점은 local 최저점입니다. 그리고 우리가 찾아야 하는 global 최저점은 따로 있습니다.
사실 퍼포먼스 마케터가 하는 일도 공을 굴려가는 과정과 그 성격이 비슷합니다. 광고의 ROAS를 극대화하기 위해 캠페인과 에드셋의 세팅을 조금씩 바꿔나가고, 광고 소재를 조금씩 수정해 나가고, 프로덕트를 조금씩 개선하기 위한 의견을 냅니다. 하지만 최적화의 결과가 항상 최고의 퍼포먼스를 내는 지점이라고는 확신할 수 없습니다. local 최적 지점에 빠져서 헤어 나오지 못할 수 있으니까요.
머신러닝에서는 이런 최적화의 함정에 빠지지 않기 위해 이런 방법을 사용합니다. 출발을 여러 군데에서 해보는 겁니다. 그리고 그 여러 번의 시도 중에서 최적의 지점을 Global 최적 지점이라고 생각하는 것입니다.
그래서 최적화의 과정에서도 새로운 시도를 잊지 않는 것은 매우 중요하다는 생각이 듭니다. 기존의 것들을 최적화 해 가는 것도 중요하지만 자꾸 새로운 시도를 하지 않으면 진짜 최고의 퍼포먼스를 만드는 지점을 영원히 못 찾을 수도 있으니까요. 그래서 진정한 힘은 창의성에서 나오는 것이 아닌가 하는 생각도 듭니다.
이번 편을 마칩니다.