Inside the Tech – 다국어 및 시맨틱 검색 문제 해결

귀 팀이 현재 해결하고 있는 가장 큰 기술적 과제는 무엇인가요?
약 1년 전까지 Roblox 검색은 사용자의 검색어와 결과를 매칭하기 위해 어휘 기반 시스템을 사용했습니다. 즉, 텍스트 일치에만 집중했던 것이죠. 하지만 검색 행태가 빠르게 변화하고 있어, 더 이상 이러한 접근 방식만으로는 사용자에게 관련성 높은 콘텐츠를 제공하기에 부족합니다. 또한 일부 Roblox 사용자는 검색어에 잘못된 철자를 사용할 수도 있습니다. 따라서 우리는 사용자가 찾는 내용과 일치하는 결과를 제안할 수 있어야 하며, 이는 사용자의 의도를 이해해야 함을 의미합니다.
검색 분야의 또 다른 주요 문제는 다양한 언어에 걸친 훈련 데이터의 부족입니다. 시맨틱 검색을 도입하기 전, 저희의 첫 단계는 로블록스 시스템 내의 기계 번역을 활용하는 것이었습니다. 번역 결과를 색인화한 후 텍스트 일치를 수행했죠. 하지만 이는 사용자에게 항상 관련성 높은 콘텐츠를 보여주기에는 충분하지 않았습니다. 그래서 저희는 '스튜던트-티처(student-teacher) 모델'이라는 최첨단 머신러닝 기법을 도입했습니다. 이 모델에서 '티처(teacher)'는 특정 시나리오에 대한 가장 방대한 맥락 데이터 소스에서 학습합니다.
로블록스에서 가장 많이 사용되는 언어는 영어입니다. 그래서 우리는 영어(교사 모델)에서 가능한 한 많은 의미적 관계를 학습한 다음, 이를 다른 언어로 확장하여 학생 모델에 적용합니다. 이를 통해 특정 언어에 대한 데이터가 부족하더라도 해당 문제를 해결할 수 있습니다. 그 결과 일본에서 검색을 통해 발생한 플레이 횟수가 15% 증가했습니다.
최근 우리는 "đua xe(레이싱)"와 같은 카탈로그 검색어를 더 잘 지원하기 위해 노력해 왔습니다. 하지만 사용자들은 "저기, 용이 나오고 그 용과 싸우는 소녀가 나오는 게임을 했던 기억이 나는데, 그 게임을 찾을 수 있게 도와줄 수 있나요?"와 같이 길고 자유로운 형식의 검색어를 더 자주 입력하고 있습니다. 이는 더 많은 기술적 과제를 안겨주며, 우리는 이러한 방향으로 시스템을 지속적으로 개선하고 있습니다.
더 많은 맥락과 시맨틱 검색을 통합하기 위한 혁신적인 접근 방식에는 어떤 것들이 있나요?
저희는 어휘 기반 검색에 시맨틱 검색과 쿼리 의도 이해를 활용하는 머신러닝(ML) 기술 및 모델을 결합한 하이브리드 검색 시스템을 구축했습니다. 맥락 이해 능력을 강화하고, 복잡한 쿼리를 처리하며, 관련성 높은 콘텐츠를 제공할 수 있도록 시스템을 지속적으로 발전시키고 있습니다.
의미 기반 검색의 핵심은 임베딩에 있습니다. 이는 로블록스 전역에서 수집한 다양한 신호를 풍부하게 표현한 것입니다. 예를 들어, 사용자 인구 통계, 사용자의 검색어, 검색어의 길이, 또는 검색어의 독특한 특징과 같은 신호를 통합하고 있습니다.
또한 경험(Experience), 아바타 아이템, 참여도(이 게임이 얼마나 자주 플레이되었는지, 사용자 수는 몇 명인지, 몇 개국에서 접속했는지 등)와 같은 콘텐츠 신호도 분석합니다. 수익화 및 유지율과 같은 요소는 물론, 경험의 제목, 설명, 제작자 같은 메타데이터도 포함됩니다. 이 모든 정보를 BERT 기반의 트랜스포머 아키텍처에 통과시킨 후, 마지막 단계에서 다층 퍼셉트론(MLP)을 사용하여 임베딩을 생성하며, 이것이 우리의 신뢰할 수 있는 데이터 소스가 됩니다.
또 다른 혁신은 자체 개발한 유사도 검색 시스템입니다. 사용자가 검색 쿼리를 입력하면, 우리는 밀접하게 관련된 임베딩을 검색하여 사용자가 찾는 내용과 관련성이 높은 순서로 정렬한 후 결과를 사용자에게 제공합니다.
이러한 기술적 작업을 수행하며 배운 핵심적인 점들은 무엇인가요?
모든 언어는 저마다 고유한 과제를 안고 있습니다. 특히 검색의 경우, 전 세계 각지의 사용자가 무엇을 찾고 있는지 이해해야만 가장 관련성 높은 결과를 보여줄 수 있습니다. 우리는 다양한 언어적 요소를 파악해야 합니다. 예를 들어, 사전 훈련된 트랜스포머 모델은 일본어의 다양한 방언을 이해하는 데 필수적이었습니다.
둘째, 검색 쿼리 패턴이 상당히 많이 변하고 있어, 이에 발맞추기 위해 기술 스택을 지속적으로 발전시켜야 합니다. 동시에, 사용자들이 플랫폼에서 가능한 기능을 인지하지 못할 수 있으므로, 이에 대해 알려줄 필요가 있습니다. 예를 들어, 검색 기능이 '레이싱 게임'이나 '인기 있는 음식 게임'과 같은 자유형 쿼리를 지원하며, 사용자가 무엇을 찾고 있는지 이해하고 적절한 결과를 제공할 수 있다는 점을 알릴 수 있습니다.
귀하의 팀은 로블록스의 어떤 가치와 가장 잘 부합하나요?
장기적인 관점을 갖는 것은 우리 팀의 핵심 가치이며, 제가 로블록스에서 일하는 것을 좋아하는 이유 중 하나입니다.
저희 팀의 한 가지 예로, 사전 훈련된 대규모 모델을 활용한 시맨틱 검색, 자동 완성, 맞춤법 교정 등 ML 및 NLP 기반 검색 시스템으로 구성된 기술 스택을 들 수 있습니다.
저희는 매일 수천만 명의 활성 사용자가 수행하는 다양한 유형의 검색에서 재사용성을 염두에 두고 이를 구축했습니다. 즉, 다른 유형의 데이터(예: 경험 대신 아바타 아이템)를 연결해도 최소한의 변경만으로 작동할 수 있습니다.
저희는 경험(experience)을 위한 시맨틱 검색을 통합했고, 이를 마켓플레이스(Marketplace)와 같은 다른 분야와 공유했으며, 해당 팀들은 기존 아키텍처에 바로 적용할 수 있었습니다. 완벽한 플러그 앤 플레이(plug-and-play)는 아니지만, 약간의 미세 조정을 통해 다양한 사용 사례에 맞게 적용할 수 있습니다.
로블록스와 귀하의 팀이 나아가는 방향 중 가장 기대되는 점은 무엇인가요?
검색은 사용자가 자신의 의도를 명확히 표현하는 유일한 창구입니다. 따라서 사용자가 무엇을 원하는지 이해하고 가장 관련성 높은 결과를 제공하는 것이 필수적입니다. 그래서 저는 그 의도를 파악하고, 때로는 사용자가 스스로 깨닫기도 전에 무엇이 가능한지 알려주는 작업을 하는 것이 정말 흥미롭습니다.
어느 나라의 사용자든 무언가를 요청하면, 우리는 그들이 원하는 것과 그들에게 가장 관련성 높은 결과를 정확히 제공할 수 있습니다. 이는 신뢰를 쌓아주고, 결과적으로 사용자 유지율을 높여줍니다. 검색 기능을 개선하여 이러한 신뢰를 구축하고, 로블록스가 10억 명의 사용자라는 목표를 달성하도록 돕는 도전을 맡게 되어 매우 기쁩니다.


