본문 바로가기
WIKI 기술 지식 베이스

Feature engineering

원문 보기 위키 갱신

출처: 문서

본문

특성 엔지니어링

학습 기반 순위 매기기(LTR) 솔루션을 개발하면서 마주칠 수 있는 일반적인 특성 엔지니어링 작업은 다음 섹션에서 설명해요.

원시 용어 통계 얻기

많은 LTR 솔루션은 훈련에 다음과 같은 원시 용어 통계를 사용해요:

  • 전체 용어 빈도(raw_ttf): 용어가 전체 인덱스에 나타난 총 횟수예요.
  • 문서 빈도(raw_df): 용어가 나타난 문서의 수예요.
  • 용어 빈도(raw_tf): 용어가 특정 문서에 나타난 횟수예요.
  • 클래식 IDF(classic_idf): 역문서 빈도(IDF) 계산 log((NUM_DOCS+1)/(raw_df+1)) + 1이에요.

Learning to Rank 플러그인은 다음 예제와 같이 이러한 통계를 추출할 수 있는 match_explorer 쿼리 프리미티브를 제공해요:

POST tmdb/_search
{
    "query": {
        "match_explorer": {
            "type": "max_raw_df",
            "query": {
                "match": {
                    "title": "rambo rocky"
                }
            }
        }
    }
}

{% include copy-curl.html %}

쿼리는 rambo 와 rocky 용어 사이에서 가장 높은 문서 빈도를 반환해요.

필요한 정보를 얻기 위해 통계와 함께 max, min, sum, stddev 같은 연산을 사용할 수 있어요.

용어 위치 통계

원하는 연산(min, max, avg)을 type 앞에 붙여서 용어 위치에 대한 해당 통계를 계산할 수 있어요. 용어가 문서에 없으면 결과는 0이에요.

사용 가능한 통계는 다음과 같아요:

  • min_raw_tp (최소 원시 용어 위치): 이 통계는 문서에서 검색 용어의 가장 이른 위치를 찾아요. 예를 들어, 쿼리 dance monkey에서 dance가 위치 [2, 5, 9]에 있고 monkey가 [1, 4]에 있으면 최소값은 1이에요.
  • max_raw_tp (최대 원시 용어 위치): 이 통계는 문서에서 검색 용어의 가장 늦은 위치를 찾아요. 앞의 예를 사용하면 최대값은 9예요.
  • avg_raw_tp (평균 원시 용어 위치): 이 통계는 쿼리 용어의 평균 용어 위치를 계산해요. 앞의 예를 사용하면 dance의 평균은 5.33[(2+5+9)/3]이고 monkey의 평균은 2.5[(1+4)/2]이며 전체 평균은 3.91이에요.
  • unique_terms_count: 쿼리의 고유 검색 용어 수를 제공해요.

문서별 특성

LTR 솔루션을 작업할 때 쿼리와 문서 간의 관계보다는 문서 자체에 특화된 특성을 통합해야 할 수도 있어요. 이러한 문서별 특성에는 인기도나 최신성과 관련된 지표가 포함될 수 있어요.

function_score 쿼리는 이러한 문서별 특성을 추출하는 기능을 제공해요. 다음 예제 쿼리는 vote_average 필드를 특성으로 통합하기 위해 이를 사용하는 방법을 보여줘요:

{
    "query": {
        "function_score": {
            "functions": [{
                "field_value_factor": {
                    "field": "vote_average",
                    "missing": 0
                }
            }],
            "query": {
                "match_all": {}
            }
        }
    }
}

{% include copy-curl.html %}

예제에서 쿼리의 점수는 문서 인기도나 품질의 척도가 될 수 있는 vote_average 필드의 값에 의해 결정돼요.

인덱스 드리프트

정기적으로 업데이트되는 인덱스를 작업할 때는 관찰하는 추세와 패턴이 시간이 지나도 일정하게 유지되지 않을 수 있다는 점을 고려하는 것이 중요해요. 사용자 행동, 콘텐츠 및 기타 요인이 변경됨에 따라 인덱스가 드리프트할 수 있어요. 예를 들어, 전자상거래 스토어에서 샌들은 여름철에 인기가 있지만 겨울에는 거의 찾을 수 없게 될 수 있어요. 마찬가지로, 한 기간 동안 구매나 참여를 유도하는 특성이 다른 기간에는 그만큼 중요하지 않을 수 있어요.

다음 단계

로깅 특성 점수에 대해 알아보세요.

더 알아보기 (Learn more)