목록으로

Programming Notes

머신러닝이 윈도우, 맥, ChromeOS의 크롬 주소창을 개선한 방법


매일 수십억 번 사용되는 크롬 주소창(우리는 이를 “옴니복스(omnibox)”라고 부릅니다)은 탭이나 북마크를 빠르게 찾거나, 이전에 방문했던 웹 페이지로 돌아가거나, 정보를 검색하는 등 웹 서핑을 더욱 쉽게 만들어주는 강력한 도구입니다.

최신 크롬 버전(M124)부터는 데스크톱용 옴니복스에 머신러닝(ML) 모델을 통합하여, 웹 페이지 제안이 사용자에게 더욱 정확하고 관련성 있게 표시되도록 개선했습니다. 앞으로 이 모델들은 검색 제안의 관련성 점수를 높이는 데에도 기여할 것입니다. 이번 통합을 구축하며 얻은 몇 가지 중요한 통찰과 이 새로운 모델이 우리를 어디로 이끌지에 대해 자세히 살펴보겠습니다.

지금에 이르기까지

옴니복스 팀의 엔지니어링 리드로서 모든 업데이트 출시가 특별하지만, 이번 출시는 제게 정말 각별합니다. 제가 처음 크롬 옴니복스 업무를 시작했을 때, 사용자들을 위해 어떻게 개선하면 좋을지 의견을 구했습니다. 그때 가장 많이 들었던 답변은 "점수 산정 시스템(scoring system)을 개선하라"는 것이었습니다. 기존 시스템이 나빴던 것은 아닙니다. 사실 옴니복스는 사용자가 원하는 URL이나 검색어를 기가 막히게 찾아내곤 했습니다! 문제는 시스템이 유연하지 못했다는 점입니다. 수작업으로 구축하고 튜닝한 일련의 공식들은 제 역할을 잘 해냈지만, 이를 개선하거나 새로운 시나리오에 적응시키기는 어려웠습니다. 그 결과 점수 산정 시스템은 오랫동안 거의 수정되지 않은 채 유지되었습니다.

그 긴 시간 동안 머신러닝 기반의 점수 산정 모델은 명확한 해결책처럼 보였습니다. 하지만 실제로 여기까지 오기 위해 수많은 시행착오를 겪어야 했습니다. 오랫동안 이 과제를 해결하지 못했던 이유는 매일 말 그대로 수십억 번씩 사용되는 기능의 핵심 메커니즘을 교체하는 것이 매우 어려웠기 때문입니다. 소프트웨어 엔지니어링 프로젝트는 종종 "비행 중에 비행기를 조립하는 것"에 비유되곤 합니다. 이번 프로젝트는 마치 "전 세계의 모든 비행기가 날고 있는 동안, 그 비행기들의 모든 좌석을 교체하는 것"과 같았습니다. 규모가 엄청났을 뿐만 아니라 그 변화가 모든 사용자에게 직접적으로 체감되는 것이었으니까요.

이 야심 찬 도전은 재능 있고 헌신적인 팀원들의 노력이 없었다면 불가능했을 것입니다. 과정 중에 우여곡절도 있었고, 깨부숴야 할 벽도 있었으며, 예상치 못한 문제로 속도가 늦춰지기도 했습니다. 하지만 팀원들은 사용자들에게 올바른 가치를 전달하겠다는 진심 어린 믿음으로 이겨냈습니다.

놀라운 통찰

머신러닝 시스템으로 작업할 때 즐거운 점 중 하나는, 개별 인원이나 팀이 감당하기 힘든 방대한 규모의 데이터를 고려하여 학습이 이루어진다는 점입니다. 그리고 이는 때로 놀라운 통찰로 이어집니다.

이번 프로젝트에서 가장 흥미로웠던 예시는 '마지막 탐색 이후 경과 시간(time since last navigation)'이라는 특정 신호의 점수 곡선을 살펴봤을 때였습니다. 일반적으로 이 신호는 시간이 짧을수록(즉, 특정 URL에 최근에 방문했을수록), 해당 신호가 높은 관련성 점수를 받는 데 더 큰 기여를 할 것이라고 예상합니다.

학습 결과 모델 역시 실제로 그렇게 학습했습니다. 하지만 더 자세히 들여다보니 놀라운 점이 발견되었습니다. 탐색 후 경과 시간이 아주 짧을 때(수 시간이나 수일이 아닌 단 몇 초 수준일 때), 모델은 오히려 관련성 점수를 낮추고 있었습니다. 알고 보니 훈련 데이터에는 사용자가 실수로 원치 않는 URL로 접속했다가, 즉시 크롬 옴니복스로 돌아와 다시 시도하는 패턴이 반영되어 있었던 것입니다. 이 경우 방금 방문했던 URL은 사용자가 원하는 것이 아닐 확률이 매우 높으므로, 두 번째 시도에서는 낮은 점수를 주는 것이 맞습니다.

돌이켜보면 이는 당연한 결과입니다. 만약 머신러닝 기반 시스템을 도입하지 않았더라도, 우리는 결국 이를 반영하기 위해 예전 시스템에 새로운 규칙을 추가했을 것입니다. 하지만 훈련 시스템이 이 패턴을 관찰하고 학습하기 전까지는, 이런 일이 일어나고 있을 것이라고 아무도 생각하지 못했습니다.

미래를 향해

새로운 머신러닝 모델을 통해, 우리는 시간대별 차이를 구분하여 관련성을 높이는 것과 같이 새로운 신호들을 통합하여 사용자 경험을 개선할 수 있는 수많은 가능성이 열릴 것이라 믿습니다. 또한 모바일, 기업용, 학술용 사용자 또는 다양한 지역별 환경에 맞춘 특화된 모델을 훈련하는 방안도 모색하고자 합니다.

더불어 옴니복스를 대하는 사용자의 방식은 시간이 흐름에 따라 변한다는 점을 인지하고 있으며, 관련성 점수 또한 그에 맞춰 변해야 한다고 생각합니다. 이제 새로운 점수 산정 시스템을 통해, 우리는 단순히 더 최신의 신호를 수집하고 주기적으로 모델을 재훈련, 평가 및 배포할 수 있게 되었습니다.

작성자: 저스틴 도넬리(Justin Donnelly), 크롬 소프트웨어 엔지니어