ML을 사용하여 필터 및 패싯 생성

ML 모델을 사용하여 검색 환경에서 필터 및 패싯 생성을 자동화할 때의 장단점을 기존의 하드코딩 방식과 비교하여 살펴봅니다.

Elasticsearch는 여러분의 사용 사례에 가장 적합한 검색 솔루션을 구축하는 데 도움이 되는 새로운 기능으로 가득 차 있습니다. 최신 검색 AI 경험 구축에 관한 실습형 웨비나에서 이러한 기능을 실제로 활용하는 방법을 배워 보세요. 지금 무료 클라우드 체험을 시작하거나, 내 로컬 기기에서 Elastic을 사용해 볼 수 있습니다.

필터와 패싯은 검색 결과를 구체화하는 데 사용되는 메커니즘으로, 사용자가 관련 콘텐츠나 제품을 더 빠르게 찾을 수 있도록 도와줍니다. 기존 접근 방식에서는 규칙을 수동으로 정의합니다. 예를 들어 영화 카탈로그에서는 장르와 같은 속성이 필터와 패싯에 사용하도록 미리 정의되어 있습니다. 반면, AI 모델을 사용하면 영화의 특성에서 새로운 속성을 자동으로 추출할 수 있어 보다 역동적이고 개인화된 프로세스를 구현할 수 있습니다. 이 블로그에서는 각 방법의 장단점을 살펴보고, 각 방법의 적용 사례와 문제점을 강조합니다.

필터 및 패싯

시작하기 전에 필터와 패싯이 무엇인지 정의해 보겠습니다. 필터는 결과 집합을 제한하는 데 사용되는 미리 정의된 속성입니다. 예를 들어 마켓플레이스에서는 검색이 수행되기 전에도 필터를 사용할 수 있습니다. 사용자는 "비디오 게임" 과 같은 카테고리를 선택한 다음 "PS5" 과 같이 전체 데이터베이스가 아닌 보다 구체적인 하위 집합으로 검색을 구체화할 수 있습니다. 이렇게 하면 보다 관련성 높은 결과를 얻을 가능성이 크게 높아집니다.

패싯은 필터와 유사하게 작동하지만 검색을 수행한 후에만 사용할 수 있습니다. 즉, 검색이 결과를 반환하고 이를 기반으로 새로운 세분화 옵션 목록이 생성됩니다. 예를 들어 PS5 콘솔을 검색할 때 저장 용량, 배송비, 색상 등의 측면이 표시되어 사용자가 이상적인 제품을 선택하는 데 도움이 될 수 있습니다.

이제 필터와 패싯을 정의했으니, 기존 방식과 머신 러닝(ML) 기반 방식이 구현과 사용에 미치는 영향에 대해 논의해 보겠습니다. 각 방법에는 검색 효율성에 영향을 미치는 장점과 과제가 있습니다.

고전적 접근 방식

이 접근 방식에서는 필터와 패싯이 미리 정의된 규칙에 따라 수동으로 정의됩니다. 즉, 카탈로그 구조와 사용자 요구를 고려하여 검색을 구체화하는 데 사용할 수 있는 속성이 미리 정해지고 계획되어 있습니다.

예를 들어 마켓플레이스에서 "전자제품" 또는 "패션" 같은 카테고리에는 브랜드, 형식, 가격대 등의 특정 필터가 있을 수 있습니다. 이러한 규칙은 정적으로 생성되므로 검색 환경의 일관성을 보장하지만 새로운 제품이나 카테고리가 등장할 때마다 수동으로 조정해야 합니다.

이 접근 방식은 표시되는 필터와 패싯에 대한 예측 가능성과 제어 기능을 제공하지만, 동적으로 세분화해야 하는 새로운 트렌드가 발생할 경우 제한적일 수 있습니다.

장점:

  • 예측 가능성 및 제어: 필터와 패싯을 수동으로 정의할 수 있으므로 관리가 더 쉬워집니다.
  • 낮은 복잡성: 모델을 훈련할 필요가 없습니다.
  • 유지 관리의 용이성: 규칙이 미리 정의되어 있으므로 신속하게 조정 및 수정할 수 있습니다.

단점:

  • 새 필터에는 재색인 작업이 필요합니다: 새 속성을 필터로 사용해야 할 때마다 문서에 이 정보가 포함되어 있는지 확인하기 위해 전체 데이터 집합을 다시 색인해야 합니다.
  • 동적 적응이 부족합니다: 필터는 정적이며 사용자 행동의 변화에 따라 자동으로 조정되지 않습니다.

필터/패싯 구현 - 고전적인 접근 방식

개발 도구인 Kibana에서는 고전적인 접근 방식을 사용하여 필터/패싯 데모를 만들어 보겠습니다.

먼저 인덱스를 구성하기 위한 매핑을 정의합니다:

브랜드저장 필드는 키워드로 설정되어 집계(패싯)에서 바로 사용할 수 있습니다. 가격 필드는 플로트 유형으로 가격 범위를 생성할 수 있습니다.

다음 단계에서는 제품 데이터가 색인화됩니다:

이제 브랜드, 스토리지 및 가격대별로 결과를 그룹화하여 클래식 패싯을 검색해 보겠습니다. 쿼리에서 size:0이 정의되었습니다. 이 시나리오에서는 쿼리에 해당하는 문서를 포함하지 않고 집계 결과만 검색하는 것이 목표입니다.

응답에는 브랜드, 스토리지, 가격에 대한 카운트가 포함되어 필터와 패싯을 만드는 데 도움이 됩니다.

머신러닝/AI 기반 접근 방식

이 접근 방식에서는 인공 지능(AI) 기술을 포함한 머신 러닝(ML) 모델이 데이터 속성을 분석하여 관련 필터와 패싯을 생성합니다. ML/AI는 미리 정의된 규칙에 의존하는 대신 인덱싱된 데이터 특성을 활용합니다. 이를 통해 새로운 패싯과 필터를 동적으로 검색할 수 있습니다.

장점:

  • 자동 업데이트: 수동으로 조정할 필요 없이 새로운 필터와 패싯이 자동으로 생성됩니다.
  • 새로운 속성 발견: 이전에는 고려하지 않았던 데이터 특성을 필터로 식별하여 검색 환경을 더욱 풍부하게 만들 수 있습니다.
  • 수동 작업 감소: AI가 사용 가능한 데이터에서 학습하므로 팀에서 필터링 규칙을 지속적으로 정의하고 업데이트할 필요가 없습니다.

단점:

  • 유지 관리의 복잡성: 모델을 사용하려면 생성된 필터의 일관성을 보장하기 위해 사전 검증이 필요할 수 있습니다.
  • ML 및 AI 전문 지식이 필요합니다: 이 솔루션은 모델 성능을 미세 조정하고 모니터링할 수 있는 자격을 갖춘 전문가가 필요합니다.
  • 관련 없는 필터의 위험: 모델이 제대로 보정되지 않은 경우 사용자에게 유용하지 않은 패싯을 생성할 수 있습니다.
  • 비용: ML 및 AI를 사용하려면 타사 서비스가 필요할 수 있으므로 운영 비용이 증가할 수 있습니다.

잘 보정된 모델과 잘 만들어진 프롬프트가 있더라도 생성된 패싯은 검토 단계를 거쳐야 한다는 점에 유의할 필요가 있습니다. 이 검증은 수동 또는 모더레이션 규칙에 따라 이루어질 수 있으며, 콘텐츠가 적절하고 안전한지 확인합니다. 반드시 단점이 있는 것은 아니지만, 사용자에게 제공하기 전에 패싯의 품질과 적합성을 확인하는 것은 중요한 고려 사항입니다.

필터/패싯 구현 - AI 접근 방식

이 데모에서는 AI 모델을 사용하여 자동으로 제품 특성을 분석하고 관련 속성을 제안합니다. 잘 구조화된 프롬프트를 통해 카탈로그에서 정보를 추출하고 이를 필터와 패싯으로 변환합니다. 아래에서 프로세스의 각 단계를 설명합니다.

처음에는 추론 API를 사용하여 ML 서비스와의 통합을 위해 엔드포인트를 등록할 것입니다. 아래는 OpenAI 서비스와의 통합 예시입니다.

이제 프롬프트를 실행하고 모델에서 생성된 새 필터를 가져오는 파이프라인을 정의합니다.

"PlayStation 5" 제품에 대한 이 파이프라인의 시뮬레이션을 다음 설명과 함께 실행합니다:

놀라운 게임: 놀라운 그래픽에 감탄하고 새로운 PS5의 기능을 경험해 보세요.

놀라운 몰입감: 햅틱 피드백, 적응형 트리거, 3D 오디오 기술을 지원하여 더욱 깊이 있는 게임 환경을 경험하세요.

슬림한 디자인: PS5 디지털 에디션으로 게이머는 세련되고 컴팩트한 디자인에 강력한 게임 기술을 즐길 수 있습니다.

1TB의 저장 공간: 1TB의 내장 SSD 스토리지로 좋아하는 게임을 준비해 두고 플레이하세요.

이전 버전과의 호환성 및 게임 부스트: PS5 콘솔은 4,000개 이상의 PS4 게임을 플레이할 수 있습니다. 게임 부스트를 사용하면 최고의 PS4 콘솔 게임에서 더욱 빠르고 부드러운 프레임 속도를 즐길 수 있습니다.

이 시뮬레이션에서 생성된 프롬프트 출력을 관찰해 보겠습니다.

이제 새 인덱스에 새 필드인 dynamic_facets가 추가되어 AI가 생성한 패싯을 저장합니다.

재색인 API를 사용하여 비디오게임 인덱스를 비디오게임_1로 재색인하고, 이 과정에서 생성_필터_ai 파이프라인을 적용합니다. 이 파이프라인은 인덱싱 중에 동적 패싯을 자동으로 생성합니다.

이제 검색을 실행하여 새 필터를 가져옵니다:

결과:

패싯의 구현을 상징하기 위해 아래는 간단한 프런트엔드입니다:

제시된 UI 코드는 여기에 있습니다.

결론

필터와 패싯을 만드는 두 가지 접근 방식 모두 장점과 우려되는 점이 있습니다. 수동 규칙을 기반으로 하는 고전적인 접근 방식은 제어와 비용 절감 효과를 제공하지만 지속적인 업데이트가 필요하고 새로운 제품이나 기능에 동적으로 적응하지 못합니다.

반면, AI 및 머신러닝 기반 접근 방식은 패싯 추출을 자동화하여 검색을 더욱 유연하게 만들고 수동 개입 없이 새로운 속성을 발견할 수 있게 해줍니다. 그러나 이 접근 방식은 구현 및 유지 관리가 더 복잡할 수 있으며 일관된 결과를 보장하기 위해 보정이 필요할 수 있습니다.

기존 방식과 AI 기반 방식 중 어떤 방식을 선택할지는 비즈니스의 요구와 복잡성에 따라 달라집니다. 데이터 속성이 안정적이고 예측 가능한 간단한 시나리오의 경우, 기존 접근 방식이 더 효율적이고 유지 관리가 쉬우며 인프라 및 AI 모델을 통해 불필요한 비용을 피할 수 있습니다. 반면에 ML/AI를 사용하여 패싯을 추출하면 검색 환경을 개선하고 필터링을 더욱 지능적으로 만들어 상당한 가치를 더할 수 있습니다.

중요한 것은 자동화가 투자를 정당화하는지, 아니면 기존 솔루션이 이미 비즈니스 요구 사항을 효과적으로 충족하는지 평가하는 것입니다.

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요