KR101958939B1 - 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법 - Google Patents

벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법 Download PDF

Info

Publication number
KR101958939B1
KR101958939B1 KR1020170041017A KR20170041017A KR101958939B1 KR 101958939 B1 KR101958939 B1 KR 101958939B1 KR 1020170041017 A KR1020170041017 A KR 1020170041017A KR 20170041017 A KR20170041017 A KR 20170041017A KR 101958939 B1 KR101958939 B1 KR 101958939B1
Authority
KR
South Korea
Prior art keywords
vector
candidate
residual
order
query
Prior art date
Application number
KR1020170041017A
Other languages
English (en)
Other versions
KR20180110959A (ko
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 오드컨셉 주식회사
Priority to KR1020170041017A priority Critical patent/KR101958939B1/ko
Priority to US16/499,789 priority patent/US11436228B2/en
Priority to PCT/KR2017/006450 priority patent/WO2018182093A1/ko
Priority to JP2019554379A priority patent/JP7006966B2/ja
Publication of KR20180110959A publication Critical patent/KR20180110959A/ko
Application granted granted Critical
Publication of KR101958939B1 publication Critical patent/KR101958939B1/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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • 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

Abstract

본 발명은 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(NNS) 방법에 관한 것이다. 본 발명은 후보 데이터 셋에서 쿼리의 최근접 이웃을 검색하기 위한 후보 벡터의 부호화 방법에 있어서 입력 벡터(이때, 최초의 입력 벡터는 상기 후보 벡터)를 정규화하여 방향 벡터 및 벡터 에너지를 획득하는 정규화 단계, 상기 방향 벡터를 양자화하여 코드워드와 잔차 벡터를 획득하는 양자화 단계, 상기 잔차 벡터를 상기 입력 벡터로 하여, 상기 정규화 단계 및 상기 양자화 단계를 기 설정된 부호화 차수만큼 반복 수행하는 단계, 상기 반복 수행에 의한 하나 이상의 코드워드 및 하나 이상의 벡터의 에너지를 이용하여 상기 후보 벡터를 부호화하는 단계를 포함하는 것을 일 특징으로 한다. 본 발명에 의하면, 에너지 값의 범위가 매우 큰 데이터 셋을 효과적으로 근사하고, 더 높은 정밀도를 얻을 수 있다.

Description

벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(NNS) 방법{METHOD FOR ENCODING BASED ON MIXTURE OF VECTOR QUANTIZATION AND NEAREST NEIGHBOR SEARCH USING THEREOF}
본 발명은 정보 검색, 멀티미디어 검색에 관한 것으로, 보다 상세하게는 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(NNS) 방법에 관한 것이다.
최근접 이웃 검색(NNS) 방법은 컴퓨터의 많은 분야에서 중점적으로 연구되고 있는 방법으로, 이는 데이터베이스, 기계 학습, 컴퓨터 시작, 및 정보 검색과 같은 광범위한 분야에서 기초적인 역할을 수행한다. 최근접 이웃 검색(NNS) 문제는 다음과 같이 간단히 정의될 수 있다. 쿼리 q ∈RD 및 쿼리와 동일한 차원의 후보 벡터 n개가 주어져있을 때, 최근접 이웃 검색(NNS) 문제는 특정 메트릭(일반적으로 l1-거리 또는 l2-거리)에 따라 공간적으로 가장 가까운 쿼리에 대한 샘플을 반환해야 한다.
최근접 이웃은 전체 후보 셋을 선형 스캔(탐색)하는 것에 의해 식별될 수 있으나, 선형 탐색의 시간 복잡도는 O(n·D)이다. 선형 탐색의 시간 복잡도는 차원 및 데이터 셋의 규모 모두에 선형적으로 증가하지만, 차원과 데이터가 모두 증가할 경우, 시간 복잡도는 실제로 2차적으로 증가한다. 따라서 실시간 검색은 고차원, 대규모, 고밀도 벡터 공간에서는 거의 불가능하다. 이러한 경우 K-D트리, R-트리, 및 Locality Sensitive Hashing(LSH) 등의 대부분의 전통적인 방법으로는 만족스러운 결과를 얻을 수 없다.
최근 몇 년에 들어 벡터 양자화에 기초한 방법이 간단한 계산, 훨씬 더 낮은 공간 복잡도, 및 도차원 데이터에서의 양호한 결과로 인해 점점 더 대중화되고 있다. 대표적인 방법으로는, 프로덕트 양자화기(Product Quantizer, PQ), 덧셈 양자화기(Additive Quantizer, AQ), 그리고 결합 양자화기 (Combined Quantizer, CQ)가 있다.
PQ는 고차원 벡터를 여러 세그먼트로 분해한다. 각 세그먼트(서브-벡터)는 해당 서브-공간에서 훈련된 양자화기에 의해 양자화된다. 마지막으로, 원본 벡터는 이들 서브-공간 양자화기로부터 일련의 최근접 코드워드들의 연결에 의해 근사화된다. 쿼리와 후보 벡터들 사이의 거리는 쿼리와 서브-공간에서의 최근접 코드워드 사이의 거리에 의해 근사화된다.
PQ와는 달리, AQ 및 CQ는 벡터를 세그먼트로 나누지 않는다. 둘 다 동일한 차원에 있는 여러 요소 벡터들의 합으로 벡터를 나타낸다. 이러한 요소 벡터는 일련의 사전 훈련된 코드북 중에서 선택된다. (최대 하나의 벡터가 하나의 코드북에서 선택된다.)
PQ와 유사하게, 쿼리와 후보 벡터들 간의 거리는 쿼리와 선택된 요소 벡터들 간의 거리의 합에 의해 근사화되며, 이는 룩업 테이블을 확인하여 효율적으로 계산될 수 있다.
양자화 접근법은 두 가지 장점을 갖고 있다. 한 가지는 후보 벡터들이 압축(일반적으로 메모리 소비가 한 자릿수만큼 감소)되어 빠른 검색을 지원하기 위해 전체 참조 셋을 메모리에 로드할 수 있다는 점이다. 다른 하나는 쿼리와 전체 후보 간 거리 계산은 쿼리와 코드북 코드워드 사이의 거리 계산에 의해 근사화될 때 매우 효율적이라는 점이다.
그러나 이러한 양자화에 기초한 방법에서는 인덱싱되어야 할 데이터에 암시적 가정이 주어져야 한다. 계산 비용의 문제로 인해 매우 제한된 수의 코드워드만 양자화에 사용되기 때문에, 양자화는 넓은 에너지 스펙트럼에 걸쳐있는 모든 벡터들의 제대로된 근사치를 구할 수 없다.
예를 들어, 주어진 벡터[0.1,0.03,---]1 × 128및 [55,122,---]1×128의 벡터 길이는 상당히 다르다. 큰 에너지 차이로 인해 기존의 방법으로는 그 중 하나의 벡터만 근사할 수 있고, 다른 하나의 벡터를 근사할 수 없게 된다. 결과적으로 AQ, CQ와 PQ에 대해, 에너지 분포가 넓은 범위에 걸쳐있는 일반적인 경우에는 낮은 근사 오차를 달성하기가 거의 어렵다. 나아가, AQ, CQ 및 PQ와 같은 현재의 압축방식은 벡터 부호화 이슈만을 언급하고 있다. 그 중 어느 하나로 최근접 이웃 검색(NNS)을 수행할 때, 쿼리와 부호화된 후보 간의 비교는 불가피하며, 이러한 방법을 대규모의 검색 작업으로 확장하기는 어렵다.
본 발명은 전술한 문제를 해결하기 위한 것으로, 에너지 값의 범위가 매우 큰 데이터 셋을 효과적으로 근사하고, 더 높은 정밀도를 얻을 수 있는 부호화 방법을 제공하는 것을 일 목적으로 한다.
또한, 본 발명은 역 리스트의 인덱스를 구축할 수 있는 부호화 방법을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 벡터 양자화를 위한 부호화 훈련 및 양자화 과정을 간소화하고, 높은 부호화 정확성을 얻을 수 있는 부호화 방법을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 쿼리와 후보 벡터의 거리 계산을 간소화하고 검색 속도를 개선할 수 있는 최근접 이웃 검색 방법을 제공하는 것을 또 다른 목적으로 한다.
이러한 목적을 달성하기 위한 본 발명은 후보 데이터 셋에서 쿼리의 최근접 이웃을 검색하기 위한 후보 벡터의 부호화 방법에 있어서 입력 벡터(이때, 최초의 입력 벡터는 상기 후보 벡터)를 정규화하여 방향 벡터 및 벡터 에너지를 획득하는 정규화 단계, 상기 방향 벡터를 양자화하여 코드워드와 잔차 벡터를 획득하는 양자화 단계, 상기 잔차 벡터를 상기 입력 벡터로 하여, 상기 정규화 단계 및 상기 양자화 단계를 기 설정된 부호화 차수만큼 반복 수행하는 단계, 상기 반복 수행에 의한 하나 이상의 코드워드 및 하나 이상의 벡터의 에너지를 이용하여 상기 후보 벡터를 부호화하는 단계를 포함하는 것을 일 특징으로 한다.
또한, 본 발명은 후보 데이터 셋에서 쿼리의 최근접 이웃을 검색하는 방법에 있어서, 상기 쿼리를 정규화 및 양자화하여 획득한 하나 이상의 코드워드를 포함하는 역 리스트의 인덱싱 키와 상기 쿼리 간 거리를 계산하는 단계, 상기 계산된 거리를 오름차순으로 정렬하여, 정렬된 거리가 상위 특정 백분위 이내인 역 리스트를 후보 연결 리스트로 설정하는 단계, 상기 후보 연결 리스트에 포함된 후보 벡터와 상기 쿼리 간 거리를 계산하여 상기 최근접 이웃을 획득하는 단계를 포함하는 것을 일 특징으로 한다.
전술한 바와 같은 본 발명에 의하면, 에너지 값의 범위가 매우 큰 데이터 셋을 효과적으로 근사하고, 더 높은 정밀도를 얻을 수 있다.
또한, 본 발명에 의하면, 역 리스트의 인덱스를 구축할 수 있다.
또한, 본 발명에 의하면, 벡터 양자화를 위한 부호화 훈련 및 양자화 과정을 간소화하고, 높은 부호화 정확성을 얻을 수 있다.
또한, 본 발명에 의하면, 쿼리와 후보 벡터의 거리 계산을 간소화하고 검색 속도를 개선할 수 있다.
도 1은 본 발명의 일 실시 예에 의한 최근접 이웃 검색 방법을 개략적으로 설명하기 위한 순서도,
도 2은 본 발명의 일 실시 예에 의한 정규화 벡터 양자화를 설명하기 위한 도면,
도 3는 본 발명의 일 실시 예에 의한 재귀적 근사화를 설명하기 위한 도면,
도 4는 본 발명의 일 실시 예에 의한 벡터 양자화의 혼합에 기초한 부호화 결과를 HKM과 비교하기 위한 도면,
도 5는 벡터 양자화의 혼합에 기초한 벡터 부호화 방법을 설명하기 위한 순서도,
도 6은 본 발명의 일 실시 예에 의한 벡터 부호화 방법을 설명하기 위한 도면,
도 7은 SIFT1M 및 GIST1M 데이터 셋에서 본 발명의 일 실시 예에 의한 벡터 양자화의 혼합에 기초한 부호화에 따른 결과를 IVFPQ, IVFRVQ, IMI의 결과와 대비하기 위한 도면,
도 8은 본 발명의 일 실시 예에 의한 벡터 양자화의 혼합에 기초한 부호화를 이용한 최근접 이웃 검색 방법을 설명하기 위한 순서도이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다.
도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다.
전술한 문제를 해결하기 위해 본 발명은 잔차 벡터 양자화(Residual Vector Quantization, RVQ)에 기초한 방법을 제안하고 있다. 본 발명은 두 가지 측면, 부호화 및 인덱싱 단계 모두에서 최근접 이웃 검색(NNS)의 문제를 해결하는 것을 목적으로 한다.
RVQ는 전 단계의 벡터 양자화에서 얻어낸 잔차 벡터를 재귀 양자화하여 원본 벡터에 접근하는 방법이다. 시험 결과에 의하면 간단한 훈련으로 간단한 RVQ가 복잡한 훈련이 요구되는 AQ, CQ 및 SQ과 비슷한 결과를 얻게 할 수 있다는 사실이 도출되었다.
또한, 본 발명은 종래의 RVQ를 개선하여, 벡터의 에너지가 넓은 범위에 걸쳐 인덱싱된 경우에도 적용 가능하다.
본 발명의 일 실시 예에 따른 재귀 정규화된 벡터 양자화(Recursive Normalized Vector Quantization, 이하 ‘RNQ’라 함)방법은 벡터와 잔차 벡터를 양자화하기 전에 정규화를 수행하고, 벡터의 방향과 에너지를 얻은 후에, 벡터의 방향과 에너지를 각각 양자화(부호화)한다.
본 발명에 의한 빠른 최근접 이웃 검색(NNS) 방법은 RVQ 및 RNQ를 혼합한 부호화 방식을 사용하고 있다. 구체적으로, 더 낮은 차수의 잔차 벡터는 RVQ에 의해 부호화 된다. 나머지 더 높은 차수의 잔차 벡터는 RNQ로 부호화 된다. 이 디자인은 RVQ의 낮은 차수 부호화 효율성과 RNQ의 낮은 부호화 오차의 장점을 모두 갖는다. 온라인 검색에서 낮은 차수의 RVQ 코드는 역 리스트(inverted list)의 인덱싱 키로 결합된다.
본 발명은 구별성 있는 인덱싱 키 값을 생성하여 최근접 이웃 검색(NNS)의 속도를 높이기 위해 RVQ 코드북 설정(부호화 설정)에 대한 포괄적인 연구를 진행한 결과에 관한 것이다.
각 차수의 코드북 크기를 신중하게 구성하면 부호화 오류가 상당히 감소한다. 본 발명은 정교한 가중치 체계보다 더 중요하다. 본 발명의 내용과 관련하여, 우리는 작은 코드북의 다중 차수(multiple orders)으로부터 반전된 키(inverted key)를 만드는 것이 큰 코드북의 단일 차수(single order)에서 키를 만드는 것 보다 더 유리하다는 것을 발견하였다. 전자는 현저하게 낮은 양자화 비용과 부호화 오차로 이어지기 때문이다. 또한 이러한 다차원 키 생성 방식(multi-order key generation scheme)을 이용하여 조(trillion)단위 수준의 검색 작업으로 확장하는 것이 매우 편리하다는 것이 밝혀졌다.
트리 분할 접근법의 주요 단점은 많은 메모리를 요구한다는 점이다. 한편으로는 빠른 비교를 지원하기 위해 모든 후보 벡터가 메모리에 로드되는데, 다른 한편으로는 인덱싱에 사용되는 트리 노드가 상당한 양의 추가 메모리를 차지한다. 전반적으로 메모리 소비가 참조 셋의 크기보다 크다.
트리 분할 접근법과는 별도로 최근접 이웃 검색(NNS)에 지역 민감성 해시(LSH)를 적용하고자 하는 몇가지 시도가 있었다. 일반적으로 검색 단계에는 두 단계가 있다. 단계 1은 쿼리와 동일하거나 유사한 해시키를 공유하는 후보를 수집하고, 단계 2는 최근접 이웃을 찾기 위해 쿼리와 모든 선택된 후보를 일일이 비교한다. 지역 민감성 해시(LSH)는 대량적인 최근접 이웃을 요구하는 애플리케이션에 적합하다. 또한, 단계 2에서 빠른 비교를 지원하기 위하여 전체 참조 셋을 메모리에 로드해야하므로, 많은 메모리가 소비된다.
최근 몇 년간 NNS의 문제는 벡터 양자화에 의해 다루어졌다. 프로덕트 양자화기를 적용하는 기술은 수십년 된 문제를 해결하는 새로운 방법을 열어주었다.
본 발명에 의한 쿼리의 최근접 이웃 검색은 크게 도 1에 도시된 바와 같이 후보 벡터를 벡터 양자화(RVQ 및 RNQ)의 혼합에 기초한 부호화를 통해 압축하고(S10), 압축된 후보 벡터를 이용하여 쿼리의 최근접 이웃을 검색(S20)하여 이루어지는 것일 수 있다. 또한 단계 20에서 압축된 후보 벡터와 쿼리 사이의 거리는 코드워드와 쿼리 사이의 거리에 의해 근사화되는 것일 수 있다.
이하에서는 도 2 내지 도 7을 참조하여, 본 발명의 일 실시 예에 따른 단계 10에서의 벡터 양자화의 혼합에 기초한 부호화를 살펴보고, 도 8을 참조하여 이를 이용한 최근접 이웃 검색 방법에 대해 보다 자세하게 살펴보기로 한다.
벡터 양자화의 혼합에 기초한 부호화를 설명하기 위하여, 본 명세서에서는 먼저 잔차 벡터 양자화(RVQ)를 검토하고, 다음으로 잔차 벡터가 각 단계에서 양자화되기 전에 정규화되는 RVQ의 변형(RNQ)을 제시한다. 나아가, 압축되지 않은 쿼리와 RVQ 및 RNQ로 압축된 후보 벡터 간의 거리 계산 방법이 제시된다.
A. 잔차 벡터 양자화( RVQ )
여러 벡터의 합성에 의해 벡터를 근사화하는 아이디어는 “2단계 잔차 벡터 양자화”의 설계로 거슬러 올라갈 수 있다. 이 방법에서, 입력 벡터는 양자화기에 의해 부호화되고, 그것의 잔차(양자 오차)는 다른 양자화기에 의해 순차적으로 부호화된다. 이 기법은 이전의 양자화 단계에서 남겨진 잔차 벡터가 재귀적으로 양자화되는 여러 차수(단계)로 확장되었다.
후보 벡터(이하, 벡터라 함)를
Figure 112017031445762-pat00001
, 일련의 코드북을
Figure 112017031445762-pat00002
라고 할 때, 벡터 v는 이러한 코드북의 코드워드 구성에 의해 근사화된다. 특히, 하나의 코드워드는 한 단계의 코드북 중에서 선택된다. 이 재귀적 양자화가 k번째 단계까지 반복되면 벡터 v는 다음 수학식 1과 같이 근사화된다.
Figure 112017031445762-pat00003
수학식 1에서, 단계 m에서의
Figure 112017031445762-pat00004
은 m-1 단계에서 수집된 잔차
Figure 112017031445762-pat00005
에서 훈련된 것이다.
몇 가지 기법이 RVQ의 양자화 오차를 감소시키기 위해 제안되었다. C. F. Barnes, S. A. Rizvi, and N. M. Nasrabadi, “Advances in residual vector quantization: a review.,” IEEE Transactions on Image Processing, vol. 5, no. 2, pp. 226262, 1996. 으로 특정되는 문헌(이하, 선행문헌 1) 및 W.-Y. Chan and A. Gersho, “Enhanced multistage vector quantization with constrained storage,” in Twenty-Fourth Asilomar Conference on Signals, System and Computing, pp. 659663, Nov. 1990. 으로 특정되는 문헌(이하, 선행문헌 2) 에 따르면, 다중 단계의 코드북들은 그들을 공동으로 훈련하는 것에 의해 최적화되었다.
본 발명의 일 실시 예에서, 우리는 RVQ의 단순 실시만을 고려하였으며, 각 단계에서의 코드북은 이전 단계에서 수집한 잔차들로부터 독립적으로 훈련된 것이다. 선행문헌 1 및 선행문헌 2에서 제안된 공동 최적화는 성능을 더욱 강화시킬 수 있다.
단순하지만, RVQ는 AQ 및 CQ와 같은 최근의 구성적 압축 접근법에 비해 장점이 있다. 이러한 방법의 경우, 벡터의 에너지는 서로 다른 양자화기에 무작위로 분배된다. AQ, CQ 또는 PQ와 달리, RVQ는 낮은 단계의 양자화기에서 더 많은 원본 벡터의 에너지를 유지한다.
RVQ는 실제로 원본 벡터에 대해 coarse-to-fine 압축을 형성한다. 다시 말해서, 더 낮은 단계의 코드는 더 높은 단계의 코드보다 더 많은 정보를 전달한다. 결과적으로, 하위 단계의 코드는 역 파일(inverted files)을 생성하는 인덱싱 키로 사용하기에 특히 적합하므로 빠른 ANN 검색을 가능하게 한다.
한편, 이 코드들은 다른 역 리스트에 벡터들이 듬성듬성 분포되도록 공간을 최대한 분할할 수 있다. 다른 한 편으로는 인덱싱 키의 길이는 최소한으로 제어되어, 역 파일 구조의 규모를 가능한 작게 만든다.
B. 재귀적 정규화 벡터 양자화( RNQ )
한 양자화 단계에서 사용할 수 있는 코드워드의 수가 제한되어 있기 때문에, 각 단계에서의 잔여 공간이 제대로 양자화되지 않을 수 있다. 이것은 잔차의 에너지가 넓은 범위에 걸쳐있을 때 특히 그러하다. 이 문제를 해결하기 위해, 본 발명의 일 실시 예에 따르면 양자화로 제공하기 전에 잔차 벡터를 l2-정규화하는 것이 바람직하다. 다시 말해서, 벡터의 에너지와 그 단위 길이 벡터는 별도로 양자화되므로, 양자화가 용이해진다.
벡터
Figure 112017031445762-pat00006
라고 하면,
Figure 112017031445762-pat00007
이며,
Figure 112017031445762-pat00008
는 벡터의 에너지를 유지한다. AQ, PQ, 및 CQ와는 다르게, 벡터의 에너지
Figure 112017031445762-pat00009
와 정규화된 벡터(즉, 방향 벡터)
Figure 112017031445762-pat00010
는 별도로 부호화될 것이다.
Figure 112017031445762-pat00011
가 스칼라값이기 때문에,
Figure 112017031445762-pat00012
는 부호화 및 인덱싱이 용이하다.
이하에서는 단위 길이 벡터
Figure 112017031445762-pat00013
를 어떻게 부호화하는가에 대해 중점적으로 설명한다.
기 훈련된 코드북
Figure 112017031445762-pat00014
이고,
Figure 112017031445762-pat00015
이다. 양자화 함수 Q(x, V)는 벡터 x를 위한 코드북 V로부터 최근접 이웃을 반환한다. 따라서 벡터 u는 다음 수학식 2와 같이 나타난다.
Figure 112017031445762-pat00016
Figure 112017031445762-pat00017
이고,
Figure 112017031445762-pat00018
이 벡터
Figure 112017031445762-pat00019
에 직교(orthogonal)하는 잔차 벡터인 경우,
Figure 112017031445762-pat00020
임을 고려하면, 위 수학식 2는 수학식 3과 같이 정리할 수 있다.
Figure 112017031445762-pat00021
도 2는 (a)는 벡터
Figure 112017031445762-pat00022
,
Figure 112017031445762-pat00023
,
Figure 112017031445762-pat00024
및 그들의 관계를 2차원 공간에 도시한 것이다. 잔차 벡터
Figure 112017031445762-pat00025
는 동일한 방식으로 더 근사화될 수 있다.
Figure 112017031445762-pat00026
임을 고려하여,
Figure 112017031445762-pat00027
Figure 112017031445762-pat00028
의 에너지를 유지하고,
Figure 112017031445762-pat00029
Figure 112017031445762-pat00030
-정규화 벡터인 경우,
Figure 112017031445762-pat00031
은 다음 수학식 4와 같이 근사화된다.
Figure 112017031445762-pat00032
Figure 112017031445762-pat00033
가 다른 코드북
Figure 112017031445762-pat00034
에서
Figure 112017031445762-pat00035
에 가장 근접한 코드워드인 경우,
Figure 112017031445762-pat00036
는 다음 수학식 5와 같이 나타난다.
Figure 112017031445762-pat00037
마찬가지로 부호화 프로세스를 수학식 6과 같이 더 높은 차원으로 확장시키는 것은 매우 자연스럽다.
Figure 112017031445762-pat00038
4차수에서 근사화를 멈춘 경우, 우리는 다음 수학식 7을 얻을 수 있다.
Figure 112017031445762-pat00039
이 벡터
Figure 112017031445762-pat00040
의 근사는
Figure 112017031445762-pat00041
로 표시된다. 수학식 7에서
Figure 112017031445762-pat00042
Figure 112017031445762-pat00043
는 벡터
Figure 112017031445762-pat00044
과 코드워드
Figure 112017031445762-pat00045
사이의 코사인과 사인이다. 결과적으로, 그들은 결합된다. 그 중 하나가 알려지면, 다른 하나가 고정된다는 의미이며, 이는 부호화 편의성을 제공한다. 부호화에서 장치는
Figure 112017031445762-pat00046
시리즈와
Figure 112017031445762-pat00047
시리즈 중 어느 하나에서만 스칼라 양자화를 수행하면 된다.
수학식 7에서,
Figure 112017031445762-pat00048
Figure 112017031445762-pat00049
는 모두 [0, 1]의 범위 내에 있기 때문에, m번째 차수에 유지되는 실제 에너지는
Figure 112017031445762-pat00050
이며, 이는 이전 차수에 유지된 에너지보다 크지 않다. 따라서, RNQ의 다중 차수(multiple orders)는 벡터 공간에 대해 coarse-to-fine 분할을 형성하는 RVQ와 유사하다.
도 3은 1차수에서 4차수까지의 근사를 도시한 것이다. 원본 벡터 v는
Figure 112017031445762-pat00051
로 표현된다.
전반적으로, 본 발명의 일 실시 예에 의한 부호화와 RVQ의 주요 차이점은, 본 발명이 코드북 코드워드 대신 코드북 코드워드에 투영하여 벡터를 근사화한다는 점이다.
종래의 구성 접근법과 비교하면, 본 발명은 에너지를 부호화하기 위한 여분의 비트를 필요로 한다. 그러나 이것은 많은 메모리를 소비하지 않는다. 본 발명의 일 실시 예에 따른 실험 결과에 의하면, 일반적으로 4비트가 각 차수의 에너지를 부호화하기에 충분하다.
n차 양자화기로 벡터를 근사화하기 위해서는 n개의 코드북이 필요하다. 이러한 코드북은 이전 단계에서 정규화된 잔차들을 수집하여 훈련된다.
각 차수에서의 훈련에는 k-means 클러스터링이 사용될 수 있다. k-means 클러스터링 후에는 클러스터링의 중심은 단위 길이로
Figure 112017031445762-pat00052
-정규화되고, 부호화 코드워드로 사용될 수 있다.
전술한 새로운 부호화 방법을 재귀적 정규화 벡터 양자화(RNQ)라고 한다.
C. RNQ와 RVQ의 혼합에 기초한 부호화
RNQ의 경우 부호화 오류는 RVQ보다 상당히 작지만, 각 차수에 4비트가 추가로 필요하다. 일반적으로 빠른 NNS을 위해, RNQ/RVQ 코드의 처음 두 개 차수에서 역 인덱싱 키를 생성한다. 결과적으로 역변환된 키는 RVQ보다 8비트 길어진다. 인덱싱 키가 RVQ보다 더 명확하지만, 키 스페이스 키의 볼륨은 벡터 공간을 불필요하게 낮은 밀도로 나누는 RVQ에 비해 256배 더 크다. 이런 이유로, 빠른 NNS에서 본 발명에 의한 장치는 주어진 벡터에 대한 혼합 부호화를 선호한다. 일반적으로 RVQ는 부호화의 처음 두 차수에 사용되며, 인덱싱 키를 생성하는 데 사용된다.
2차수 RVQ에서 남은 잔차는 RNQ로 추가 부호화 된다. 결과적으로 벡터는 4차수로 근사되며, 근사치는 다음 수학식 8과 같다.
Figure 112017031445762-pat00053
혼합 부호화 방법은 도 5 및 도 6에 도시된 바와 같으며, 전술한 A 내지 C를 포함하는 벡터의 부호화 방법을 도 5를 참조하여 정리하면 다음과 같다.
먼저, 입력 벡터
Figure 112017031445762-pat00054
를 정규화하면, 스칼라 값을 갖는 벡터 에너지
Figure 112017031445762-pat00055
와 방향 벡터
Figure 112017031445762-pat00056
을 획득할 수 있다. (S100)
다음으로, 방향 벡터를 양자화하여(S200), m차 코드워드와 m차 잔차 벡터를 획득할 수 있다(S300). 단계 200은 전술한 B. 재귀적 벡터 양자화에서 설명한 바와 같다.
예를 들어, 최초로 후보 벡터 v를 입력하면, 정규화를 통해 방향 벡터
Figure 112017031445762-pat00057
를 획득하며, 방향 벡터를 양자화하여 코드워드
Figure 112017031445762-pat00058
과 잔차 벡터
Figure 112017031445762-pat00059
를 획득할 수 있다.
양자화 함수는 방향 벡터가 입력되면, 해당 방향 벡터에 대응되는 코드북에 포함된 코드워드 중에서 상기 방향 벡터에 가장 근접한 이웃(코드워드)를 반환한다. 양자화 단계에서 남겨지는 양자 오차를 잔차 벡터라 하며, 이는 상술한 수학식 2에서
Figure 112017031445762-pat00060
에 해당한다. 잔차 벡터는 양자화 함수가 반환하는 코드워드에 직교하는 것일 수 있다. 참고로, 본 발명에서는 잔차 벡터를 여러 차수로 재귀적으로 양자화하며, 본 명세서에서는 반복되는 전체 차수를 부호화 차수라고 명명하였으며, 부호화 차수 n은 근사화 설정에 의하여 달라질 수 있다.
다음 단계에서, 현재 차수 m이 부호화 차수 n보다 작은 경우(S400), 차수 m은 m+1로 한 차수 증가하고, m차 잔차 벡터는 단계 100내지 단계 300을 통해 정규화 및 양자화 과정을 거치게 된다. 따라서 부호화 차수 n만큼 단계 100 내지 단계 300은 반복되며, 본 발명의 일 실시 예에 따른 RNQ에는 n개의 코드북이 요구될 수 있으며, RNQ를 통해 n개의 코드워드를 획득 할 수 있다.
단계 600은 단계 100 내지 단계 300의 반복 수행에 의한 하나 이상의 코드워드 및 하나 이상의 벡터의 에너지를 이용하여 후보 벡터를 부호화할 수 있다.
도 6을 이용하여 단계 600을 보다 자세하게 살펴보자. 도 6은 인덱싱 및 부호화의 편의성을 향상시키는 RVQ 및 RNQ의 혼합 부호화 프레임 워크이다. 설명의 명확성을 위하여 도 6에는 각각에 대해 4개의 부호화 차수만 표시하였다. 높은 NNS 품질을 달성하기 위해서, 더 높은 차수로 확장될 수 있다. 도 6에서
Figure 112017031445762-pat00061
는 한 차수의 에너지에 대한 스칼라 양자화 값이다.
먼저, 부호화 차수의 수 n은 기 설정된 기준에 따라 저차수 i와 고차수 j로 분류할 수 있다. 즉 n=i+j인데, 그 중 j는 구체적인 문제에 의해 결정되며, 검색해야 할 후보 데이터 셋이 클 경우, i의 값이 커질 수 있다. 그 이유는 저차수 i가 역 인덱싱 구조의 인덱스로 활용되기 때문인데, i의 값이 클수록 생성된 인덱스 값도 많아지며, 인덱싱할 수 있는 데이터 수도 커진다. 이는 최대한 데이터 셋을 흩뜨려서 매번 최근접 이웃 쿼리에서 소수의 후보 벡터만 액세스하기 위함이다.
다음으로, 저차수의 입력 벡터에 대응하는 코드워드를 이용하여 역 리스트의 인덱싱 키를 생성할 수 있다. 예를 들어, n=4, i=2, j=2인 도 5의 예시에서, 후보 벡터는 수학식 7과 같이 근사화될 수 있는데, 저차수는 i=2이므로, 1차, 2차를 의미하므로, 저차수의 입력 벡터에 대응하는 코드워드는
Figure 112017031445762-pat00062
Figure 112017031445762-pat00063
이다. 즉, 인덱싱 키는
Figure 112017031445762-pat00064
Figure 112017031445762-pat00065
을 조합하여
Figure 112017031445762-pat00066
Figure 112017031445762-pat00067
로 설정될 수 있다.
여기서
Figure 112017031445762-pat00068
는 1차 코드북에서 정규화된 후보 벡터와 가장 근접한 코드워드이며,
Figure 112017031445762-pat00069
는 2차 코드북에서 잔차 벡터와 가장 근접한 코드워드를 의미한다.
다음으로, 고차수의 입력 벡터에 대응하는 코드워드 및 저차수의 입력 벡터에 대응하는 벡터 에너지를 이용하여 RNQ코드를 생성할 수 있다. 상기 예시에서, j=2 이므로 고차수는 3차, 4차를 의미하며, 따라서, RNQ 코드의 생성에는 코드워드
Figure 112017031445762-pat00070
Figure 112017031445762-pat00071
이 사용될 수 있다.
Figure 112017031445762-pat00072
는 제 3 차 코드북(
Figure 112017031445762-pat00073
)에서 잔차 벡터의 방향 벡터와의 최근접 코드워드,
Figure 112017031445762-pat00074
는 제 4 차 코드북(
Figure 112017031445762-pat00075
)에서 잔차 벡터의 방향 벡터와의 최근접 코드워드를 의미한다. 또한, 벡터 에너지 값이 사용될 수 있는데,
Figure 112017031445762-pat00076
은 후보 벡터의 에너지(스칼라 값)일 수 있으며, 제 3 잔차 벡터의 에너지(스칼라 값)일 수 있으며,
Figure 112017031445762-pat00077
은 제 4 잔차 벡터의 에너지(스칼라 값)일 수 있다.
Figure 112017031445762-pat00078
Figure 112017031445762-pat00079
는 B.에서 전술한 바와 같이
Figure 112017031445762-pat00080
=
Figure 112017031445762-pat00081
,
Figure 112017031445762-pat00082
=
Figure 112017031445762-pat00083
일 수 있으며, 이는 각각 3차, 4차 방향 벡터의 최근접 코드워드에의 투영(projection)일 수 있다. 즉,
Figure 112017031445762-pat00084
Figure 112017031445762-pat00085
Figure 112017031445762-pat00086
Figure 112017031445762-pat00087
잔차 방향 벡터의 투영일 수 있다.
상술한 스칼라 양자화 값과 고차수의 벡터 양자화 값을 조합하여 RNQ 코드(부호화 코드)를 생성할 수 있는데, 도 6의 예시에 의하면, RNQ 코드는
Figure 112017031445762-pat00088
Figure 112017031445762-pat00089
Figure 112017031445762-pat00090
Figure 112017031445762-pat00091
일 수 있다.
즉, 후보 벡터는 인덱싱 키와 상기 RNQ코드의 조합인
Figure 112017031445762-pat00092
Figure 112017031445762-pat00093
Figure 112017031445762-pat00094
Figure 112017031445762-pat00095
Figure 112017031445762-pat00096
Figure 112017031445762-pat00097
로 부호화될 수 있다. 상술한 바와 같이
Figure 112017031445762-pat00098
,
Figure 112017031445762-pat00099
는 잔차 벡터를 양자화한 후의 코드이고, 이 두 개의 코드는 역 리스트의 인덱싱 키 값으로 합쳐지게 된다. 남은 코드인
Figure 112017031445762-pat00100
Figure 112017031445762-pat00101
Figure 112017031445762-pat00102
Figure 112017031445762-pat00103
는 역 리스트의 해당 인덱싱 키 값에 대응되는 연결 리스트에 저장되며, 연결 리스트의 각 항목에는 후보 벡터의 식별 정보 및 RNQ 코드가 저장될 수 있다. 예를 들어, n=4인 위의 실시 예에서, 연결 리스트의 각 후보 항목은 <ID,
Figure 112017031445762-pat00104
Figure 112017031445762-pat00105
Figure 112017031445762-pat00106
Figure 112017031445762-pat00107
>일 수 있다.
도 7에 도시된 바에 의하면, 대부분의 배치상황에서 벡터 양자화 혼합(MXQ)의 리콜률이 가장 높고, 특별히 GISTIM 데이터 셋에서 다른 방법보다 더 우수한 것으로 나타났다. IVFRVQ와 MXQ의 부호화는 비슷하지만 MXQ의 결과는 IVFRVQ보다 우수하며, 이는 잔존 벡터의 방향 및 에너지를 따로 부호화하는 것이 RVQ보다 더 효과적이라는 사실을 보여주고 있다.
IVFPQ와 대응되는 방법은 H. Jegou등이 제안한 방법이다(Product quantization for neighbor search, in: IEEE transactions on pattern analysis and machine intelligence, 2011, 33(1):117-128).
IVFRVQ와 대응되는 방법은 Y. Chen등이 제안한 방법이다(Approximate nearest neighbor search by residual vector quantization, in: Sensors, vol. 10, pp. 11259-11273, 2010.).
IMI와 대응되는 방법은 A. Babenko 등이 제안한 방법이다(The inverted multi-index, in: Computer Vision and Pattern Recognition(CVPR), 2012 IEEE, 2012:3069-3076.).
최근접 이웃 검색 방법
도 8을 참조하여, 등급 가지 치기에 기초한 온라인 검색 전략을 살펴 본다. 후보 데이터 셋에서 쿼리 q의 최근접 이웃을 검색하기 위해, 단계 1000에서 역 리스트의 인덱스 키와 쿼리 간 거리를 계산한다. 이 때 인덱스 키 값 I를
Figure 112017031445762-pat00108
Figure 112017031445762-pat00109
로 분할할 수 있다.
Figure 112017031445762-pat00110
Figure 112017031445762-pat00111
는 제 1 차 코드북의 벡터(제 1 코드워드
Figure 112017031445762-pat00112
) 및 2차 코드북의 벡터(제 2 코드워드
Figure 112017031445762-pat00113
) 각각에 대응되며, 쿼리 q와 I의 거리를 계산하는 것은 쿼리 q 및 합성 벡터
Figure 112017031445762-pat00114
사이의 거리를 계산하는 것으로 전환할 수 있다.
예를 들어, q와 합성 벡터 I의 거리는 아래 수학식과 같이 표현할 수 있다
Figure 112017031445762-pat00115
계산 속도를 높이는 단계
위 수학식 9에서, 계산 속도를 높이기 위하여, 쿼리 q와 제 1 코드워드
Figure 112017031445762-pat00116
의 거리를 먼저 계산할 수 있다.(수학식 9의 term 1). 이를 통해, 쿼리 q 및 1차수 각 부호화 코드 간의 거리를 얻을 수 있고, 거리는 크기에 따라 정렬될 수 있다. 뒤에 있는 95%의 1차 부호화 코드에 대응되는 인덱스 항목은 무시될 수 있으며, 남은 5%의 1차 부호화 코드에 대해 계속해서 쿼리 q 및 2차 부호화 코드로 얻어낸 합성 벡터 I와의 거리를 계산할 수 있다. 동일한 방법으로, 쿼리 q 및 모든 2차 부호화 코드 사이의 거리를 계산한 뒤, 인덱스 항목을 거리에 따라 정렬하고, 뒤에 있는 90%의 인덱스 항목을 무시할 수 있다. 즉, 역 리스트 중 상위 특정 백분위 이내의 연결 리스트만을 고려하여 검색할 수 있다. 이러한 방식은 i>2 인 경우로 확장될 수 있다.
수학식 9에서,
Figure 112017031445762-pat00117
Figure 112017031445762-pat00118
,
Figure 112017031445762-pat00119
Figure 112017031445762-pat00120
는 미리 계산될 수 있으며, 다음에 리스트를 조회하면 수학식 9에 의한 계산이 빠르게 이루어질 수 있다. 이는 도 8의 단계 2000에서 거리를 오름차순으로 정렬하여, 정렬된 거리가 기설정된 상위 백분위 이내인 역 리스트를 후보 연결 리스트로 설정하는 것에 대응된다.
다음으로, 후보 연결 리스트에 포함된 후보 벡터 v와 쿼리 q간 거리를 계산하여 최근접 이웃을 획득할 수 있다(S3000)
단계 3000에서 후보 벡터 v와 쿼리 q간 거리의 계산은 아래 수학식 10을 통해 이루어질 수 있으며, 이를 통해 벡터 양자화의 혼합에 기초한 부호화 방법에 따라 부호화된 후보 벡터 v와 쿼리 q간 거리를 획득함으로써, 쿼리 q의 최근접 이웃 벡터를 획득할 수 있다.
Figure 112017031445762-pat00121
본 발명에 의한 벡터 양자화 혼합에 기초한 부호화 방법은 기존의 양자화 방법과 비교할 때 앞의 두 차수는 RVQ부호화를 사용하고, 뒤의 두 차수는 잔차 벡터의 에너지와 방향 벡터를 각각 부호화한다. 따라서, 본 발명에 의하면, 역 리스트의 인덱스를 구축할 수 있을 뿐만 아니라 에너지 값의 범위가 매우 큰 데이터 셋도 더 효과적으로 근사할 수 있고, 더 높은 정밀도를 얻을 수 있다.
또한, 본 발명의 등급 가지 치기에 의한 최근접 이웃 검색 전략에 의하면, 쿼리 포인트와 거리 계산이 필요한 후보 항목의 수가 효과적으로 감소하며, 검색과정을 가속화할 수 있다.
본 발명은 기존의 다른 양자화 방법과 비교했을 때 해당 방법의 부호화 훈련 및 양자화 과정이 모두 기존 방법보다 간단하고, 비교적 훌륭한 부호화 정확성도 얻을 수 있다.
본 명세서에서 설명되는 방법들은 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 컴퓨터 프로그램들에 의해 구현될 수 있다. 컴퓨터 프로그램들은 비-일시적인 유형의 컴퓨터 판독가능 매체에 저장되는 프로세서-실행가능 명령들을 포함한다. 컴퓨터 프로그램들은 또한 저장된 데이터를 포함할 수 있다. 비-일시적인 유형의 컴퓨터 판독가능 매체(non-transitory tangible computer readable medium)의 비한정적 예들은 비휘발성 메모리 시스템, 자기 저장소 및 광학 저장소이다.

Claims (13)

  1. 프로세서가 후보 데이터 셋에서 쿼리의 최근접 이웃을 검색하기 위해 후보 벡터를 부호화하는 방법에 있어서,
    입력 벡터(이때, 최초의 입력 벡터는 상기 후보 벡터)를 정규화하여 방향 벡터 및 벡터 에너지를 획득하는 정규화 단계;
    상기 방향 벡터를 양자화하여 코드워드와 잔차 벡터를 획득하는 양자화 단계;
    상기 잔차 벡터를 상기 입력 벡터로 하여, 상기 정규화 단계 및 상기 양자화 단계를 기 설정된 부호화 차수만큼 반복 수행하는 단계;
    상기 반복 수행에 의한 상기 부호화 차수를 기 설정된 기준에 따라 저차수와 고차수로 분류하고, 상기 저차수의 입력 벡터에 대응되는 하나 이상의 코드워드 및 상기 고차수의 입력 벡터에 대응되는 하나 이상의 벡터 에너지를 이용하여 상기 후보 벡터를 부호화하는 단계를 포함하는 벡터 부호화 방법.
  2. 제1항에 있어서,
    상기 양자화 단계는
    상기 방향 벡터의 차수에 대응하는 코드북에서 상기 방향 벡터에 가장 근접한 워드를 상기 코드워드로 반환하는 단계를 포함하는 벡터 부호화 방법.
  3. 제1항에 있어서,
    상기 부호화 단계는
    상기 부호화 차수를 기 설정된 기준에 따라 저차수와 고차수로 분류하는 단계;
    상기 저차수의 입력 벡터에 대응하는 코드워드를 이용하여 역 리스트의 인덱싱 키를 생성하는 단계;
    상기 고차수의 입력 벡터에 대응하는 코드워드 및 저차수의 입력 벡터에 대응하는 벡터 에너지를 이용하여 RNQ(Recursive Normalized Vector Quantization)코드를 생성하는 단계를 포함하며,
    부호화된 후보 벡터는 상기 인덱싱 키와 상기 RNQ코드의 조합이고, 상기 부호화 차수는 상기 저차수와 상기 고차수의 합인 벡터 부호화 방법.
  4. 제3항에 있어서,
    상기 RNQ코드는 상기 역 리스트에서 상기 인덱싱 키에 대응되는 연결 리스트에 저장되며, 상기 연결 리스트의 각 항목은 후보 벡터의 식별 정보 및 RNQ(Recursive Normalized Vector Quantization)코드를 포함하는 것을 특징으로 하는 벡터 부호화 방법.
  5. 제3항에 있어서,
    상기 부호화 차수를 분류하는 단계는
    상기 후보 데이터 셋의 크기가 커질수록, 상기 저차수로 분류되는 값의 크기를 증가시키는 단계를 더 포함하는 벡터 부호화 방법.
  6. 제3항에 있어서,
    상기 부호화 차수를 4, 상기 저차수 i를 2, 상기 고차수 j를 2로 설정한 경우,
    상기 후보 벡터는 아래 수학식과 같이 근사화되며,
    Figure 112017031445762-pat00122

    상기 인덱싱 키는 상기
    Figure 112017031445762-pat00123
    에 대응하는
    Figure 112017031445762-pat00124
    및 상기
    Figure 112017031445762-pat00125
    에 대응하는
    Figure 112017031445762-pat00126
    를 이용하여 다음과 같이 생성되며
    인덱싱 키:
    Figure 112017031445762-pat00127
    Figure 112017031445762-pat00128

    상기 RNQ코드는 상기
    Figure 112017031445762-pat00129
    에 대응하는
    Figure 112017031445762-pat00130
    및 상기
    Figure 112017031445762-pat00131
    에 대응하는
    Figure 112017031445762-pat00132
    및 상기
    Figure 112017031445762-pat00133
    에 대응하는
    Figure 112017031445762-pat00134
    및 상기
    Figure 112017031445762-pat00135
    에 대응하는
    Figure 112017031445762-pat00136
    를 이용하여 다음과 같이 생성되는 벡터 부호화 방법.
    RNQ 코드:
    Figure 112017031445762-pat00137
    Figure 112017031445762-pat00138
    Figure 112017031445762-pat00139
    Figure 112017031445762-pat00140

    Figure 112017031445762-pat00141
    : 제 1 차 코드북(
    Figure 112017031445762-pat00142
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112017031445762-pat00143
    : 제 2 차 코드북(
    Figure 112017031445762-pat00144
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112017031445762-pat00145
    : 제 3 차 코드북(
    Figure 112017031445762-pat00146
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112017031445762-pat00147
    : 제 4 차 코드북(
    Figure 112017031445762-pat00148
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112017031445762-pat00149
    : 제 3 잔차 벡터의 에너지(스칼라 값)
    Figure 112017031445762-pat00150
    : 제 4 잔차 벡터의 에너지(스칼라 값)
    Figure 112017031445762-pat00151
    :
    Figure 112017031445762-pat00152
    잔차 방향 벡터의 투영
    Figure 112017031445762-pat00153
    :
    Figure 112017031445762-pat00154
    잔차 방향 벡터의 투영
  7. 제 1 항 내지 제 6 항의 방법 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 벡터 부호화 응용 프로그램.
  8. 프로세서가 후보 데이터 셋에서 쿼리의 최근접 이웃을 검색하는 방법에 있어서,
    낮은 차수에서 부호화된 하나 이상의 코드워드를 이용하여 생성된 역 리스트의 인덱싱 키에 포함된 제1 코드워드 및 제2 코드워드의 합성 벡터와 상기 쿼리 간 거리를 계산하는 단계;
    상기 계산된 거리를 오름차순으로 정렬하여, 정렬된 거리가 상위 특정 백분위 이내인 역 리스트를 후보 연결 리스트로 설정하는 단계;
    상기 후보 연결 리스트에 포함된 후보 벡터와 상기 쿼리 간 거리를 계산하여 상기 최근접 이웃을 획득하는 단계를 포함하는 최근접 이웃 검색 방법.
  9. 제8항에 있어서,
    상기 거리 계산 단계는,
    1차 코드북에 포함되는 제 1 코드워드
    Figure 112018107791828-pat00155
    및 2차 코드북에 포함되는 제 2 코드워드
    Figure 112018107791828-pat00156
    의 합성 벡터
    Figure 112018107791828-pat00157
    와 상기 쿼리 q 간 거리 d를 계산하는 단계를 포함하는 최근접 이웃 검색 방법.
    Figure 112018107791828-pat00168
    : 1차 코드북에 포함되는 코드워드
    Figure 112018107791828-pat00169
    : 2차 코드북에 포함되는 코드워드
    I: 역 리스트의 인덱싱 키
  10. 제9항에 있어서,
    상기 거리 계산 단계는
    상기 거리 d의 계산이 다음 수식에 의해 이루어지는 것을 특징으로 하는 최근접 이웃 검색 방법.
    Figure 112018107791828-pat00158

    q: 쿼리 벡터, qt: 쿼리 벡터의 전치
    I: 역 리스트의 인덱싱 키
    Figure 112018107791828-pat00170
    : 1차 코드북에 포함되는 코드워드
    Figure 112018107791828-pat00171
    : 2차 코드북에 포함되는 코드워드
  11. 제10항에 있어서,
    상기 거리 계산 단계는
    상기 쿼리와 제 1 코드워드 간 거리를 계산하여 오름차순으로 정렬하는 단계;
    상기 쿼리와 제 2 코드워드 간 거리를 계산하여 오름차순으로 정렬하는 단계;
    상기 정렬된 거리가 상위 특정 백분위 이내인 제 1 코드워드 및 제 2 코드워드를 이용하여 상기 합성 벡터 I와 쿼리 q간 거리를 계산하는 단계를 포함하는 최근접 이웃 검색 방법.
  12. 제8항에 있어서,
    상기 최근접 이웃을 획득하는 단계는
    상기 후보 벡터 v 와 상기 쿼리 q 간 거리를 아래 수식을 이용하여 계산하는 단계를 포함하는 최근접 이웃 검색 방법.
    Figure 112018107791828-pat00159

    q: 쿼리 벡터, qt: 쿼리 벡터의 전치
    v: 후보 벡터, vt: 후보 벡터의 전치
    I: 역 리스트의 인덱싱 키
    Figure 112018107791828-pat00172
    : 제 1 차 코드북(
    Figure 112018107791828-pat00173
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112018107791828-pat00174
    : 제 2 차 코드북(
    Figure 112018107791828-pat00175
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112018107791828-pat00176
    : 제 3 차 코드북(
    Figure 112018107791828-pat00177
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112018107791828-pat00178
    : 제 4 차 코드북(
    Figure 112018107791828-pat00179
    )에서 잔차 벡터의 방향 벡터와의 최근접 코드워드
    Figure 112018107791828-pat00180
    : 제 3 잔차 벡터의 에너지(스칼라 값)
    Figure 112018107791828-pat00181
    : 제 4 잔차 벡터의 에너지(스칼라 값)
    Figure 112018107791828-pat00182
    :
    Figure 112018107791828-pat00183
    잔차 방향 벡터의 투영
    Figure 112018107791828-pat00184
    :
    Figure 112018107791828-pat00185
    잔차 방향 벡터의 투영
  13. 제 8 항 내지 제 12 항의 방법 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 최근접 이웃 검색 응용 프로그램.
KR1020170041017A 2017-03-30 2017-03-30 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법 KR101958939B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170041017A KR101958939B1 (ko) 2017-03-30 2017-03-30 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법
US16/499,789 US11436228B2 (en) 2017-03-30 2017-06-20 Method for encoding based on mixture of vector quantization and nearest neighbor search using thereof
PCT/KR2017/006450 WO2018182093A1 (ko) 2017-03-30 2017-06-20 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법
JP2019554379A JP7006966B2 (ja) 2017-03-30 2017-06-20 ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(nns)方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170041017A KR101958939B1 (ko) 2017-03-30 2017-03-30 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법

Publications (2)

Publication Number Publication Date
KR20180110959A KR20180110959A (ko) 2018-10-11
KR101958939B1 true KR101958939B1 (ko) 2019-03-15

Family

ID=63678276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170041017A KR101958939B1 (ko) 2017-03-30 2017-03-30 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법

Country Status (4)

Country Link
US (1) US11436228B2 (ko)
JP (1) JP7006966B2 (ko)
KR (1) KR101958939B1 (ko)
WO (1) WO2018182093A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308152B2 (en) * 2018-06-07 2022-04-19 Canon Kabushiki Kaisha Quantization method for feature vector, search method, apparatus and storage medium
CN110727769B (zh) * 2018-06-29 2024-04-19 阿里巴巴(中国)有限公司 语料库生成方法及装置、人机交互处理方法及装置
CN109325240A (zh) * 2018-12-03 2019-02-12 中国移动通信集团福建有限公司 指标查询的方法、装置、设备和介质
CN112800268B (zh) * 2021-03-02 2022-08-26 安庆师范大学 图像视觉特征的量化与近似最近邻搜索方法
CN117194737A (zh) * 2023-09-14 2023-12-08 上海交通大学 基于距离阈值的近似近邻搜索方法、系统、介质及设备
CN117037913B (zh) * 2023-10-07 2024-01-26 之江实验室 一种蛋白质多序列比对方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020769A (ja) 2007-07-13 2009-01-29 Toshiba Corp パターン探索装置及びその方法
JP2013011920A (ja) 2011-06-28 2013-01-17 Kddi Corp 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1207464A2 (en) * 2000-11-15 2002-05-22 Samsung Electronics Co. Ltd. Database indexing using a tree structure
KR100429792B1 (ko) * 2000-11-15 2004-05-03 삼성전자주식회사 특징 벡터 공간의 인덱싱 방법 및 검색 방법
KR101116663B1 (ko) * 2010-04-15 2012-03-07 성균관대학교산학협력단 고차원 데이터의 유사도 검색을 위한 데이터 분할방법
US9263053B2 (en) * 2012-04-04 2016-02-16 Google Technology Holdings LLC Method and apparatus for generating a candidate code-vector to code an informational signal
CN103269429B (zh) * 2012-11-01 2016-05-25 重庆邮电大学 一种超光谱信号快速矢量量化编码方法
CN107193938A (zh) * 2017-05-19 2017-09-22 厦门大学 基于混合向量量化的最近邻搜索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020769A (ja) 2007-07-13 2009-01-29 Toshiba Corp パターン探索装置及びその方法
JP2013011920A (ja) 2011-06-28 2013-01-17 Kddi Corp 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム
JP5637939B2 (ja) * 2011-06-28 2014-12-10 Kddi株式会社 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
H. Liu et al., a computer study on features for similar image search, Proc. of ICIMCS, pp.349-353 (20160819)
J. wang et al, query-driven iterated neighborhood graph search for large scale indexing, proc. of ACM multimedia, pp.179-188, ACM (2012)
J. Wang et al., Scalable k-nn graph construction for visual descriptors, proc. of CVPR, pp.1106-1113 (2012)
W. Zhao et al., scalable nearest neighbor search based on KNN Graph, arvix.org/abs/1701.08475, pp.1-7

Also Published As

Publication number Publication date
US20200226137A1 (en) 2020-07-16
KR20180110959A (ko) 2018-10-11
WO2018182093A1 (ko) 2018-10-04
US11436228B2 (en) 2022-09-06
JP2020515986A (ja) 2020-05-28
JP7006966B2 (ja) 2022-01-24

Similar Documents

Publication Publication Date Title
KR101958939B1 (ko) 벡터 양자화의 혼합에 기초한 부호화 방법 및 이를 이용한 최근접 이웃 검색(nns) 방법
Wu et al. Multiscale quantization for fast similarity search
Baranchuk et al. Revisiting the inverted indices for billion-scale approximate nearest neighbors
Matsui et al. A survey of product quantization
Ai et al. Optimized residual vector quantization for efficient approximate nearest neighbor search
CN111177438B (zh) 图像特征值的搜索方法、装置、电子设备及存储介质
Pan et al. Product quantization with dual codebooks for approximate nearest neighbor search
US20230123941A1 (en) Multiscale Quantization for Fast Similarity Search
EP3115908A1 (en) Method and apparatus for multimedia content indexing and retrieval based on product quantization
CN111177435A (zh) 一种基于改进pq算法的cbir方法
JP5584203B2 (ja) 数値データの処理方法
Chen et al. Robustiq: A robust ann search method for billion-scale similarity search on gpus
Jain et al. Approximate search with quantized sparse representations
CN101873496B (zh) 一种h.264的基于上下文自适应变长解码方法及装置
Yuan et al. Product tree quantization for approximate nearest neighbor search
Chen et al. Vector and line quantization for billion-scale similarity search on GPUs
Fan et al. Codebook-softened product quantization for high accuracy approximate nearest neighbor search
Li et al. Embedding Compression in Recommender Systems: A Survey
Chen et al. Hierarchical quantization for billion-scale similarity retrieval on gpus
Chiu et al. Effective product quantization-based indexing for nearest neighbor search
JP2013140494A (ja) 高次元の特徴ベクトルを検索する検索装置及びプログラム
Song et al. SqueezeBlock: A Transparent Weight Compression Scheme for Deep Neural Networks
Li et al. Fast additive quantization for vector compression in nearest neighbor search
CN114595350B (zh) 一种百亿级图像快速搜索的方法
André et al. Derived codebooks for high-accuracy nearest neighbor search

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant