아빠는 개발자

[es] ANN search TEST 본문

Search/ANN Search

[es] ANN search TEST

father6019 2023. 9. 16. 00:39
728x90
반응형

Approximate Nearest Neighbor search

대략적인 최근접 이웃 검색? 다음과 같은 가능성을 열어준다. 

  • 질문에 대한 답이 포함될 가능성이 있는 구절 찾기
  • 대규모 데이터세트에서 거의 중복된 이미지 감지
  • 특정 노래와 비슷한 소리 찾기

ANN 알고리즘 

Elasticsearch 8.0은 HNSW(Hierarchical Navigable Small World Graphs)라는 ANN 알고리즘을 사용

테스트에 사용할 내 제물 

 

knn-index : knn search 를 사용하기 위한 맵핑구조 512차원의 dense_vector 타입 필드를 가지고 있음 

ann-index : knn search 를 사용하기 위한 맵핑구조 512차원의 dense_vector 타입 필드를 가지고 있음 

match-index : knn-index 와 동일한 맵핑구조

 

기존 인덱스를 재활용하다보디 similarity 가 l2_norm 으로 되어 있는데 일단 테스트 만들어 보고 similarity 수정해서 다시 테스트

더보기

ann-index mapping

{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 0
  },
   "mappings": {
    "dynamic": "true",
    "_source": {
      "enabled": "true"
    },
    "properties": {

      "name": {
        "type": "text"
      },
      "name_vector": {
        "type": "dense_vector",
        "dims": 512,
        "index": true,
        "similarity": "l2_norm"
      },
      "category_vector": {
        "type": "dense_vector",
        "dims": 512,
        "index": true,
        "similarity": "l2_norm"
      },
      "feature_vector": {
        "type": "dense_vector",
        "dims": 512,
        "index": true,
        "similarity": "l2_norm"
      },
      "price": {
        "type": "double"
      },
      "id": {
        "type": "keyword"
      }
    }
  }
}

knn-index mapping 

{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 0
  },
  "mappings": {
    "dynamic": "true",
    "_source": {
      "enabled": "true"
    },
    "properties": {
      "name": {
        "type": "text"
      },
      "name_vector": {
        "type": "dense_vector",
        "dims": 512
      },
      "category_vector": {
        "type": "dense_vector",
        "dims": 512
      },
      "feature_vector": {
        "type": "dense_vector",
        "dims": 512
      },
      "price": {
        "type": "double"
      },
      "id": {
        "type": "keyword"
      }
    }
  }
}

 

 

음.. 

가만보니 ann test 인데 또 knn 이 껴들어 왔네.. 그러네.. 

 

일단 돌려보자 

Enter query: 몽클레어 여성패딩

CASE ANN : 
name: 몽클레르 몽클레어 수엔 여성패딩, category: 패션의류 여성의류 점퍼, score: 1.0883002
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.0865185
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.0865185
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.0865185
name: 몽클레르 여성 Cygne 숏 패딩, category: 패션의류 여성의류 점퍼, score: 1.0803593
CASE kNN : 
name: 몽클레르 몽클레어 수엔 여성패딩, category: 패션의류 여성의류 점퍼, score: 1.9337497
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.9220895
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.9220895
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.9220895
name: 몽클레르 여성 Cygne 숏 패딩, category: 패션의류 여성의류 점퍼, score: 1.8777945
CASE Multy ANN : 
name: 몽클레르 몽클레어 수엔 여성패딩, category: 패션의류 여성의류 점퍼, score: 1.6181012
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.60563
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.60563
name: 몽클레르 여성 패딩 후디, category: 패션의류 여성의류 점퍼, score: 1.60563
name: 몽클레르 여성 Cygne 숏 패딩, category: 패션의류 여성의류 점퍼, score: 1.562515

 

검색어 : 스톤아일랜드 모자

CASE ANN : 
name: 스톤아일랜드 와펜 패치 후드탑 101564151 A0020, category: 패션의류 남성의류 티셔츠, score: 1.0621388
name: 스톤아일랜드 와펜패치 드로스트링 후드탑 101564151 V0024, category: 패션의류 남성의류 티셔츠, score: 1.0616418
name: 22FW 스톤아일랜드 와펜 후드 집업 블랙 771564220 V0029, category: 패션의류 남성의류 티셔츠, score: 1.0563933
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.0557722
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.0557722
CASE kNN : 
name: 스톤아일랜드 와펜 패치 후드탑 101564151 A0020, category: 패션의류 남성의류 티셔츠, score: 1.6953497
name: 스톤아일랜드 와펜패치 드로스트링 후드탑 101564151 V0024, category: 패션의류 남성의류 티셔츠, score: 1.6888627
name: 22FW 스톤아일랜드 와펜 후드 집업 블랙 771564220 V0029, category: 패션의류 남성의류 티셔츠, score: 1.6133685
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.6034955
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.6034955
CASE Multy ANN : 
name: 스톤아일랜드 와펜 패치 후드탑 101564151 A0020, category: 패션의류 남성의류 티셔츠, score: 1.4349716
name: 스톤아일랜드 와펜패치 드로스트링 후드탑 101564151 V0024, category: 패션의류 남성의류 티셔츠, score: 1.4314929
name: 22FW 스톤아일랜드 와펜 후드 집업 블랙 771564220 V0029, category: 패션의류 남성의류 티셔츠, score: 1.3947525
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.3904052
name: 스톤아일랜드 소프트쉘자켓 781540927, category: 패션의류 남성의류 재킷, score: 1.2788608

검색어 : 샤넬 반바지

CASE ANN : 
name: 샤넬, category: 패션잡화 여성가방 크로스백, score: 1.0491525
name: 샤 넬 선글라스 백, category: 패션잡화 여성가방 크로스백, score: 1.0484617
name: 샤 넬 폰홀더백 탑핸들백, category: 패션잡화 여성가방 크로스백, score: 1.0475577
name: 샤넬 램스킨 장지갑, category: 패션잡화 지갑 여성지갑 장지갑, score: 1.0464734
name: 샤넬 램스킨 장지갑, category: 패션잡화 지갑 여성지갑 장지갑, score: 1.0464734
CASE kNN : 
name: 샤넬, category: 패션잡화 여성가방 크로스백, score: 1.4827571
name: 샤 넬 선글라스 백, category: 패션잡화 여성가방 크로스백, score: 1.4682561
name: 샤 넬 폰홀더백 탑핸들백, category: 패션잡화 여성가방 크로스백, score: 1.4486463
name: 샤넬 램스킨 장지갑, category: 패션잡화 지갑 여성지갑 장지갑, score: 1.4241142
name: 샤넬 램스킨 장지갑, category: 패션잡화 지갑 여성지갑 장지갑, score: 1.4241142
CASE Multy ANN : 
name: 샤넬, category: 패션잡화 여성가방 크로스백, score: 1.3440673
name: 샤 넬 선글라스 백, category: 패션잡화 여성가방 크로스백, score: 1.3392315
name: 샤 넬 폰홀더백 탑핸들백, category: 패션잡화 여성가방 크로스백, score: 1.3329042
name: 샤넬 램스킨 장지갑, category: 패션잡화 지갑 여성지갑 장지갑, score: 1.3253134
name: 샤 넬 보이백 미듐 금장, category: 패션잡화 여성가방 크로스백, score: 1.2293537

결과가 다 똑같다..  

뭔가 유의미한 결과를 기대했는데 

 

스코어가 중요한게 아니라 좀더 시멘틱한 결과를  만들어 보잣

728x90
반응형

'Search > ANN Search' 카테고리의 다른 글

[es] kNN vs ANN test  (0) 2023.08.27