grep

Engineering

πŸ›’ ν† μŠ€ μ‡Όν•‘ μΆ”μ²œ μ‹œμŠ€ν…œ: 수백만 μ‚¬μš©μžμ™€ μƒν’ˆμ„ μž‡λŠ” λ©€ν‹° μŠ€ν…Œμ΄μ§€ 접근법

κΉ€μ •μ˜€ν† μŠ€

2025λ…„ 4μ›” 17일

μ›λ¬Έμ—μ„œ 보기 β†—

μ•ˆλ…•ν•˜μ„Έμš”, ν† μŠ€ 컀머슀 κ°œμΈν™”νŒ€μ˜ ML Engineer κΉ€μ •μ˜€μž…λ‹ˆλ‹€.

ν˜„μž¬ ν† μŠ€ μ•± ν•˜λ‹¨ λ©”λ‰΄μ˜ 쀑앙은 μ €ν¬νŒ€μ—μ„œ λ§Œλ“€μ–΄κ°€κ³  μžˆλŠ” ν† μŠ€ 쇼핑이 μžλ¦¬ν•˜κ³  μžˆλŠ”λ°μš”. ν† μŠ€ 쇼핑은 μ‚¬μš©μž 데이터λ₯Ό 기반으둜 μ‚¬μš©μžμ—κ²Œ κ°€μž₯ ν•„μš”ν•œ μƒν’ˆμ„ μΆ”μ²œν•΄μ£Όκ²Œ λ˜μ–΄μžˆμ–΄μš”. 이 글을 ν†΅ν•΄μ„œ ν† μŠ€ 쇼핑은 μ–΄λ–»κ²Œ κ°œμΈν™” μΆ”μ²œ μ‹œμŠ€ν…œμ„ λ§Œλ“€κ³  μžˆλŠ”μ§€ κ°„λž΅νžˆ μ„€λͺ…ν•΄ λ“œλ¦¬κ³ μž ν•©λ‹ˆλ‹€.

πŸ” λͺ©μ ν˜• μ‚¬μš©μžμ™€ νƒμƒ‰ν˜• μ‚¬μš©μž

ν† μŠ€ 쇼핑은 λ‹€μ–‘ν•œ μ†ŒλΉ„μž μœ ν˜•μ„ 닀루고 μžˆμ–΄μš”. 이 쀑 특히 μ€‘μš”ν•œ 두 κ°€μ§€ μœ ν˜•μ€ λͺ©μ ν˜• μ‚¬μš©μžμ™€ νƒμƒ‰ν˜• μ‚¬μš©μžμΈλ°μš”, κ·Έ μ •μ˜λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

β†’ ν† μŠ€ 쇼핑은 νƒμƒ‰ν˜• μ‚¬μš©μžμ˜ 비쀑이 λ†’μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, μ‚¬μš©μžκ°€ μžμ—°μŠ€λŸ½κ²Œ ν₯λ―Έλ₯Ό 느끼고 ꡬ맀 ν–‰λ™μœΌλ‘œ 이어지도둝 λ•λŠ” κ°œμΈν™” μΆ”μ²œ μ‹œμŠ€ν…œμ΄ ν•„μˆ˜μ μ΄μ—μš”.

πŸ“ˆ μΆ”μ²œ μ‹œμŠ€ν…œμ˜ ν•„μš”μ„±

πŸ›  λ©€ν‹° μŠ€ν…Œμ΄μ§€ μΆ”μ²œ μ‹œμŠ€ν…œ

λŒ€κ·œλͺ¨ μΆ”μ²œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, μ €ν¬λŠ” μ„±λŠ₯κ³Ό 속도λ₯Ό λͺ¨λ‘ κ³ λ €ν•˜μ—¬ λ©€ν‹° μŠ€ν…Œμ΄μ§€(Multi-Stage) ꡬ쑰λ₯Ό μ±„νƒν–ˆμ–΄μš”. 이 κ΅¬μ‘°λŠ” 크게 λ‹€μŒκ³Ό 같은 λ‹¨κ³„λ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

1. Retrieval

Retrieval λ‹¨κ³„μ—μ„œλŠ” 수백만 개의 μƒν’ˆ μ€‘μ—μ„œ μ‚¬μš©μžμ—κ²Œ μ–΄μšΈλ¦΄ κ°€λŠ₯성이 높은 수천 개의 μƒν’ˆμ„ λΉ λ₯΄κ²Œ ν›„λ³΄λ‘œ λ½‘μ•„λ‚΄μš”. 이 λ‹¨κ³„λŠ” 맀우 λΉ λ₯Έ 응닡 속도가 μš”κ΅¬λ˜λ©°, μ•„λž˜μ™€ 같이 λ‹€μ–‘ν•œ 방법둠이 ν™œμš©λ©λ‹ˆλ‹€.

Retrieval λ‹¨κ³„λŠ” μ •ν™•μ„±κ³Ό νš¨μœ¨μ„±μ˜ κ· ν˜•μ„ λ§žμΆ”λŠ” 것이 μ€‘μš”ν•˜λ©°, 이후 Ranking λ‹¨κ³„λ‘œ λ„˜μ–΄κ°€κΈ° μœ„ν•΄ μΆ©λΆ„νžˆ λ‹€μ–‘ν•œ 후보λ₯Ό ν™•λ³΄ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

2. Ranking

Ranking λ‹¨κ³„μ—μ„œλŠ” Retrieval λ‹¨κ³„μ—μ„œ 얻은 수천 개의 후보ꡰ을 λ°›μ•„ κ°œμΈν™” λͺ¨λΈμ„ 톡해 점수λ₯Ό λ§€κΈ°κ³  μ •λ ¬ν•΄μš”. μ£Όμš” λͺ©ν‘œλŠ” pCTR(predicted Click-Through Rate) 및 **pCVR(predicted Conversion Rate)**을 μ •ν™•νžˆ μ˜ˆμΈ‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 단계 μ—­μ‹œ μ•„λž˜μ™€ 같이 λ‹€μ–‘ν•œ 방법둠이 μ‚¬μš©λ©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λͺ¨λΈλ“€μ€ κ°œλ³„ 예츑 μ„±λŠ₯을 λ†’μ΄λŠ” κ²ƒλΏλ§Œ μ•„λ‹ˆλΌ, μ„œλΉ„μŠ€μ˜ 핡심 μ§€ν‘œ(GMV, Orders λ“±) μ΅œμ ν™”μ—λ„ 큰 κΈ°μ—¬λ₯Ό ν•©λ‹ˆλ‹€.

3. Re-ranking

μ΅œμ’… 단계인 Re-rankingμ—μ„œλŠ” 초기 λͺ¨λΈ 점수 외에도 λ‹€μ–‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μ‚¬μš©μž κ²½ν—˜ ν–₯상을 μœ„ν•œ μš”μ†Œλ₯Ό λ°˜μ˜ν•˜μ—¬ κ²°κ³Όλ₯Ό μ‘°μ •ν•©λ‹ˆλ‹€. μ£Όμš” λͺ©ν‘œλŠ” μΆ”μ²œ 결과의 λ‹€μ–‘μ„±(Diversity), 신선도(Novelty), λΉ„μ¦ˆλ‹ˆμŠ€ μ§€ν‘œ μ΅œμ ν™”λ₯Ό λ™μ‹œμ— λ§Œμ‘±μ‹œν‚€λŠ” κ²ƒμ΄μ—μš”.

μ΄λ ‡κ²Œ λ‹€μ–‘ν•œ μš”μ†Œλ₯Ό λ°˜μ˜ν•œ Re-ranking은 λ‹¨μˆœ 예츑 μ μˆ˜μ— κΈ°λ°˜ν•œ 정렬보닀 μ‹€μ œ μ‚¬μš©μž κ²½ν—˜κ³Ό λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œ λͺ¨λ‘λ₯Ό λ™μ‹œμ— λ§Œμ‘±μ‹œν‚€λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

πŸ“ κ²°λ‘ 

ν† μŠ€ μ‡Όν•‘μ˜ ν™ˆ ν”Όλ“œ μΆ”μ²œ μ‹œμŠ€ν…œμ€ νƒμƒ‰ν˜• μ‚¬μš©μžμ˜ νŠΉμ„±μ„ κ³ λ €ν•˜μ—¬ μ„€κ³„λœ λ©€ν‹° μŠ€ν…Œμ΄μ§€ μΆ”μ²œ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.

수백만 λͺ…μ˜ μ‚¬μš©μžμ™€ 수백만 건의 μƒν’ˆμ„ λ‹€λ£¨λŠ” ν™˜κ²½μ—μ„œ, Retrieval, Ranking, Re-ranking을 ν†΅ν•œ 점진적인 후보ꡰ μ •μ œκ°€ 핡심 μ „λž΅μ΄μ£ . 이λ₯Ό 톡해 μ‚¬μš©μžλŠ” λͺ…ν™•ν•œ ꡬ맀 λͺ©ν‘œ 없이도 μžμ—°μŠ€λŸ½κ²Œ ν₯미둜운 μƒν’ˆμ„ λ°œκ²¬ν•˜κ³ , ꡬ맀둜 μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν† μŠ€ μ‡Όν•‘μ—μ„œλŠ” 각 μŠ€ν…Œμ΄μ§€(Retrieval, Ranking, Re-ranking)별 μΆ”μ²œ λͺ¨λΈμ„ μ§€μ†μ μœΌλ‘œ κ°œμ„ ν•˜κ³  고도화할 ML Engineerλ₯Ό μ°Ύκ³  μžˆμ–΄μš”. ν† μŠ€ μ‡Όν•‘μ˜ μΆ”μ²œ μ‹œμŠ€ν…œμ„ ν•¨κ»˜ λ§Œλ“€μ–΄κ°€μ‹€ λΆ„λ“€μ˜ λ§Žμ€ 지원을 κΈ°λ‹€λ¦½λ‹ˆλ‹€!