# [[νŠΉμ§• 곡학 (Feature Engineering)]] ## πŸ“Œ Brief μ‹œμ‚¬ νŠΉμ§• 곡학(Feature Engineering)은 기계 ν•™μŠ΅ λͺ¨λΈμ΄ 데이터λ₯Ό 효과적으둜 ν•™μŠ΅ν•  수 μžˆλ„λ‘ μš°μˆ˜ν•œ νŠΉμ§•(Feature)을 μ„ νƒν•˜κ³  μ„€κ³„ν•˜λŠ” μ€‘μš”ν•œ λ¨Έμ‹ λŸ¬λ‹ μ˜μ—­μ΄λ‹€ [1]. 특히 검색 μ—”μ§„μ˜ ν•™μŠ΅ 기반 λž­ν‚Ή(Learning to Rank, LTR)μ—μ„œ 검색 결과의 관련성을 높이기 μœ„ν•΄ 쿼리와 λ¬Έμ„œμ˜ μŒμ„ μˆ˜μΉ˜ν™”λœ λ²‘ν„°λ‚˜ νŠΉμ§•μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 과정을 μΌμ»«λŠ”λ‹€ [2, 3]. νŠΉμ • μ‚¬μš©μž μ†μ„±μ΄λ‚˜ λ¬Έμ„œμ˜ νŠΉμ„±μ„ μ–΄λ–»κ²Œ λž­ν‚Ή νŠΉμ§•μœΌλ‘œ 인코딩할지 κ²°μ •ν•¨μœΌλ‘œμ¨, 검색 μ•Œκ³ λ¦¬μ¦˜μ΄ μ‚¬μš©μžμ˜ μ˜λ„λ₯Ό 보닀 μ •ν™•ν•˜κ²Œ νŒŒμ•…ν•˜λ„λ‘ λ•λŠ” 핡심 역할을 μˆ˜ν–‰ν•œλ‹€ [3, 4]. ## πŸ“– Core Content * **νŠΉμ§•(Feature)의 μ£Όμš” λ²”μ£Ό** ν•™μŠ΅ 기반 λž­ν‚Ή(LTR) λͺ¨λΈμ„ μœ„ν•œ νŠΉμ§•μ€ 크게 μ„Έ κ°€μ§€ 그룹으둜 λ‚˜λˆŒ 수 μžˆλ‹€ [4]. * **λ¬Έμ„œ νŠΉμ§•(Document/Static features):** μ§ˆμ˜μ™€ λ¬΄κ΄€ν•˜κ²Œ λ¬Έμ„œ 자체의 μ†μ„±μ—λ§Œ μ˜μ‘΄ν•˜λŠ” νŠΉμ§•μœΌλ‘œ, μ œν’ˆμ˜ 가격, λ¬Έμ„œμ˜ 길이, νŽ˜μ΄μ§€λž­ν¬(PageRank) 등이 이에 ν•΄λ‹Ήν•œλ‹€ [1, 4, 5]. * **쿼리 νŠΉμ§•(Query-level features):** μ‚¬μš©μžκ°€ μ œμΆœν•œ 질의 μžμ²΄μ—μ„œ 직접 κ³„μ‚°λ˜λŠ” νŠΉμ§•μœΌλ‘œ, μ§ˆμ˜μ— ν¬ν•¨λœ λ‹¨μ–΄μ˜ 수 등이 ν¬ν•¨λœλ‹€ [4, 5]. * **쿼리-λ¬Έμ„œ νŠΉμ§•(Query-document/Dynamic features):** νŠΉμ • 질의의 λ§₯λ½μ—μ„œ λ¬Έμ„œκ°€ κ°€μ§€λŠ” νŠΉμ§•μœΌλ‘œ, 제λͺ© ν•„λ“œμ— λŒ€ν•œ BM25 μ μˆ˜λ‚˜ TF-IDF 점수 등이 λŒ€ν‘œμ μ΄λ‹€ [1, 4, 5]. * **νŠΉμ§• μΆ”μΆœκ³Ό λͺ¨λΈ ν›ˆλ ¨ 데이터 ꡬ성** λ‹¨μˆœν•œ 쿼리와 λ¬Έμ„œμ˜ μŒλ§ŒμœΌλ‘œλŠ” LTR 기계 ν•™μŠ΅ λͺ¨λΈμ„ ν›ˆλ ¨ν•˜κΈ°μ— 정보가 μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€ [4]. λ”°λΌμ„œ κ΄€λ ¨μ„± 평가λ₯Ό μœ„ν•œ νŒλ‹¨ 리슀트(Judgment list)의 점수λ₯Ό κ²°μ •ν•˜λŠ” μ—¬λŸ¬ 속성인 νŠΉμ§•λ“€μ„ λ°˜λ“œμ‹œ μΆ”μΆœ(Feature extraction)ν•΄μ•Ό ν•œλ‹€ [4]. μ΄λ ‡κ²Œ μΆ”μΆœλœ νŠΉμ§•λ“€μ€ νŒλ‹¨ λ¦¬μŠ€νŠΈμ™€ κ²°ν•©ν•˜μ—¬ LTR λͺ¨λΈμ„ μœ„ν•œ μ΅œμ’… ν›ˆλ ¨ 데이터셋을 κ΅¬μ„±ν•˜κ²Œ λœλ‹€ [4, 6]. * **μˆ˜μΉ˜ν™” 및 인코딩 방식** 기계 ν•™μŠ΅ λͺ¨λΈμ—μ„œ λͺ¨λ“  νŠΉμ§•μ€ 숫자(Numeric) ν˜•νƒœλ‘œ μž…λ ₯λ˜μ–΄μ•Ό ν•œλ‹€ [3, 7]. νŠΉμ§• 곡학 κ³Όμ •μ—μ„œλŠ” λ²”μ£Όν˜• νŠΉμ§•(Categorical features)을 μ •μˆ˜λ‘œ ν‘œν˜„λ˜λŠ” λ ˆμ΄λΈ”λ‘œ λ‚˜νƒ€λ‚Ό 것인지, ν˜Ήμ€ μ—¬λŸ¬ 개의 이진 λ ˆμ΄λΈ”λ‘œ 이루어진 원핫 인코딩(One-hot encoding) λ°©μ‹μœΌλ‘œ λ³€ν™˜ν•  것인지 λ“±μ˜ ꡬ체적인 데이터 인코딩 방식을 κ²°μ •ν•˜κ²Œ λœλ‹€ [7, 8]. * **κ°œμΈν™”λ₯Ό μœ„ν•œ μ‚¬μš©μž νŠΉμ„± ν™œμš©** 검색을 κ°œμΈν™”ν•˜κΈ° μœ„ν•΄ μ‚¬μš©μžμ˜ μœ„μΉ˜ 정보, μ—…λ‘œλ“œ μœ„μΉ˜, ν˜Ήμ€ μŒμ•… μž₯λ₯΄μ— λŒ€ν•œ μž¬μƒ λΉˆλ„ λ“± 과거의 행동 데이터λ₯Ό νŠΉμ§•μœΌλ‘œ μΆ”μΆœν•˜μ—¬ μ‚¬μš©ν•œλ‹€ [3, 9]. 이λ₯Ό μœ„ν•΄ νŠΉμ • νŠΉμ§•μ΄ 검색 κ²°κ³Όλ₯Ό ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ”μ§€ μ˜€ν”„λΌμΈ ν›ˆλ ¨ 및 온라인 A/B ν…ŒμŠ€νŠΈλ₯Ό 톡해 효과λ₯Ό κ²€μ¦ν•˜λŠ” 과정이 μˆ˜λ°˜λœλ‹€ [3]. ## βš–οΈ Trade-offs & Caveats * **μ—°μ‚° λ¦¬μ†ŒμŠ€ 및 μ‹œκ°„μ˜ 증가 (μ°¨μ›μ˜ μ €μ£Ό κ΄€λ ¨ 문제):** λͺ¨λΈμ— 더 λ§Žμ€ νŠΉμ§•μ„ μΆ”κ°€ν• μˆ˜λ‘ 이λ₯Ό ν™œμš©ν•˜κΈ° μœ„ν•΄ κ²°μ • 트리(Decision tree) λͺ¨λΈ λ“±μ—μ„œ 더 λ§Žμ€ λ…Έλ“œκ°€ ν•„μš”ν•΄μ§„λ‹€ [10]. 결과적으둜 λͺ¨λΈ ν›ˆλ ¨ κ³Όμ •μ—μ„œ 수렴(Convergence)에 λ„λ‹¬ν•˜κΈ°κΉŒμ§€ 더 λ§Žμ€ μ‹œκ°„κ³Ό μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€κ°€ μ†Œλͺ¨λ˜λŠ” λ°˜λŒ€ κΈ‰λΆ€κ°€ λ°œμƒν•œλ‹€ [10]. * **μ½œλ“œ μŠ€νƒ€νŠΈ 및 데이터 편ν–₯의 μœ„ν—˜:** νŠΉμ§•μ„ 섀계할 λ•Œ μ‚¬μš©μžμ˜ κ³Όκ±° ν™œλ™ 데이터가 λΆ€μ‘±ν•œ 경우(μ½œλ“œ μŠ€νƒ€νŠΈ), μ˜¬λ°”λ₯Έ 관련성을 λ„μΆœν•  수 μ—†λ‹€ [11]. 예λ₯Ό λ“€μ–΄ μ‚¬μš©μžκ°€ 단 ν•œ 곑의 λ…Έλž˜λ§Œ λ“€μ—ˆμ„ 경우, ν•΄λ‹Ή μž₯λ₯΄λ‘œ μ„ ν˜Έλ„ νŠΉμ§•μ΄ μ§€λ‚˜μΉ˜κ²Œ μ™œκ³‘(Skewed)λ˜μ–΄ 후속 κ°œμΈν™” 검색이 νŠΉμ • λ°©ν–₯으둜만 μΉ˜μš°μΉ˜λŠ” λΆ€μž‘μš©μ΄ 생길 수 μžˆλ‹€ [12]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μƒν˜Έμž‘μš© 횟수λ₯Ό μΆ”κ°€ νŠΉμ§•μœΌλ‘œ λ„£κ±°λ‚˜ ν‰ν™œν™”(Smoothing)ν•˜λŠ” μ΅œμ ν™” μž‘μ—…μ΄ μš”κ΅¬λœλ‹€ [12]. * **였λ₯˜ 데이터에 λŒ€ν•œ μ·¨μ•½μ„±:** λΆ€μ •ν™•ν•œ 좔적 μ΄λ²€νŠΈλ‚˜ 였λ₯˜κ°€ μžˆλŠ” 데이터 νŒŒμ΄ν”„λΌμΈμ—μ„œ μΆ”μΆœλœ νŠΉμ§•μ€ μ‹€μ œ μ‚¬μš©μž 행동을 잘λͺ» λŒ€λ³€ν•˜κ²Œ 되며, 이에 κΈ°λ°˜ν•œ νŠΉμ§• 곡학 및 κ°œμΈν™” ν”„λ‘œμ νŠΈλŠ” μ‹€νŒ¨ν•  μœ„ν—˜μ΄ 크닀 [11]. * **단계적 ν™•μž₯의 ν•„μš”μ„±:** ν•œ λ²ˆμ— λ‹€μˆ˜μ˜ νŠΉμ§•μ„ λ¬΄λ¦¬ν•˜κ²Œ λ„μž…ν•˜κΈ°λ³΄λ‹€λŠ”, μž‘κ²Œ μ‹œμž‘ν•˜μ—¬ κ°œμ„  사항을 μΈ‘μ •ν•œ λ’€ λ‹¨κ³„μ μœΌλ‘œ ν™•μž₯ν•΄μ•Ό ν•˜λ©°, 이둠적으둜 μ–΄λ–»κ²Œ μž‘λ™ν• μ§€ μƒμƒν•˜κΈ° μ–΄λ €μš΄ νŠΉμ§•μ€ μΆ”κ°€ν•  κ°€μΉ˜κ°€ 없을 μˆ˜λ„ μžˆλ‹€λŠ” 점을 μœ μ˜ν•΄μ•Ό ν•œλ‹€ [3, 10]. --- *Last updated: 2026-05-04*