스킨케어 브랜드가 선크림 하나를 출시합니다. 국내 마켓플레이스에서는 SKU 하나입니다. 그런데 미국 마켓플레이스로 넘어가면 이게 리스팅 세 개로 쪼개져 나타날 수 있습니다. 번역된 제목이 조금씩 다르고, 옵션명이 다시 포장되어 있고, 국내에서와 카테고리 단계가 한 칸 어긋나 있죠. 상품 자체는 바뀐 게 없습니다. 그 상품을 둘러싼 데이터가 서로 어긋났을 뿐입니다.
개념을 보여주기 위한 도식입니다 — 실제 매칭 결과 화면이 아닙니다.
가장 먼저 떠오르는 해법은 SKU 코드로 맞추거나 텍스트를 그대로 일치시키는 방식입니다. 둘 다 현실 앞에서는 오래 버티지 못합니다. SKU 코드는 플랫폼마다 따로 부여되고 서로 공유되지 않습니다. 번역된 제목은 사람이 보면 바로 같은 상품인 줄 알아채더라도, 글자 단위로는 원문과 거의 일치하지 않습니다.
그래서 실제로 쓸 수 있는 방법은 글자가 아니라 의미를 비교하는 쪽입니다. 상품 하나하나를 벡터로 표현하고, 그 벡터들이 얼마나 가까이 있는지를 봅니다. 다국어 임베딩 모델을 쓰면 한국어 제목과 그에 대응하는 영어·일본어 표현을, 글자는 거의 겹치지 않더라도 벡터 공간에서는 바로 옆자리에 놓을 수 있습니다.
Datriss가 XLM-RoBERTa 기반 임베딩으로 처리하는 게 바로 이 단계입니다. 여러 플랫폼에 흩어진 동일·유사 SKU를 다시 하나의 엔티티로 접어 넣는 작업입니다. 이후 모든 작업이 이 단계가 맞았다는 전제 위에 서 있습니다. 비교하는 두 가격이 애초에 같은 상품의 것이 아니라면 시장 간 가격 비교는 아무 의미가 없기 때문입니다. 여기서 "맞다"는 건 한 번 켜고 끝나는 스위치가 아닙니다. 샘플을 확인하고 예외 케이스를 보고 다시 확인하는 과정을 계속 반복하는 일에 가깝습니다.
이 문제의 난이도는 어떤 언어 쌍을 다루느냐에 따라 크게 달라집니다. 한국어와 영어, 한국어와 일본어는 스펠링을 공유하기보다 발음을 그대로 옮기는 음차 표기에 의존하는 경우가 많아, 두 문자열이 표면적으로 거의 겹치지 않는 경우가 흔합니다. 스펠링 어원을 어느 정도 공유하는 유럽어권 언어 간 매칭과는 출발선 자체가 다릅니다. 그래서 임베딩 성능은 일반화된다고 가정하기보다, 언어 쌍마다 따로 점검해야 하는 대상입니다.
- A. Conneau et al., Unsupervised Cross-lingual Representation Learning at Scale, 2019 (arXiv:1911.02116)— Datriss가 엔티티 리졸루션에 쓰는 다국어 임베딩(XLM-R)의 원 논문입니다.
- P. Christen, Data Matching: Concepts and Techniques for Record Linkage, Entity Resolution, and Duplicate Detection, Springer, 2012— 레코드 연결·엔티티 리졸루션 분야의 대표적인 개론서입니다.