Scaling Multilingual Semantic Search in Uber Eats Delivery

이 논문은 수억 개의 쿼리 - 문서 상호작용 데이터를 기반으로 Qwen2 기반의 양방향 모델과 Matryoshka 표현 학습을 활용하여 우버 이츠의 스토어, 메뉴, 식료품 등 다양한 카테고리와 다국어 검색을 통합한 대규모 의미 기반 검색 시스템을 구축하고 평가한 내용을 담고 있습니다.

Bo Ling, Zheng Liu, Haoyang Chen, Divya Nagar, Luting Yang, Mehul Parsana

게시일 Wed, 11 Ma
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

우버 이츠의 '만능 검색 비서' 이야기: 복잡한 도시를 한 번에 찾는 법

이 논문은 우버 이츠 (Uber Eats) 가 어떻게 수백만 개의 식당, 메뉴, 그리고 마트 상품을 한 번에 찾아주는 똑똑한 검색 시스템을 만들었는지 설명합니다. 마치 거대한 도시의 모든 가게와 음식을 한눈에 꿰뚫어 보는 '초능력의 비서'를 고용한 셈이죠.

기존 방식은 식당, 메뉴, 마트 상품을 각각 따로따로 관리하는 '조각난 지도'를 사용했다면, 이번 시스템은 하나의 통합된 지도를 만들어 모든 것을 한 번에 찾아냅니다.

이 시스템을 쉽게 이해할 수 있도록 몇 가지 비유로 설명해 드릴게요.


1. 두 개의 타워: 질문하는 사람과 답변하는 도서관

이 시스템은 '두 개의 타워 (Two-Tower)' 구조로 되어 있습니다.

  • 질문 타워 (사용자): 사용자가 "피자"라고 검색하면, 이 타워는 사용자의 의도를 파악하여 '의미 있는 코드 (임베딩)'로 변환합니다.
  • 답변 타워 (데이터): 식당 이름, 메뉴 설명, 마트 상품 정보 등을 미리 분석하여 같은 '코드'로 변환해 둡니다.

비유: 마치 도서관 사서독서광이 서로 다른 언어를 쓰지 않고, 오직 '공통의 손짓 (코드)'만으로 소통하는 것과 같습니다. 사용자가 "배고파"라고 말하면, 사서는 그 손짓을 보고 "아, 피자 가게가 필요하시군요!"라고 바로 알아채고 가장 가까운 피자 가게를 찾아냅니다.

2. 마트료시카 인형 (Matryoshka): 크기를 조절하는 마법

우리는 상황에 따라 검색 속도와 정확도 사이의 균형을 맞춰야 합니다.

  • 빠른 검색: 모바일 앱에서 즉각적인 결과를 원할 때는 경량화된 코드가 필요합니다.
  • 정확한 검색: 복잡한 검색이나 추천에는 더 많은 정보가 담긴 큰 코드가 필요합니다.

비유: 이 시스템은 **마트료시카 인형 (俄羅斯 인형)**과 같습니다.
큰 인형 (1536 차원) 을 열면 그 안에 더 작은 인형 (1024, 768, 256 차원 등) 이 들어 있고, 다시 열면 더 작은 인형이 나옵니다.

  • 장점: 하나의 모델로 모든 크기의 인형 (검색 속도) 을 만들어냅니다.
  • 효과: 속도가 중요한 순간에는 작은 인형 하나만 꺼내서 빠르게 검색하고, 정확도가 중요할 때는 큰 인형 전체를 열어 정밀하게 검색할 수 있습니다. 저장 공간도 크게 절약됩니다.

3. 두 단계의 훈련: "많이 보고"와 "어려운 문제 풀기"

이 똑똑한 비서를 만들기 위해 두 단계의 훈련을 시켰습니다.

  • 1 단계: 거대한 도서관에서 읽기 (InfoNCE 학습)
    수억 건의 검색 기록 (누가 무엇을 클릭했는지, 장바구니에 담았는지) 을 빠르게 훑으며 일반적인 패턴을 배웁니다. "피자"를 검색하면 "피자 가게"가 나온다는 식의 기본 상식을 익히는 단계입니다.
  • 2 단계: 어려운 문제 풀기 (Triplet NCE 학습)
    이제 인공지능 (LLM) 선생님이 등장합니다. 이 선생님이 "이 검색어와 이 메뉴는 비슷해 보이지만 실제로는 관련이 없다"거나 "이 두 가지는 매우 관련이 깊다"는 식으로 **어려운 예시 (Hard Negatives)**를 만들어냅니다.
    비유: 시험지 풀이처럼, 틀리기 쉬운 문제들을 집중적으로 훈련시켜서 모델이 헷갈리지 않도록 만듭니다.

4. JSON 이라는 '정리된 노트'

기존에는 텍스트를 그냥 나열했지만, 이 시스템은 JSON(구조화된 데이터) 형태로 정보를 입력받습니다.

  • 비유: 메뉴를 설명할 때 "피자, 치즈, 토마토, 이탈리아"라고 나열하는 대신, { "종류": "피자", "재료": ["치즈", "토마토"], "국적": "이탈리아" }처럼 라벨이 붙은 정리된 노트를 줍니다.
  • 효과: 모델이 "치즈"라는 단어가 '재료'인지 '가게 이름'인지 헷갈리지 않고, 정확한 의미를 파악할 수 있게 됩니다.

5. 실전 성과: 더 빠르고, 더 정확하게

이 시스템을 실제로 적용한 결과 놀라운 변화가 있었습니다.

  • 기존 방식 대비: 식당 찾기 정확도가 **88%**나 향상되었습니다! (예: "초밥"을 검색했을 때 초밥집을 못 찾는 경우가 거의 없어짐).
  • 비용 절감: 마트료시카 인형과 압축 기술 (Quantization) 을 써서 저장 공간과 연산 비용을 90% 이상 줄이면서도 정확도는 유지했습니다.
  • 다국어 지원: 일본, 프랑스, 멕시코 등 전 세계 6 개 국가에서 모두 똑같이 잘 작동합니다.

6. 결론: 왜 이것이 중요한가?

이 논문은 단순히 "검색이 잘 된다"는 것을 넘어, 거대한 데이터 속에서 어떻게 효율적이고 똑똑한 시스템을 만드는지에 대한 완벽한 가이드북입니다.

  • 하나의 시스템으로 모든 것을 해결: 식당, 메뉴, 마트 상품을 따로 관리할 필요가 없어졌습니다.
  • 유연함: 상황에 따라 속도와 정확도를 조절할 수 있습니다.
  • 지속 가능성: 매일 새로운 데이터를 학습하고 자동으로 업데이트되는 시스템을 구축했습니다.

한 줄 요약:

우버 이츠는 이제 하나의 초능력을 가진 비서를 통해, 전 세계 사용자의 "배고픔"을 가장 정확하고 빠르게 해결해 줍니다.