KR20210006852A - 레퍼런스 거리 유사도 검색 - Google Patents

레퍼런스 거리 유사도 검색 Download PDF

Info

Publication number
KR20210006852A
KR20210006852A KR1020200081545A KR20200081545A KR20210006852A KR 20210006852 A KR20210006852 A KR 20210006852A KR 1020200081545 A KR1020200081545 A KR 1020200081545A KR 20200081545 A KR20200081545 A KR 20200081545A KR 20210006852 A KR20210006852 A KR 20210006852A
Authority
KR
South Korea
Prior art keywords
vector
original
vectors
bin
bins
Prior art date
Application number
KR1020200081545A
Other languages
English (en)
Inventor
댄 일란
아미르 고틀리엡
Original Assignee
쥐에스아이 테크놀로지 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쥐에스아이 테크놀로지 인코포레이티드 filed Critical 쥐에스아이 테크놀로지 인코포레이티드
Publication of KR20210006852A publication Critical patent/KR20210006852A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Abstract

유사도 검색 시스템은 원본 벡터의 데이터베이스, 빈의 계층적 데이터베이스 및 유사도 검색기를 포함한다. 빈의 계층적 데이터베이스는 연상 메모리 어레이에 저장되고, 각각의 빈은 적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되며, 순서 벡터의 차원은 원본 벡터의 차원보다 작다. 유사도 검색기는 데이터베이스 내에서, 그 순서 벡터가 질의 벡터를 표현하는 순서 벡터를 의사하는 적어도 하나의 유사 빈을 검색하고, 질의 벡터를 의사하는 빈에 의해 표현되는 적어도 하나의 원본 벡터를 제공한다.

Description

레퍼런스 거리 유사도 검색{REFERENCE DISTANCE SIMILARITY SEARCH}
관련 출원들에 대한 상호 참조
본 출원은 2019 년 7 월 8 일에 출원된 미국 가출원 제 62/871,212 및 2020 년 4 월 1 일 출원된 미국 가출원 제 63/003,314의 우선권을 주장하는데, 이들 모두는 원용에 의해 본 명세서에 통합된다.
본 발명은 일반적으로 연상 계산에 관한 것이고, 특히 연상 계산을 사용하는 데이터 마이닝 알고리즘에 관한 것이다.
데이터 마이닝은 큰 데이터세트 내에서 패턴을 발견하는 계산 프로세스이다. 이것은 데이터세트를 분석하기 위하여 상이한 기법을 사용한다. 데이터마이닝에 흔히 필요한 계산은 n-차원의 공간에서의 고속이고 정확한 유사도 검색이고, 큰 데이터세트에 저장된, 공간내의 각각의 아이템은 n개의 부동 소수점 숫자의 벡터에 의해 표현된다. 유사도 검색의 목표는, 역시 n개의 부동 소수점 숫자에 의해 표현되는 특정한 질의 아이템을 의사하는(resembling), 데이터세트 내의 아이템을 신속하게 식별하는 것이다.
본 명세서 전체에서, 차원 S인 L 개의 벡터를 포함하는 공간은 E = {E1, E2… El} |E| = L로 표현되고, 질의 벡터는 Q(역시 차원은 S임)로 표현되며, 공간 E 내의 일반적인 벡터는 Ei로 표현된다(0<i<L). 검색의 목표는, Q와 가장 유사한, 즉 Q까지 최소의 거리를 가지는 K 개의 벡터들의 서브세트 Ei E를 찾는 것이다(K<<L).
질의 Q에 가장 유사한 K 개의 아이템의 세트 Ei를 찾기 위한 최신 솔루션 중 하나는 L2 거리, 여현 거리, 해밍(Hamming) 거리 등과 같은 거리 함수가 있는 K-최근접-이웃 검색 알고리즘이다.
본 발명의 일 실시예에 따르면, 유사도 검색 시스템이 제공된다. 이러한 시스템은 원본 벡터의 데이터베이스, 빈의 계층적 데이터베이스 및 유사도 검색기를 포함한다. 빈의 계층적 데이터베이스는 연상 메모리 어레이에 저장되고, 각각의 빈은 적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되며, 순서 벡터의 차원은 원본 벡터의 차원보다 작다. 유사도 검색기는 데이터베이스 내에서, 그 순서 벡터가 질의 벡터를 표현하는 순서 벡터를 의사하는 적어도 하나의 유사 빈을 검색하고, 질의 벡터를 의사하는 빈에 의해 표현되는 적어도 하나의 원본 벡터를 제공한다.
또한, 본 발명의 일 실시예에 따르면, 계층적 데이터베이스의 빈들은 연상 메모리 어레이의 열에 저장되고, 유사도 검색기는 복수 개의 열에서 동시에 동작한다.
더 나아가, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스는 레벨들로 정렬되고, 각각의 레벨은 상기 연상 메모리 어레이의 상이한 섹션에 저장된다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 이러한 시스템은 원본 벡터의 데이터베이스로부터 빈들의 계층적 데이터베이스를 구축하기 위한 계층적 데이터베이스 빌더를 포함한다.
더 나아가, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스 빌더는 레퍼런스 벡터 규정기, 순서 벡터 생성기 및 빈 생성기를 포함한다. 레퍼런스 벡터 규정기는 원본 벡터의 차원에서 레퍼런스 벡터들의 세트를 규정한다. 순서 벡터 생성기는 각각의 원본 벡터에 대하여, 각각의 레퍼런스 벡터까지의 거리를 계산하고, 원본 벡터로부터의 그들의 거리에 의해 순서결정된 레퍼런스 벡터의 ID를 포함하는 순서 벡터를 생성하고, 빈 생성기는 적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되는 빈을 생성한다.
또한, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스 빌더는 하나의 순서 벡터를 공유하고 상이한 원본 벡터를 표현하는 순서 벡터를 단일 빈에 클러스터링한다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스는 적어도 두 개의 레벨을 포함하고, 임의의 레벨 내의 빈은 하위 레벨 내의 빈과 연관된다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 유사도 검색기는 계층적 데이터베이스의 제 1 레벨에서 검색을 시작하고, 제 1 레벨에서 발견된 빈과 연관된 하위 레벨 내의 빈들에 대해서 계속한다.
본 발명의 일 실시예에 따르면, 원본 벡터의 데이터베이스에서 질의 벡터에 유사한 벡터들의 세트를 찾기 위한 방법이 제공된다. 이러한 방법은, 레퍼런스 벡터들의 세트에 액세스하고, 레퍼런스 벡터를 사용하여, 질의 벡터와 연관된 질의 순서 벡터를 생성하는 단계를 포함하는데, 질의 순서 벡터의 차원은 질의 벡터의 차원보다 작다. 이러한 방법은, 연상 메모리 어레이에 저장된 빈의 계층적 데이터베이스에서 - 각각의 빈은 레퍼런스 벡터들의 세트를 사용하여 생성되고 적어도 하나의 원본 벡터를 표현하며, 하나의 순서 벡터에 의해 식별됨 -, 그 순서 벡터가 상기 질의 순서 벡터를 의사하는 적어도 하나의 유사 빈을 검색하는 단계를 더 포함한다. 이러한 방법은, 질의 벡터를 의사하는 유사 빈에 의해 표현되는 상기 적어도 하나의 원본 벡터를 제공하는 단계를 더 포함한다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스는 빈을 상기 연상 메모리 어레이의 열에 저장하고, 상기 검색하는 단계는 복수 개의 상기 열에서 동시에 동작한다.
더 나아가, 본 발명의 바람직한 실시예에 따르면, 이러한 방법은 계층적 데이터베이스를 레벨들로 정렬하는 단계를 포함하고, 각각의 레벨은 연상 메모리 어레이의 상이한 섹션에 있다.
추가적으로, 본 발명의 바람직한 실시예에 따르면, 이러한 방법은 원본 벡터의 데이터베이스로부터, 빈의 계층적 데이터베이스를 구축하는 단계를 포함한다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 상기 계층적 데이터베이스를 구축하는 단계는, 상기 원본 벡터의 차원에서 레퍼런스 벡터들의 세트를 규정하는 것, 각각의 원본 벡터에 대하여, 각각의 레퍼런스 벡터까지의 거리를 계산하고, 원본 벡터로부터의 거리에 의해 순서결정되는 레퍼런스 벡터의 ID를 포함하는 순서 벡터를 생성하는 것을 포함한다. 이러한 방법은, 적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되는 빈을 생성하기 위한 빈 생성기를 더 포함한다.
더욱이, 본 발명의 바람직한 실시예에 따르면, 이러한 방법은, 하나의 순서 벡터를 공유하는 상이한 원본 벡터를 표현하는 순서 벡터를 단일 빈에 클러스터링하는 단계를 더 포함한다.
더 나아가, 본 발명의 바람직한 실시예에 따르면, 계층적 데이터베이스는 적어도 두 개의 레벨을 포함하고, 임의의 레벨 내의 빈은 하위 레벨 내의 빈과 연관된다.
16. 추가적으로, 본 발명의 바람직한 실시예에 따르면, 상기 검색하는 단계는, 계층적 데이터베이스의 제 1 레벨에서 시작하고, 제 1 레벨에서 발견된 빈과 연관된 하위 레벨 내의 빈에서 검색을 계속하는 것을 포함한다.
본 발명으로 여겨지는 기술 요지는 본 명세서의 결론부에서 특정하게 지적되고 명확하게 청구된다. 그러나, 그 목적, 특징, 및 장점과 함께 장치(organization) 및 작동 방법 모두로서의 본 발명은, 첨부 도면과 함께 읽을 때에 후속하는 발명을 실시하기 위한 구체적인 내용을 참조함으로써 가장 잘 이해될 수 있을 것이다:
도 1a 내지 도 1e는 본 발명의 일 실시예에 따라서 구성되고 동작하는 시스템에 의해 사용되는 거리 유사도 개념을 설명하는 개략도이다;
도 2는 거리 유사도 벡터 개념을 사용하여 벡터의 계층적 데이터베이스를 구축하기 위하여, 발명의 일 실시예에 따라서 구성되고 동작하는 시스템에 의해 구현되는 흐름의 개략도이다;
도 3a는 도 2의 흐름에 의해 생성되는 예시적인 계층적 데이터베이스의 개략도이다;
도 3b는 연상 처리 유닛(APU) 내에 도 3a의 계층적 데이터베이스가 배치된 예시도이다;
도 4는 도 2의 흐름을 구현하는, 본 발명의 일 실시예에 따라 구성되고 동작하는 계층적 데이터베이스 빌더의 개략도이다;
도 5는, 계층적 데이터베이스에서 질의 벡터와 유사한 벡터들의 세트를 찾기 위한, 본 발명의 일 실시예에 따라서 구성되고 동작하는 시스템에 의해 구현되는 흐름의 개략도이다;
도 6은 도 5의 흐름을 구현하는, 본 발명의 일 실시예에 따라 구성되고 동작하는 유사도 검색기의 개략도이다; 그리고
도 7a 및 도 7b는 본 발명의 일 실시예에 따라 구성되고 동작하는 유사도 검색 시스템의 두 가지 대안적인 개략도이다.
간결하고 명확한 설명을 위하여, 도면에 도시된 요소들이 반드시 척도에 맞게 그려진 것은 아니라는 것이 이해될 것이다. 예를 들어, 요소들 중 일부의 치수는 다른 요소에 비하여 과장되어 분명하게 표시될 수도 있다. 더 나아가, 적합하다면, 참조 번호는 도면들에서 반복 사용되어 대응하거나 유사한 요소를 표시할 수도 있다.
후속하는 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위하여 여러 특정한 세부사항들이 진술된다. 그러나, 당업자들은 이러한 특정 세부사항들이 없어도 본 발명이 실시될 수 있다는 것을 이해할 것이다. 다른 사례들에서, 본 발명의 양태들을 불필요하게 모호하게 하지 않도록 주지의 방법, 프로시저들 및 구성요소들은 상세히 설명되지 않는다.
출원인은, 본 발명의 공통 출원인에게 양도된 미국 특허 번호 제 9,558,812에 기술된 것과 같은 연상 메모리 디바이스가 질의 레코드 Q에 가장 유사한 K 개의 레코드의 세트를 100 마이크로-초 미만의 레이턴시로 제공하는 정확한 유사도 검색법을 제공하기 위해서 효과적으로 사용될 수 있다는 것을 깨달았다. 미국 특허 번호 9,558,812에 기술된 것과 같은 디바이스에서, 검색은 다수의 열에 동시에 수행되어, O(1)의 복잡도를 제공한다.
출원인은 또한, 더 낮은 차원 공간의 데이터세트에 수행된 유사도 검색이 높은 정확도 레벨 및 동일한 레이턴시를 유지하면서 저장소 활용을 개선할 수 있다는 것을 깨달았다. 또한, 유사도 검색은, 표준 유사도 검색 대신에 거리 유사도 검색을 사용할 경우 적절한 결과를 제공할 수 있고, 이것이 성능을 향상시킨다.
거리 유사도 검색은, 벡터 E와 벡터 Q 사이의 거리가 짧으면(즉, 벡터들이 서로 의사한다면(resemble)), 벡터 E와 레퍼런스 벡터 P 사이의 거리도 벡터 Q와 벡터 P 사이의 거리와 유사하다는 휴리스틱스(heuristics)에 기반한다. 다르게 말하면, 벡터 E가 레퍼런스 벡터 P를 의사하고 벡터 Q가 동일한 레퍼런스 벡터 P를 의사한다면, 벡터 E는 벡터 Q를 의사한다.
더 높은 차원에 있는 부동-소수점 숫자의 벡터들의 원본 데이터세트를 사용하는 대신에, 더 낮은 차원에 있는 자연수 OV의 벡터들의 대안적 데이터세트를 사용하면, 저장 요건과 계산 성능이 개선될 수 있다는 것이 인정될 수 있다. 대안적인 데이터베이스에서, 각각의 벡터 OVi는, 원본 공간에서의 그 위치를 암시하는, 벡터 Ei로부터의 그들의 거리에 의해 정렬되는 레퍼런스 벡터들의 ID를 저장할 수 있다. 레퍼런스 벡터의 개수가 새로운 공간의 차원을 결정할 수 있고, 벡터 Ei의 원래의 피쳐의 개수보다 적도록 설정될 수 있다.
거리 유사도 개념은 이제부터 참조하는 도 1a 내지 도 1e에 예시된다. 각각의 벡터 Ei로부터 미리 결정된 레퍼런스 벡터들 Pj의 세트까지의 거리는 사전에 계산될 수 있고, Ei로부터의 그들의 거리에 의해 순서결정되는, 레퍼런스 벡터 Pj의 인덱스를 가지는 새로운 벡터 OVi가 생성될 수 있다. 각각의 새로운 벡터 Q에 대하여, 벡터 OVq가 생성되고(Q로부터의 그들의 거리에 의해 순서결정되는, 레퍼런스 벡터 P의 인덱스들), 데이터세트 내의 OVi 벡터와 비교되어, 그들로부터 가장 유사한 Ei가 즉시 결정될 수 있는 가장 유사한 것들을 찾을 수 있다.
도 1a는 두 벡터 E1 및 E2 및, 그에 대해서 가장 유사한 벡터(E1 또는 E2)가 결정되어야 하는 질의 벡터 Q를 예시한다. 첫째로, 도 1b에 도시된 바와 같이 공간에 추가된 레퍼런스 벡터들의 세트(P1, P2 및 P3)를 사용하고, 각각의 벡터(E1 및 E2)와 레퍼런스 벡터(P1, P2 및 P3) 사이의 거리를 계산하며, 각각의 벡터 E(E1 및 E2)에 대하여, 도 1c 및 도 1d에 도시된 바와 같이 거리(해당 벡터와 레퍼런스 벡터 사이의 거리)에 의해 순서결정되는 레퍼런스 벡터의 ID들을 가지는 새로운 벡터 OV(OV1 및 OV2)를 생성함으로써, 더 작은 차원의 데이터베이스가 생성될 수 있다. 도 1c E1과 각각의 레퍼런스 벡터(P1, P2 및 P3) 사이의 거리가 계산되고, D1-1(E1과 P1 사이의 거리), D1-2(E1과 P2 사이의 거리) 및 D1-3(E1과 P3 사이의 거리)로 표시될 수 있다. 계산된 거리들은 정렬될 수 있고, 새로운 거리 벡터 OV1이, 가장 가까운 것부터 가장 먼 것까지의 레퍼런스 벡터들 P의 ID들을 가지고 생성될 수 있다. 도 1c에서, 최소 거리는 D1-1 이고, 그 다음이 D1-2 이며, 그 다음이 D1-3 이기 때문에, 벡터 OV1은 [1,2,3]이다. 도 1d에서, 동일한 프로시저가 E2에 대해서 수행될 수 있고, 결과적으로 얻어지는 벡터 OV2는 [3,2,1]이다. 동일한 프로시저가 큰 데이터세트 내의 모든 벡터 Ei에 대해서 수행될 수 있다.
도 1e는 질의 Q에 대해 수행된 동일한 프로시저를 나타내고, 그 결과 [1,2,3]인 벡터 OVq가 얻어진다. 결과적으로 얻어지는 벡터 OVq는 모든 다른 OV 벡터(OV1 및 OV2)와 비교될 수 있다. 이러한 예에서 가장 유사한 벡터는, 질의 벡터 Q가 E2보다 벡터 E1을 더 많이 의사한다는 것을 암시하는 [1,2,3]인 OV1이다.
원본 벡터 Ei의 차원이 클 수 있고, 벡터 Ei에 저장된 데이터가 부동 소수점 숫자에 의해 표현될 수 있는 반면에, 레퍼런스 벡터 P의 개수인, 새로운 OVi 벡터의 차원은 훨씬 더 작을 수 있고, 데이터가 자연수에 의해 표현될 수 있기 때문에, 검색될 데이터의 크기와 복잡도가 감소된다는 것이 인정될 수 있다.
출원인은, OV 벡터들의 데이터세트를 계층적 구조체에 저장하고, 가능하게는 검색을 레코드들의 서브세트로 감소시키면, 검색 성능이 향상될 수 있고, 양호한 응답 시간, 높은 쓰루풋 및 낮은 레이턴시가 제공될 수 있다는 것을 역시 깨달았다.
이제부터 참조할 도 2는, Ei 벡터의 데이터세트로부터 OVi 벡터의 계층적 데이터베이스를 구축하기 위하여, 본 발명의 일 실시예에 따라서 구성된 시스템에 의해 구현되는 흐름(200)의 개략도이다. 흐름(200)은 부동-소수점 숫자의 더 높은 차원의 벡터를 저장하는 전체 원본 데이터베이스에 사전에 한 번 실행될 수 있고, 자연수의 더 작은 차원의 벡터를 저장하는 새로운 계층적 데이터베이스를 생성할 수 있다.
이러한 전-처리 프로시저는 검색을 수행하기 위하여 필요한 공간을 원본 차원 S로부터 더 작은 차원 M으로 감소시킬 수 있다(M ≤ S). 이러한 프로시저는, 해당 공간 내의 각각의 원본 아이템에 대하여, M 개의 자연수의 벡터를 생성할 수 있다. 또한, 이러한 프로시저는 원본 공간의 이러한 몇 개의 벡터들을 더 낮은 차원의 거리 벡터의 빈 내에 클러스터링할 수 있고, 역에서 각각의 빈은 동일한 OV를 공유하는 원본 Ei 벡터들의 목록을 포함한다. 각각의 빈은 빈 ID 및 OV로 이루어지는 작은 기술자와 연관될 수 있다. 빈들의 새로운 구조체는 연상 메모리 어레이 내에 저장될 수 있고, 여기에서 질의와 유사한 빈들을 찾기 위한 연상 트리 검색이 복수 개의 빈에 대해 동시에 수행될 수 있다.
흐름의 입력(211)은, 각각의 벡터가 차원 S인, 즉 S 개의 부동 소수점 숫자를 포함하는, L 개의 벡터 Ei를 가지는 전체 원본 데이터세트를 포함한다. 단계 220에서, 시스템은 새로운 계층적 데이터베이스 내에 생성할 레벨의 개수 n, 및 제 1 레벨의 ID로 초기화될 수 있다. 계층적 데이터베이스 내의 레벨의 개수는 1 일 수도 있다는 것에 주의해야 한다.
단계 230에서, 시스템은 차원 S인 M 개의 Pj(j =1..M, M <= S) 레퍼런스 벡터를 선택하도록 구성될 수 있다. M 개의 Pj 레퍼런스 벡터를 선택하기 위한 프로시저가 이하 설명된다. 단계 240에서 시스템은 해당 레벨 내의 모든 빈에 대해 반복될 수 있고, 단계 250에서 시스템은 다음 레벨의 빈을 생성하도록 구성될 수 있다. 구체적으로 설명하면, 서브-단계 252에서, 시스템은, 도 1c 및 도 1d에 관하여 전술된 바와 같이, 각각의 레퍼런스 벡터 Pj(j = 1..M)까지의 거리 Di-j를 계산하고; 계산된 Di-j의 값들을 정렬하며, 각각의 벡터 Ei에 대하여, ID인 j를 가지는 새로운 벡터 OVi를 생성함으로써, 각각의 벡터 Ei(i = 1..l)에 대해서 순서결정된 벡터 OVi를 계산할 수 있다. 순서 벡터 OVi의 크기는 R(R ≤ M)일 수 있어서, 순서 벡터 OVi가 Di-j의 R 개의 최저 값만을 보유하고, 공간을 레퍼런스 벡터 Pi의 개수보다 적은 값으로 줄이게 된다는 것이 인정될 수 있다. 이러한 프로시저는 검색 공간을 적게 유지하면서도 많은 수의 레퍼런스 벡터를 선택하는 것을 지원할 수 있다. 서브-단계 254에서, 시스템은 모든 동일한 벡터 OVi를 별개의 빈에 클러스터링하고, 부모 및 자식 빈들 사이의 연관성을 추가하도록 구성될 수 있다. 각각의 생성된 빈은 빈 ID; 빈이 놓여 있는 레벨; 해당 빈 내에 클러스터링된 모든 벡터 Ei에 공통인 벡터 OV의 값, 및 해당 빈 내에 포함된 벡터 Ei를 가리키는 포인터들의 목록(예를 들어 값 i의 목록)을 포함할 수 있다.
단계 260에서, 시스템은, 계층적 데이터베이스의 최근에 생성된 레벨이 마지막 레벨이 되어야 하는지를 점검하도록 구성될 수 있다. 생성된 레벨이 마지막 레벨이 아니라면, 시스템은 계속해서 다음 레벨로 진행할 수 있고, 단계 230, 240 및 250으로 복귀하여 다음 레벨의 빈을 생성할 수 있다. 생성된 레벨이 마지막 레벨이라면, 시스템은 출력으로서, 빈 내에 정렬된 벡터 OVi의 계층적 데이터베이스(281)를 제공할 수 있다. 일 실시예에서, 계층적 데이터베이스(281)는, 복수 개의 열에 대하여 병렬 검색 동작을 수행할 수 있는 시스템의 연상 처리 유닛(APU) 내에 저장될 수 있고, 각각의 OV는 APU의 메모리 어레이의 하나의 열에 저장된다.
이제부터 참조할 도 3a는 세 개의 레벨(310, 320 및 330)에 정렬된 예시적인 계층적 데이터베이스(28)의 개략도이다. 제 1 레벨(310)은 Bin(1), Bin(2) 및 Bin(3)을 포함한다. 제 2 레벨(320)은 빈들의 다음 레벨을 포함한다. Bin(1) 아래의 다음 레벨은 Bin(1.1) 및 Bin(1.2)를 포함한다. 레벨들은 상이한 레벨 내의 빈들 사이의 부모 - 자식 연관성을 나타내는 선분에 의해 연결될 수 있다. 예를 들어, Bin(3.3.2)는 빈들의 제 3 레벨이고 제 2 레벨에 있는 Bin(3.3)의 자식이고, 이것은 또한 제 1 레벨에 있는 Bin(3)의 자식이다. 이러한 타입의 계층적 데이터베이스를 사용하면, OVq가 OVi의 서브세트에 비교되어야 하는 레코드들의 개수가 감소될 수 있다.
이제부터 참조할 도 3b는, APU(380) 내의 계층적 데이터베이스(281)의 배치의 개략도이다. 계층적 데이터베이스(281)의 세 개의 레벨(310, 320 및 330)이 APU(380)의 상이한 섹션에 저장될 수 있고, 각각의 섹션은 해당 레벨에서 검색이 수행될 때에 활성화될 수 있다. 데이터를 APU 내에 이렇게 배치하면, 어떤 섹션의 모든 열이 병렬적으로 검색되기 때문에, O(1)의 복잡도를 가지는 동시적 유사도 검색이 가능해질 수 있다.
이제부터 참조할 도 4는 흐름(200)(도 2)을 구현하는, 본 발명의 일 실시예에 따라 구성되고 동작하는 계층적 데이터베이스 빌더(400)의 개략도이다. 계층적 데이터베이스 빌더(400)는 레퍼런스 벡터 규정기(410); 순서 벡터 생성기(420) 및 빈 생성기(430)를 포함한다. 계층적 데이터베이스 빌더(400)는 입력으로서 수신된, S 차원의 벡터의 원본 데이터베이스(211)에 대하여 흐름(200)을 구현할 수 있고, 출력으로서 M 차원의 벡터의 계층적 데이터베이스(281)를 생성할 수 있다.
레퍼런스 벡터 규정기(410)는 다음 레벨을 생성하기 위하여 각각의 빈 내에서 사용될 레퍼런스 벡터 Pi를 규정할 수 있다. 레퍼런스 벡터 Pi는 레벨마다, 또는 빈마다 규정될 수 있다. 레퍼런스 벡터 규정기(410)는 랜덤 레퍼런스 벡터 Pi를 선택할 수 있거나, 클러스터링 방법(K-평균(means)과 유사함)을 사용하여 해당 빈과 연관된 레코드 Ei에 기반하여 레퍼런스 벡터 Pi를 생성할 수도 있다. 또는, 레퍼런스 벡터 규정기(410)는 고도로 정확한 검색 결과들의 작은 세트를 생성하는 레퍼런스 벡터들의 세트를 찾도록 훈련된 머신 러닝 애플리케이션을 사용할 수도 있다. 훈련된 이후에, 머신 러닝 애플리케이션은 해당 레벨에서 사용될 레퍼런스 벡터 Pi를 찾기 위하여, 빈에서 사용될 수 있다.
순서 벡터 생성기(420)는 흐름(200)의 단계 252를 구현하여, 임의의 주어진 벡터 Ei에 대하여, Ei로부터의 그들의 거리에 의해 순서결정된, 거리게 계산된 레퍼런스 벡터들의 ID들을 포함하는 순서 벡터 OVi를 계산할 수 있다.
빈 생성기(430)는 흐름(200)의 단계 254를 구현하여, 모든 유사한 OV를 단일 빈에 클러스터링할 수 있는데, 각각의 빈은 ID, 해당 빈을 표현하는 OV, 원본 Ei들에 대한 레퍼런스의 목록, 및 계층 구조 내의 해당 빈의 레벨의 표시를 포함한다. 빈 생성기(430)는 여러 접근법을 사용하여 OV들을 단일 빈에 클러스터링할 수 있다.
이제부터 참조할 도 5는 본 발명의 일 실시예에 따라 구성되는 시스템에 의해 구현되는 흐름(500)의 개략도이다. 흐름(500)은 입력(511)으로서 질의 Q를 수신할 수 있고, 계층적 데이터베이스(281)를 사용하여 데이터베이스(211) 내에서 질의 벡터 Q에 유사한 벡터 Ei를 찾을 수 있다.
단계 520에서, 시스템은 제로의 시작 레벨 및 모든 빈이 선택된 상태로 초기화될 수 있고, 즉 잠재적으로 데이터베이스(211)의 모든 벡터 Ei로 시작한다. 단계 530에서, 시스템은 서브-단계 252와 관련하여 설명된 것과 유사한 프로시저를 사용하여, 관련된 레퍼런스 벡터 Pi에 관련되고 질의 벡터 Q에 대한 OVq 벡터를 생성할 수 있고, 즉 시스템은 각각의 레퍼런스 벡터 Pj(j =1..M)까지의 거리 Dq-j를 계산하도록 구성될 수 있고, 계산된 Dq-j의 값들을 정렬할 수 있으며, Dq-j 중 R 개의 최저 값들의 ID인 j로 벡터 OVq를 생성할 수 있다.
단계 540에서 시스템은 해당 레벨 내의 모든 빈에 대해 반복될 수 있고, 단계 550에서 시스템은 처리된 레벨 내의 각각의 빈의 OVq와 OVi 사이에 유사도 검색을 수행할 수 있다. 단계 560에서, 유사도 점수는 미리 규정된 임계와 비교될 수 있다. 유사도 점수가 임계보다 높으면, 단계 564에서 처리된 빈은 선택된 상태를 유지할 수 있고, 이것은 해당 빈과 연관된 벡터 Ei가 질의 벡터 Q와 유사하다고 인식된다는 것을 나타낸다; 그러나, 유사도 점수가 미리 규정된 임계보다 작으면, 시스템은 단계 566에서 해당 빈을 제거할 수 있는데, 그 이유는 해당 빈과 연관된 벡터 Ei가 질의 벡터 Q와 다르게 인식되기 때문이다.
단계 570에서, 시스템은 검색이 데이터베이스의 마지막 레벨에 도달하였는지를 점검할 수 있다. 검색이 마지막 레벨에 도달하지 않았으면, 시스템은 580에서 레벨을 증분할 수 있고, 검색을 계속할 수 있다. 검색이 마지막 레벨에 도달했으면, 검색은 완료된 것으로 여겨지고, 시스템은 단계 592에서, 선택된 상태를 유지하는 빈에 의해 포인팅되는 모든 벡터 Ei를 반환할 수 있다. 복귀된 빈의 OV는 OVq와 유사하다는 것이 발견되고, 따라서 그러한 빈과 연관된 벡터 Ei는 질의 벡터 Q와 유사하다.
유사도 임계는 빈마다 또는 레벨마다 결정될 수 있고, 결과적으로 얻어지는 레코드 Ei의 세트가 너무 크면 변경될 수 있다(즉, 감소될 수 있음). 흐름(500)은 마지막 레벨을 포함하는 임의의 레벨에서 시작할 수 있고, 이것은 거리 유사도 검색이 모든 하위 레벨 빈(리프 빈(leaf bin))에 대해 수행되고, 트리가 잘리지 않는다(not pruned)는 것을 암시한다.
이제부터 참조할 도 6은 흐름(500)(도 5)을 구현하는, 본 발명의 일 실시예에 따라 구성되고 동작하는 유사도 검색기(600)의 개략도이다. 유사도 검색기(600)는 순서 벡터 생성기(420)(계층적 데이터베이스 빌더(400)에서 사용된 것과 유사함), 유사 순서 벡터 파인더(610) 및 빈 전환기(620)를 포함한다. 유사도 검색기(600)는 계층적 데이터베이스(281) 및 데이터베이스(211)와 통신할 수 있다.
순서 벡터 생성기(420)는 흐름(500)의 단계 530을 구현하여, 질의 벡터 Q로부터의 거리가 계산되는 레퍼런스 벡터 Pj의 ID를 포함하는 순서 벡터 OVq를 계산할 수 있다. 관련된 레퍼런스 벡터 Pj는 해당 빈을 구축하기 위하여 사용되는 동일한 레퍼런스 벡터일 수 있다.
유사 순서 벡터 파인더(610)는 연상 메모리에 저장되는 계층적 데이터베이스(281)내에서 유사도 검색을 수행할 수 있고, OVq와 가장 유사한 OV와 연관되는 빈을 찾기 위하여 흐름(500)을 구현할 수 있다. 유사도 검색은 어떤 레벨의 모든 빈들에 대해서 동시에 동작하고, 해당 레벨 내의 빈들의 개수와 무관하게, 유사 순서 벡터들 OVi의 세트를 단일 검색 동작에서 찾을 수 있다. 유사도 검색은, 해밍(hamming) 거리 알고리즘, 유클리드 거리 알고리즘, 인터섹션 유사도 알고리즘 등과 같은 임의의 유사도 알고리즘에 기반할 수 있다.
유사도 검색은 임의의 유사도 검색 알고리즘을 사용하여, 어떤 레벨의 모든 빈에 대해서 동시에 수행될 수 있다. APU(380)의 열에 저장되는 모든 벡터 OVi가 벡터 OVq와 동시에 비교될 수 있다. 해밍 알고리즘에서는, 유사도 점수가 벡터(즉 동일한 위치에 동일한 값을 가지는 벡터들) 내의 매칭 위치에 있는 매칭 값들의 개수일 수 있다. 교차 유사도 알고리즘에서는, 유사도 점수가, 위치를 무시한(즉, OV 내의 값들의 순서는 무시될 수 있고, 값들만이 고려될 수 있음) 매칭 값들의 개수일 수 있다. 모든 방법에서, 유사도 점수는 임계와 비교될 수 있고, 임계보다 큰 값을 가지는 것들만이 유사하다고 여겨질 수 있다.
빈 전환기(620)는 선택된 빈과 연관된 모든 벡터 Ei를 전달할 수 있다. 본 명세서에서 전술된 바와 같이, 그 순서 벡터가 질의 벡터 Q의 순서 벡터를 의사하는 빈들은 질의 벡터 Q를 의사하는 벡터 Ei를 포인팅한다.
본 명세서에서 전술된 바와 같이, 계층적 데이터베이스(281)를 APU(380)의 연상 메모리 어레이에 저장하면, O(1)의 복잡도인 동시적 유사도 검색이 가능해질 수 있다. 더욱이, 빈 기술자 크기가 작을 수 있고(예를 들어 64 비트), 따라서, 많은 수의 빈이, 어떤 레벨 내의 모든 빈에 걸쳐서 동시에 병렬적 연상 트리 검색을 수행할 수 있는 단일 APU 내에 저장될 수 있다.
이제부터 참조할 도 7a 및 도 7b는, 본 명세서에서 전술된 컴포넌트들과 다른, 본 발명의 일 실시예에 따라 구성되고 동작하는 유사도 검색 시스템(700)의 대안적인 두 개의 개략도이다. 유사도 검색 시스템(700)은, 원본 벡터를 저장하는 데이터베이스(211), 빈의 계층적 데이터베이스(281), 데이터베이스(211)로부터 데이터베이스(281)를 구축하기 위한 계층적 데이터베이스 빌더(400), 및 질의 벡터 Q를 수신하고 계층적 데이터베이스 빌더(400)에서 유사도 검색을 수행하여 질의 벡터 Q를 표현하는 순서 벡터와 유사한 빈들을 찾으며, 질의 벡터 Q에 가장 유사한 원본 벡터들 Ei의 세트를 제공하기 위한 유사도 검색기(600)를 포함한다.
본 명세서에서 전술된 예시적인 흐름에 대해서 표시된 단계들은 한정하려는 의도가 아니며, 변형되어 실시될 수 있다는 것이 인정될 수 있다. 이러한 변형은, 당업자에게 명백하게 이해될 수 있는 다른 변형들 중에서, 단계의 수가 늘어나는 것, 단계의 구사 줄어드는 것, 단계의 시퀀스를 변경하는 것, 및 단계를 생략하는 것을 포함할 수 있다.
비록 본 발명의 특정한 특징들이 본 명세서에서 예시되고 설명되었지만, 이제 많은 변형예, 치환예, 변경예, 및 균등물들이 당업자들에게 착안될 수 있을 것이다. 그러므로, 첨부된 청구항은 본 발명의 진정한 사상에 속하는 이러한 모든 변형예 및 변경예를 포함하는 의도를 가진다는 것이 이해되어야 한다.

Claims (16)

  1. 유사도 검색 시스템으로서,
    복수 개의 원본 벡터를 포함하는 데이터베이스;
    연상 메모리 어레이에 저장된 빈(bin)들의 계층적 데이터베이스 - 각각의 빈은 적어도 하나의 원본 벡터를 표현하는 순서 벡터(order vector)에 의해 식별되고, 상기 순서 벡터의 차원은 상기 원본 벡터의 차원보다 작음 -; 및
    상기 데이터베이스에서, 그 순서 벡터가 질의 벡터(query vector)를 표현하는 순서 벡터를 의사하는(resemble) 적어도 하나의 유사 빈(similar bin)을 검색하고, 상기 빈에 의해 표현되는 상기 적어도 하나의 원본 벡터를 제공하기 위한 유사도 검색기 - 상기 원본 벡터는 상기 질의 벡터를 의사함 -를 포함하는, 유사도 검색 시스템.
  2. 제 1 항에 있어서,
    상기 계층적 데이터베이스의 빈은 상기 연상 메모리 어레이의 열에 저장되고, 상기 유사도 검색기는 복수 개의 상기 열에서 동시에 동작하는, 유사도 검색 시스템.
  3. 제 2 항에 있어서,
    상기 계층적 데이터베이스는 레벨들로 정렬되고,
    각각의 레벨은 상기 연상 메모리 어레이의 상이한 섹션에 저장되는, 유사도 검색 시스템.
  4. 제 1 항에 있어서,
    상기 유사도 검색 시스템은,
    상기 원본 벡터의 데이터베이스로부터, 상기 빈의 계층적 데이터베이스를 구축하기 위한 계층적 데이터베이스 빌더를 더 포함하는, 유사도 검색 시스템.
  5. 제 4 항에 있어서,
    상기 계층적 데이터베이스 빌더는,
    상기 원본 벡터의 차원에서 레퍼런스 벡터들의 세트를 규정하기 위한 레퍼런스 벡터 규정기;
    각각의 원본 벡터에 대하여, 각각의 레퍼런스 벡터까지의 거리를 계산하고, 상기 원본 벡터로부터의 상기 레퍼런스 벡터의 거리에 의해 순서결정되는 상기 레퍼런스 벡터의 ID를 포함하는 순서 벡터를 생성하기 위한, 순서 벡터 생성기; 및
    적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되는 빈을 생성하기 위한 빈 생성기를 포함하는, 유사도 검색 시스템.
  6. 제 5 항에 있어서,
    상기 계층적 데이터베이스 빌더는 또한,
    하나의 순서 벡터를 공유하는 상이한 원본 벡터들을 표현하는 순서 벡터들을 단일 빈에 클러스터링하기 위한 것인, 유사도 검색 시스템.
  7. 제 1 항에 있어서,
    상기 계층적 데이터베이스는 적어도 두 개의 레벨을 포함하고,
    임의의 레벨 내의 빈은 하위 레벨 내의 빈과 연관되는, 유사도 검색 시스템.
  8. 제 7 항에 있어서,
    상기 유사도 검색기는, 상기 검색을 상기 계층적 데이터베이스의 첫 번째 레벨에서 시작하고, 상기 첫 번째 레벨에서 발견된 빈과 연관된 하위 레벨 내의 빈에서 검색을 계속하기 위한 것인, 유사도 검색 시스템.
  9. 원본 벡터의 데이터베이스에서 하나의 질의 벡터와 유사한 벡터들의 세트를 찾는 방법으로서,
    레퍼런스 벡터들의 세트에 접근하는 단계;
    상기 레퍼런스 벡터를 사용하여, 상기 질의 벡터와 연관된 질의 순서 벡터를 생성하는 단계 - 상기 질의 순서 벡터의 차원은 상기 질의 벡터의 차원보다 작음 -; 및
    연상 메모리 어레이에 저장된 빈들의 계층적 데이터베이스에서 그 순서 벡터가 상기 질의 순서 벡터를 의사하는 적어도 하나의 유사 빈을 검색하는 단계 - 저장된 빈들의 각각의 빈은 적어도 하나의 원본 벡터를 표현하고 상기 레퍼런스 벡터들의 세트를 사용하여 생성되는 순서 벡터에 의해 식별됨 -; 및
    상기 유사 빈에 의해 표현되는 상기 적어도 하나의 원본 벡터를 제공하는 단계 - 상기 원본 벡터는 상기 질의 벡터를 의사함 -를 포함하는, 벡터들의 세트를 찾는 방법.
  10. 제 9 항에 있어서,
    상기 계층적 데이터베이스는 빈을 상기 연상 메모리 어레이의 열에 저장하고,
    상기 검색하는 단계는 복수 개의 상기 열에서 동시에 동작하는, 벡터들의 세트를 찾는 방법.
  11. 제 10 항에 있어서,
    상기 방법은,
    상기 계층적 데이터베이스를 레벨들로 정렬하고, 각각의 레벨은 상기 연상 메모리 어레이의 상이한 섹션에 있는, 벡터들의 세트를 찾는 방법.
  12. 제 9 항에 있어서,
    상기 방법은,
    상기 원본 벡터의 데이터베이스로부터, 상기 빈의 계층적 데이터베이스를 구축하는 단계를 더 포함하는, 벡터들의 세트를 찾는 방법.
  13. 제 12 항에 있어서,
    상기 계층적 데이터베이스를 구축하는 단계는,
    상기 원본 벡터의 차원에서 상기 레퍼런스 벡터들의 세트를 규정하는 것;
    각각의 원본 벡터에 대하여, 각각의 레퍼런스 벡터까지의 거리를 계산하고, 상기 원본 벡터로부터의 상기 레퍼런스 벡터의 거리에 의해 순서결정되는 상기 레퍼런스 벡터의 ID를 포함하는 순서 벡터를 생성하는 것; 및
    적어도 하나의 원본 벡터를 표현하는 순서 벡터에 의해 식별되는 빈을 생성하기 위한 빈 생성기를 포함하는, 벡터들의 세트를 찾는 방법.
  14. 제 13 항에 있어서,
    상기 방법은,
    하나의 순서 벡터를 공유하는 상이한 원본 벡터들을 표현하는 순서 벡터들을 단일 빈에 클러스터링하는 단계를 더 포함하는, 벡터들의 세트를 찾는 방법.
  15. 제 9 항에 있어서,
    상기 계층적 데이터베이스는 적어도 두 개의 레벨을 포함하고,
    임의의 레벨 내의 빈은 하위 레벨 내의 빈과 연관되는, 벡터들의 세트를 찾는 방법.
  16. 제 15 항에 있어서,
    상기 검색하는 단계는,
    상기 계층적 데이터베이스의 첫 번째 레벨에서 시작하고, 상기 첫 번째 레벨에서 발견된 빈과 연관된 하위 레벨 내의 빈에서 검색을 계속하는 것을 포함하는, 벡터들의 세트를 찾는 방법.
KR1020200081545A 2019-07-08 2020-07-02 레퍼런스 거리 유사도 검색 KR20210006852A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962871212P 2019-07-08 2019-07-08
US62/871,212 2019-07-08
US202063003314P 2020-04-01 2020-04-01
US63/003,314 2020-04-01

Publications (1)

Publication Number Publication Date
KR20210006852A true KR20210006852A (ko) 2021-01-19

Family

ID=74006027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200081545A KR20210006852A (ko) 2019-07-08 2020-07-02 레퍼런스 거리 유사도 검색

Country Status (3)

Country Link
US (1) US20210011910A1 (ko)
KR (1) KR20210006852A (ko)
CN (1) CN112199408A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210318805A1 (en) * 2021-06-25 2021-10-14 Intel Corporation Method and apparatus to perform batching and striping in a stochastic associative memory to avoid partition collisions
JP2023086507A (ja) * 2021-12-10 2023-06-22 キオクシア株式会社 情報処理装置および方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988106B2 (en) * 2003-07-09 2006-01-17 Cisco Technology, Inc. Strong and searching a hierarchy of items of particular use with IP security policies and security associations
EP2518656B1 (en) * 2011-04-30 2019-09-18 Tata Consultancy Services Limited Taxonomic classification system
GB201210702D0 (en) * 2012-06-15 2012-08-01 Qatar Foundation A system and method to store video fingerprints on distributed nodes in cloud systems
US10395060B2 (en) * 2016-10-17 2019-08-27 Microsoft Technology Licensing, Llc Multiple message retrieval for secure electronic communication
JP6311000B1 (ja) * 2016-12-19 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10514914B2 (en) * 2017-08-29 2019-12-24 Gsi Technology Inc. Method for min-max computation in associative memory

Also Published As

Publication number Publication date
CN112199408A (zh) 2021-01-08
US20210011910A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
Norouzi et al. Fast exact search in hamming space with multi-index hashing
Pan et al. Fast GPU-based locality sensitive hashing for k-nearest neighbor computation
Andoni et al. Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions
Aly et al. Distributed kd-trees for retrieval from very large image collections
Xia et al. Joint inverted indexing
Wang et al. Trinary-projection trees for approximate nearest neighbor search
KR102092263B1 (ko) 일정한 처리 시간 내에 k개의 극값을 찾는 방법
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
Min et al. Compact projection: Simple and efficient near neighbor search with practical memory requirements
Wang et al. Fast neighborhood graph search using cartesian concatenation
Zhang et al. A unified approximate nearest neighbor search scheme by combining data structure and hashing
KR20210006852A (ko) 레퍼런스 거리 유사도 검색
Li et al. Two-stage hashing for fast document retrieval
Xiao et al. A K-Farthest-Neighbor-based approach for support vector data description
Agrawal et al. A novel algorithm for automatic document clustering
JP2017045291A (ja) 類似画像検索システム
Amorim et al. A fast similarity search knn for textual datasets
Chiu et al. Approximate asymmetric search for binary embedding codes
Yan et al. Fast approximate matching of binary codes with distinctive bits
Rahman et al. Hybrid approximate nearest neighbor indexing and search (HANNIS) for large descriptor databases
Belarbi et al. Web-based multimedia research and indexation for big data databases
Feng et al. Effective optimizations of cluster-based nearest neighbor search in high-dimensional space
Xie et al. Data-dependent locality sensitive hashing
Yuan et al. A novel index structure for large scale image descriptor search
Avrithis et al. High-dimensional approximate nearest neighbor: kd Generalized Randomized Forests

Legal Events

Date Code Title Description
A201 Request for examination