KR102615073B1 - 유사도 검색을 위한 신경 해싱 - Google Patents

유사도 검색을 위한 신경 해싱 Download PDF

Info

Publication number
KR102615073B1
KR102615073B1 KR1020227026510A KR20227026510A KR102615073B1 KR 102615073 B1 KR102615073 B1 KR 102615073B1 KR 1020227026510 A KR1020227026510 A KR 1020227026510A KR 20227026510 A KR20227026510 A KR 20227026510A KR 102615073 B1 KR102615073 B1 KR 102615073B1
Authority
KR
South Korea
Prior art keywords
vector
training
pseudo
vectors
output
Prior art date
Application number
KR1020227026510A
Other languages
English (en)
Other versions
KR20220110620A (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 쥐에스아이 테크놀로지 인코포레이티드
Publication of KR20220110620A publication Critical patent/KR20220110620A/ko
Application granted granted Critical
Publication of KR102615073B1 publication Critical patent/KR102615073B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

신경망-기반 부동-소수점-이진 피쳐 벡터 인코더를 훈련하기 위한 시스템은 출력 공간 내의 샘플에 대한 입력 공간 내의 샘플 사이의 지역성 관계를 보존한다. 이러한 시스템은 훈련 대상 신경망 및 확률 분포 손실 함수 생성기를 포함한다. 신경망은 부동-소수점 입력 및 부동-소수점 의사-쌍극성 출력을 가진다. 상기 생성기는 입력 공간의 부동-소수점 코사인 유사도로부터 구성된 입력 확률 분포와 출력 공간의 부동-소수점 의사-쌍극성 의사-해밍 유사도로부터 구성된 출력 확률 분포를 비교한다. 상기 시스템은 프록시 세트에 대한 훈련 데이터로부터 벡터들의 랜덤 샘플링을 취하기 위한 프록시 벡터 세트 생성기, 훈련 데이터로부터 샘플 벡터를 선택하기 위한 샘플 벡터 선택기, 및 레퍼런스 세트에 대한 상기 프록시 세트로부터, 각각의 샘플 벡터에 최근접한 k 개의 최근접 이웃들의 세트를 찾기 위한 KNN 벡터 세트 생성기를 포함한다.

Description

유사도 검색을 위한 신경 해싱
관련 출원들에 대한 상호 참조
본 출원은 2020 년 6 월 24 일에 출원된 미국 가출원 제 63/043,215의 우선권을 주장하는데, 이 문헌은 원용에 의해 본 명세서에 통합된다.
본 발명은 일반적으로 유사도 검색에 관한 것이고, 특히 근사 최근접 이웃 검색에 관한 것이다.
일반적으로, 대량의 유사도 검색이 최근의 정보 취출 애플리케이션에서는 기본 태스크가 되어 왔다. 유사도 검색이란 이용가능한 유일한 비교기가 임의의 쌍의 대상물들 사이의 유사도인 통상적으로 매우 큰 대상물 세트를 검색하는 이론을 공유하는 기법들의 범위에 대해서 사용되는 일반적 용어이다. 유사도 검색에 대한 더 많은 정보는 https://en.wikipedia.org/wiki/Similarity_search에서 찾을 수 있는 위키피디아 기사인 '유사도 검색(Similarity search)'에서 발견될 수 있다.
특히, 최근접 이웃 검색법이 이미지 취출, 얼굴 인식, 문서 및 텍스트 검색 및 다른 애플리케이션과 같은 애플리케이션에서 중요한 역할을 하는 기본적인 기법이다. 최근접-이웃(Nearest-Neighbor; NN) 검색의 정의는, 주어진 샘플 아이템에 가까운 후보 아이템을 후보 아이템들의 데이터베이스로부터 취출하는 것이다. 거리 또는 근접도는 유클리드 거리 - 예를 들어 L2-거리, 또는 각도 거리 - 또는, 예를 들어 코사인 유사도와 같은 거리 메트릭에 의해 규정된다. K-최근접-이웃(K- Nearest-Neighbor; KNN) 검색은 어떠한 아이템까지의 K 개의 최근접 이웃을 취출하는 것이고, 그 자체로서 - 예를 들어 웹 검색에서의 결과를 제공하기 위하여 - 사용되거나 평균화 방법을 사용하는 분류를 위한 예측 알고리즘으로서 - 투표 방식을 사용하거나, 회귀를 사용함 - 사용된다. 최근접 이웃 검색법에 대한 더 많은 정보는 https://en.wikipedia.org/wiki/Nearest_neighbor_search에서 발견되는 위키피디아 기사인 '최근접 이웃 검색(Nearest neighbor search)'에서 발견될 수 있다.
NN은 보통은 이미지 또는 텍스트와 같은 원시 데이터에서는 수행되지 않는데, 그 이유는 원시 데이터 값들 사이의 거리가 많은 정보를 포함하지 않기 때문이다. 우선, 데이터는 현재의 태스크에 대한 피쳐 공간 내에서 의미있는 거리 메트릭을 가지는 d-차원의 피쳐 벡터들로 변환될 필요가 있다. 이러한 실수-값 피쳐 벡터 표현은 흔히 피쳐 임베딩이라고 불리고, 바람직하게는 입력 데이터의 소망되는 의미 정보를 보유하기 때문에, 의미론적으로 유사한 입력들이 임베딩 공간 내에서 서로 가깝게 위치되게 된다. 동일한 임베딩 공간 내의 이러한 피쳐 벡터들은 코사인 유사도 또는 L2 거리와 같은 거리(또는 유사도) 메트릭을 사용하여 비교될 수 있다.
코사인 유사도는 두 개의 비-제로 피쳐 벡터들 사이의 유사도 메트릭이다. 이것은 두 개의 벡터들 사이의 각도의 코사인과 같다. 또한, 이것은 양자 모두가 길이 1을 가지도록 정규화된 동일한 벡터들의 내적과도 같다. 두 개의 벡터들의 코사인은 수학식 1에 표시된 내적 공식을 사용하여 유도될 수 있다:
여기에서 α는 두 개의 벡터 A 및 B 사이의 각도이다. 코사인 유사도에 대한 더 많은 정보는 https://en.wikipedia.org/wiki/Cosine_similarity에서 발견되는 위키피디아 기사인 '최근접 이웃 검색(Nearest neighbor search)'에서 발견될 수 있다.
원시 입력 데이터를 피쳐 벡터, 또는 피쳐 임베딩으로 변환하는 프로세스는 피쳐 추출, 임베딩, 또는 X2Vec(즉, 일부 종류의 데이터 X로부터 피쳐 벡터로의 변환)이라고 알려져 있고, 심층 신경망(후술됨), 도메인 특이적 피쳐 엔지니어링, 및 이러한 프로세스를 위해 사용되는 다른 기계 학습 방법을 포함하는 많은 방법들이 존재한다. 예로서, 이러한 피쳐 추출 모델은 단어 임베딩을 위한 Word2Vec, 얼굴 임베딩을 위한 심층-기반 FaceNet 및 이미지 내에서의 패턴 매칭을 위한 SIFT 피쳐 검출일 수 있다. 이하, 이러한 프로세스는 '데이터 인코딩'이라고 불릴 것이고, 컨버터가 주어지며 그 피쳐 공간 유사도가 보존되는 것이 소망되고 요구된다는 것이 가정된다.
이제 KNN 검색 시스템(10)을 예시하는 도 1을 참조한다. KNN 검색 시스템(10)은 데이터 인코더(12) 및 KNN 검색기(14)를 가진다. 데이터 인코더(12)는 원시 데이터 di를 부동-소수점 데이터 벡터 fvi로 변환하는데, 이러한 벡터 포맷은 전술된 바와 같은 KNN 검색을 위해 요구되는 측정가능한 양을 가진다. 그러면, KNN 검색기(14)는 데이터 인코더(12)로부터 출력되는 벡터들의 세트에 대해서 KNN 유사도 검색을 수행할 수 있다.
대량의 취출 데이터베이스에서의 KNN을 위하여, 피쳐 표현 공간에서의 검색은 흔히 많은 계산 및 메모리 리소스를 요구하고, 성능 병목현상이 생기게 한다. 수 백만 및 수 십 억 개의 아이템을 포함하면서 데이터 볼륨이 점점 더 커짐에 따라서, 그리고 콘텐츠 검색이 폭넓게 요구되는 태스크가 됨에 따라서, 큰 성능 이득을 얻기 위해서 정확도를 약간 희생하는 고속 근사-최근접-이웃(Approximate-Nearest-Neighbor; ANN) 검색법이 많은 연구에서 핵심이 되어 왔다. 그래프-기반 방법, 클러스터링 방법, 및 해싱 방법을 포함하는 많은 ANN 기법들이 존재하고, 이들 각각은 대량의 데이터세트 및 상이한 하드웨어를 가지고 사용될 경우에 각자의 한계를 가지고 있다.
해상 방법은 효율적인 비교 및 메모리 공간의 감소를 위하여, 데이터 포인트를 저차원의 표현, 또는 콤팩트한 비트-코드에 매핑하는 것을 목적으로 한다. 가장 인기 있는 해싱 방법 중 하나는 지역성 민감형 해싱(locality sensitive hashing; LSH)이다. LSH는 고차원의 포인트를 랜덤 투영들의 세트를 사용하여 저차원의 포인트로 매핑한다. 고차원의 벡터 및 출력 코드-길이에 대해서도 이론적으로는 견실하고 효율적이지만, 통상적인 LSH 방법은 데이터-독립적이고 많은 경우에 특정한 데이터 구조체 및 분포를 활용하는 데이터-의존적 방법보다 경험적으로 열악하다.
ANN을 위한 데이터-의존적 방법 중 하나는 이진 해싱에 기반하는데, 이것은 원본 부동-소수점, 피쳐 벡터 표현 공간 내의 데이터 포인트를 콤팩트한 표현 및 고속 검색을 위한 해밍 공간 내의 이진 코드로 매핑한다. 해밍 공간 내에서의 유사도 검색은 해밍 거리 또는 해밍 유사도를 사용하여 측정된다. 동일한 길이의 두 개의 이진 스트링 사이의 해밍 거리는 대응하는 심볼들이 상이한 위치들의 개수이다. 다르게 말하면, 이것은 하나의 이진 스트링을 다른 것으로 변경하기 위해서 필요한 최소 개수의 치환을 측정한다. 해밍 유사도는 해밍 거리의 역수이고, 대응하는 심볼들이 유사한 위치들의 개수이다. 해밍 거리에 대한 더 많은 정보는 https://en.wikipedia.org/wiki/Hamming_distance에서 발견되는 위키피디아 기사인 '해밍 거리(Hamming distance)' 에서 발견될 수 있다.
이제, 도 1의 KNN 검색 시스템(10)에 있는 것과 유사한 데이터 인코더(12), 부동-소수점-이진 인코더(22), 및 ANN 검색기(24)를 포함하는 ANN 검색 시스템(20)을 도시하는 도 2를 참조한다. 데이터 인코더(12)는 원시 데이터 di를 벡터 fvi로 인코딩하고, 그 후에 부동-소수점-이진 인코더(22)가 부동-소수점 데이터 벡터 fvi를 이진 인코딩된 데이터 벡터 bvi로 변환한다. 그러면, ANN 검색기(24)가 이진 벡터들의 세트에 대하여 근사화 유사도 검색을 수행한다.
부동-소수점-이진 인코더(22)의 하나의 구현형태는 벡터를 인코딩하기 위하여 얕은(shallow) 신경망을 사용한다. 벡터-이진 변환에서, 정확도 및 메모리 및 검색-시간과 같은 리소스에서의 손실 사이에서 균형을 찾는 동안에 이진 인코딩된 벡터들 사이의 유사도 관계 및 원본 부동-소수점 벡터들 사이의 유사도 관계가 가능 한 보존되는 것이 본질적이라는 것에 주의해야 한다.
표준 신경망에 대한 짧은 설명이 피드포워드, 신경망(31)의 컴포넌트를 예시하는 도 3a 및 도 3b를 참조하여 뒤따라온다. 신경망(3`)은 입력 계층(32), 복수 개의 숨은 계층(33), 및 출력 계층(34)을 포함한다. 각각의 계층은 다음 계층과 이전의 계층에 연결된다. 계층들은 노드들(36)로 이루어진다; 계층의 개수와 노드의 개수는 입력 복잡도 및 신경망의 목적에 의해서 변경된다. 도 3b에 도시된 바와 같이, 노드들은 연결되어 입력 계층(32)으로부터 출력 계층(34)으로 가는 경로를 이룬다. 연결들은 에지(37)라고 불린다. 노드(36) 및 에지(37)는 가중치 Wn,h에 의해 가중되는데, n은 노드 번호이고 h는 계층 번호이다. 가중치 Wn,h는 해당 연결에서의 신호의 세기를 조절한다.
신경망이 사용될 수 있기 이전에, 특정한 피쳐 추출 태스크를 수행하도록 훈련될 필요가 있다. 훈련은 가중치 Wn,h가 훈련 데이터라고 불리는 예시적인 데이터를 사용하여, 네트워크가 기대된 바와 같이 동작할 때까지 네트워크 전체에서 조절되는 프로세스이다. 신경망에 대해서 이용될 수 있는 데이터 세트는 훈련, 인증 및 테스트 세트로 분할되어, 신경망이 훈련 및 평가 프로세스의 상이한 단계들 도중에 상이한 데이터 세트를 사용할 수 있게 한다. 훈련의 시작 시에, 네트워크 가중치들은 무작위로 초기화된 후, 소망되는 출력 및 실제 출력 사이의 손실 또는 비용 함수라고 불리는 규정된 오차에 따라서 조절된다. 이것은 후방 전파를 통한 그레디언트 감소(gradient descent)라고 불리는 반복 프로세스이다. 더 많은 세부사항은 https://en.wikipedia.org/wiki/Artificial_neural_network에 저장된 위키피디아 기사인 "인공 신경망(Artificial neural network)"에서 발견될 수 있다.
신경망의 가중치를 조절하기 위해서 수행되는 이러한 순방향 및 역방향 패스(pass)는 반복(iteration)이라고 불린다. 반복은 배치 또는 미니-배치라고 불리는 훈련용 세트로부터의 복수 개의 샘플에 대해서 동시에 수행될 수 있고, 샘플의 개수는 배치 크기라고 불린다. 네트워크 통해 전달되는 전체 훈련용 세트의 횟수는 에포크의 개수라고 알려져 있다.
훈련 및 증명이 완료되면, 네트워크는 미지의 입력에 대해서 동작하도록 사용될 수 있는데, 이것은 '추론(inference)' 모드라고 알려져 있다. 훈련하는 동안에, 훈련 및 손실 함수 생성을 쉽게 하기 위해서 네트워크 내에 특수 계층이 존재할 수 있고, 이들이 제거될 수 있으며, 추론을 위해서 요구되는 다른 비-파라메트릭 계층이 동작 이전에 추가될 수 있다는 것에 주의해야 한다.
본 발명의 바람직한 실시형태에 따르면, 출력 공간 내의 샘플에 대한 입력 공간 내의 샘플 사이의 지역성 관계를 보존하기 위한 신경망-기반 부동-소수점-이진 피쳐 벡터 인코더를 훈련하기 위한 방법이 제공된다. 이러한 방법은, 부동-소수점 입력 및 부동-소수점 의사-쌍극성 출력을 가지는 훈련 대상 신경망을 구비하는 단계, 및 입력 공간의 부동-소수점 코사인 유사도로부터 구성된 입력 확률 분포 및 출력 공간의 부동-소수점 의사-쌍극성 의사-해밍 유사도로부터 구성된 출력 확률 분포를 비교하는 손실 함수를 생성하는 단계를 포함한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 생성하는 단계는, 부동-소수점 의사-쌍극성 인코딩된 샘플 벡터와 의사-쌍극성 인코딩된 레퍼런스 벡터들의 세트 사이의 상기 출력 확률 분포를 계산하는 것을 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 방법은, 대표 프록시 벡터 세트를 생성하도록, 훈련 벡터 세트로부터 복수 개의 벡터의 랜덤 샘플링을 취하는 단계, 상기 훈련 벡터 세트로부터 상기 샘플 벡터를 선택하는 단계, 및 상기 인코더에 의하여 인코딩될 레퍼런스 벡터 세트를 생성하도록, 상기 프록시 벡터 세트로부터, 상기 샘플 벡터에 가장 가까운 k 개의 최근접 이웃 벡터들의 세트를 찾는 단계를 더 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 이러한 방법은 각각의 훈련 반복에 대해서 상기 선택하는 단계를 반복하는 단계를 포함한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 방법은, 상기 선택하는 단계를, 훈련 반복별로 다수 회 반복하여 각각의 훈련 반복에 대하여 복수 개의 샘플 벡터를 생성하는 단계를 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 방법은, 각각의 훈련 반복에 대하여, 상기 복수 개의 샘플 벡터의 샘플 벡터마다 하나씩 복수 개의 상기 레퍼런스 벡터 세트를 생성하도록, 상기 찾는 단계를 반복하는 단계를 더 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 생성하는 단계는, 입력 확률 분포 및 출력 확률 분포로부터의 쿨백-라이블러(Kullback-Leibler) 발산을 사용하여 손실 함수를 계산하는 것을 포함한다.
추가적으로, 본 발명의 바람직한 실시형태에 따르면, 훈련을 위하여, 상기 신경망은, 베타-스케일링된 tanh 계층을 사용하여 상기 부동-소수점 의사-쌍극성 인코딩된 샘플 및 레퍼런스 벡터를 생성하는 출력 계층을 포함한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 생성하는 단계는 출력 공간 내의 내적을 사용하여 의사-해밍 유사도를 계산하는 것을 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 생성하는 단계는 코사인 유사도 및 의사-해밍 유사도가 값들의 동일한 범위 내에 속하도록 정규화하는 것을 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 정규화하는 것은 의사-해밍 유사도를 이진 코드 길이를 사용하여 정규화하는 것을 포함한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 정규화하는 것은 코사인 유사도 및 의사-해밍 유사도를 확률로 변환하는 것을 포함한다.
추가적으로, 본 발명의 바람직한 실시형태에 따르면, 상기 방법은, 상기 신경망이 훈련되면, 상기 훈련된 신경망으로부터 추론 신경망을 생성하는 단계를 포함하고, 상기 추론 신경망은 참 이진 벡터를 출력하기 위한 것이다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 추론 신경망을 생성하는 단계는, 상기 훈련된 신경망으로부터 의사-쌍극성 출력 계층을 제거하는 것, 및 상기 추론 신경망을 생성하도록, 상기 훈련된 신경망에 적어도 하나의 이진 출력 계층을 추가하는 것을 포함한다.
추가적으로, 본 발명의 바람직한 실시형태에 따르면, 참 이진 벡터는 근사화 최근접 이웃 검색에서 사용되기 위한 것이다.
본 발명의 바람직한 실시형태에 따르면, 출력 공간 내의 샘플에 대한 입력 공간 내의 샘플 사이의 지역성 관계를 보존하기 위한 신경망-기반 부동-소수점-이진 피쳐 벡터 인코더를 훈련하기 위한 시스템도 역시 제공된다. 이러한 시스템은 훈련 대상 신경망 및 확률 분포 손실 함수 생성기를 포함한다. 훈련 대상 신경망은 부동-소수점 입력 및 부동-소수점 의사-쌍극성 출력을 가진다. 상기 확률 분포 손실 함수 생성기는 입력 공간의 부동-소수점 코사인 유사도로부터 구성된 입력 확률 분포와 출력 공간의 부동-소수점 의사-쌍극성 의사-해밍 유사도로부터 구성된 출력 확률 분포를 비교하는 손실 함수를 생성한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 확률 분포 손실 함수 생성기는, 부동-소수점 의사-쌍극성 인코딩된 샘플 벡터와 의사-쌍극성 인코딩된 레퍼런스 벡터들의 세트 사이의 상기 출력 확률 분포를 계산하기 위한 의사-쌍극성 해밍 분포 계산기를 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 시스템은 훈련 벡터 세트를 저장하기 위한 훈련 데이터 벡터 저장소, 프록시 벡터 세트 생성기, 샘플 벡터 선택기 및 KNN 벡터 세트 생성기를 포함한다. 프록시 벡터 세트 생성기는, 대표 프록시 벡터 세트를 생성하도록, 상기 훈련 벡터 세트로부터 복수 개의 벡터의 적어도 하나의 랜덤 샘플링을 취한다. 샘플 벡터 선택기는 적어도 하나의 샘플 벡터를 훈련 벡터 세트로부터 선택한다. KNN 벡터 세트 생성기는 샘플 벡터에 인접한 k 개의 최근접 이웃 벡터들의 적어도 하나의 세트를 프록시 벡터 세트로부터 찾아냄으로써, 인코더에 의해서 인코딩될 적어도 하나의 레퍼런스 벡터 세트를 생성한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 상기 프록시 벡터 세트 생성기는, 각각의 훈련 반복에 대한 대표 프록시 벡터 세트를 생성하도록, 상기 훈련 벡터 세트로부터 복수 개의 벡터의 랜덤 샘플링을 취한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 샘플 벡터 선택기는 각각의 훈련 반복에 대하여, 훈련 벡터 세트로부터 복수 개의 샘플 벡터를 선택한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 KNN 벡터 세트 생성기는, 각각의 훈련 반복에 대하여 상기 복수 개의 샘플 벡터의 샘플 벡터마다 하나씩, 상기 프록시 벡터 세트로부터 k 개의 최근접 이웃 벡터들의 복수 개의 상기 세트를, 훈련 반복별로 찾는다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 손실 함수는 쿨백-라이블러 발산이다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 상기 훈련 대상 신경망은, 베타-스케일링된 tanh 계층을 사용하여 상기 부동-소수점 의사-쌍극성 인코딩된 샘플 및 레퍼런스 벡터를 생성하는 의사-쌍극성 출력 계층을 포함한다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 확률 분포 손실 함수 생성기는 출력 공간 내의 내적을 사용하여 의사-해밍 유사도를 계산한다.
추가적으로, 본 발명의 바람직한 실시형태에 따르면, 상기 신경망-기반 부동-소수점-이진 인코더는, 의사-쌍극성 출력 계층 대신에 적어도 하나의 이진 출력 계층을 가지는, 훈련을 하는 상기 훈련된 신경망의 수정된 버전이다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 적어도 하나의 이진 출력 계층의 출력은 근사 최근접 이웃 검색에서 사용되기 위한 것이다.
더 나아가, 본 발명의 바람직한 실시형태에 따르면, 확률 분포 손실 함수 생성기는 코사인 유사도 및 의사-해밍 유사도가 값들의 동일한 범위 내에 속하도록 정규화한다.
더욱이, 본 발명의 바람직한 실시형태에 따르면, 확률 분포 손실 함수 생성기는 의사-해밍 유사도를 이진 코드 길이를 사용하여 정규화한다.
마지막으로, 본 발명의 바람직한 실시형태에 따르면, 확률 분포 손실 함수 생성기는 코사인 유사도 및 의사-해밍 유사도를 확률로 변환한다.
본 발명으로 여겨지는 기술 요지는 본 명세서의 결론부에서 특정하게 지적되고 명확하게 청구된다. 그러나, 그 목적, 특징, 및 장점과 함께 장치(organization) 및 작동 방법 모두로서의 본 발명은, 첨부 도면과 함께 읽을 때에 후속하는 발명을 실시하기 위한 구체적인 내용을 참조함으로써 가장 잘 이해될 수 있을 것이다:
도 1은 종래 기술의 K 최근접 이웃 검색 시스템의 개략도이다;
도 2는 종래 기술의 근사 최근접 이웃 검색 시스템의 개략도이다;
도 3a 및 도 3b는 선행 기술 신경망의 개략적인 예시이다;
도 4a는 본 발명의 바람직한 실시형태에 따라 구성되고 동작하는, 훈련 도중의 신경 프록시 해시(neural proxy hash; NPH) 인코더의 모델의 개략도이다;
도 4b는 도 4a의 NPH 인코더에서 유용하게 사용되는, 훈련 대상 신경망의 개략도이다;
도 4c는 도 4a의 NPH 인코더에서 유용하게 사용되는 확률 분포 손실 함수(probability distribution loss function; PDLF) 생성기의 개략도이다;
도 4d는 도 4c의 PDLF 생성기가 동작하는 벡터를 구체적으로 나타내는 개략도이다;
도 4e는 도 4a의 NPH 인코더에서 유용하게 사용되는 훈련 벡터 생성기의 개략도이다;
도 5a는 도 4a의 NPH 인코더의 동작을 이해하는 데에 유용한, 예시적인 입력 분포 및 조기의 반복과 추후의 반복 각각으로부터의 두 개의 예시적인 출력 분포 각각의 그래픽 예시이다;
도 5b는 도 4a의 NPH 인코더의 동작을 이해하는 데에 유용한, 예시적인 훈련 벡터 세트 내의 입력 벡터의 분포의 그래픽 예시이다;
도 6은 추론 모드를 위해서 재구성된 신경망의 개략도이다; 그리고
도 7a 및 도 7b는 벤치마크 데이터세트 Sift1M에 대한 리콜-코드길이(recall-codelength) 곡선의 그래픽 예시이다.
간결하고 명확한 설명을 위하여, 도면에 도시된 요소들이 반드시 척도에 맞게 그려진 것은 아니라는 것이 이해될 것이다. 예를 들어, 요소들 중 일부의 치수는 다른 요소에 비하여 과장되어 분명하게 표시될 수도 있다. 더 나아가, 적합하다면, 참조 번호는 도면들에서 반복 사용되어 대응하거나 유사한 요소를 표시할 수도 있다.
후속하는 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위하여 여러 특정한 세부사항들이 진술된다. 그러나, 당업자들은 이러한 특정 세부사항들이 없어도 본 발명이 실시될 수 있다는 것을 이해할 것이다. 다른 사례들에서, 본 발명의 양태들을 불필요하게 모호하게 하지 않도록 주지의 방법, 프로시저들 및 구성요소들은 상세히 설명되지 않는다.
출원인은, 임의의 근사화 최근접-이웃(ANN) 유사도 검색의 속도 및 품질이 신경망 이진 해싱(NPH) 인코더에 의한 이진 인코딩 도중에 원본 부동-소수점 데이터 벡터들 사이의 지역성 관계 및 출력 이진 벡터들 사이의 지역성 관계의 보존을 개선함으로써 증가될 수 있다는 것을 깨달았다.
출원인은, 이러한 NPH 인코더의 성능이, 출력 의사-쌍극성 해밍 확률 분포를 입력 코사인 확률 분포에 비교하여 손실 함수를 새롭게 계산함으로써 개선될 수 있다는 것을 깨달았다.
가중치 업데이트를 위한 손실 함수의 후방 전파가 편도함수를 사용하기 때문에, 훈련하는 동안에 네트워크를 통과하는 손실을 계산하기 위하여 사용되는 연산이 미분가능한 것이 본질적이다. 출원인은, 추론 시에 이진 출력 벡터의 최적화를 위하여, 훈련하는 동안에 이들이 부동 소수점 의사-쌍극성 벡터로 표현될 수 있다는 것을 깨달았다. 훈련 프로세스는 최종적으로 -1 또는 +1 값을 가지는 출력 의사-쌍극성 값을 얻기 위해서 NPH 인코더를 훈련시킨다. 전술된 바와 같이, 훈련 도중의 NPH 인코더의 시스템 아키텍처는, 추론 도중에 사용되는, 실수 쌍극성 또는 이진 벡터로 인코딩할 NPH 인코더의 시스템 아키텍처와 다를 수 있다.
이제 훈련 도중의 NPH 인코더의 모델을 예시하는 도 4a를 참조한다. 훈련 모델(40)은 훈련 벡터 생성기(41), 훈련 대상 신경망(42) 및 확률 분포 손실 함수(probability distribution loss function; PDLF) 생성기(43)를 포함한다. 훈련 시나리오에서, 훈련 벡터 생성기(41)는 훈련 대상 신경망(42)에 입력되는 샘플 부동-소수점 벡터 q 및 k 개의 부동-소수점 레퍼런스 벡터 vi의 세트 N을 생성할 수 있다. 훈련 대상 신경망(42)은 입력 벡터 q 및 입력 벡터 세트 N을 의사-쌍극성 인코딩된 샘플 벡터 f(q) 및 의사-쌍극성 인코딩된 레퍼런스 벡터들f(N)의 세트로 각각 인코딩할 수 있다. PDLF 생성기(43)는 후술되는 바와 같이, 훈련 대상 신경망(42)에 대한 손실 함수 LKL을 의사-쌍극성 인코딩된 출력 샘플 벡터 f(q) 및 의사-쌍극성 인코딩된 출력 레퍼런스 벡터 세트 f(N) 사이의 의사-쌍극성 해밍 공간 확률 분포, 및 입력 샘플 벡터 q 및 입력 레퍼런스 벡터 세트 N 사이의 코사인 공간 확률 분포의 함수로서 생성할 수 있다. 앞에서 언급된 바와 같이, 손실 함수 LKL은 이제 훈련 프로세스의 각각의 반복에서의 훈련 대상 신경망(42)의 가중치를 조절하기 위하여 사용될 수 있다. 그러나, 추론 도중에, 훈련 대상 신경망(42)은 후술되는 바와 같이 참 이진 벡터를 출력하도록 재구성될 수 있다.
훈련 도중에, 훈련 벡터 생성기(41)가 모든 훈련 반복에 대하여 복수 개인 b 개의 샘플 벡터 qj, 및 복수 개의 연관된 레퍼런스 벡터 세트 Nj를 출력할 수 있다는 것에 주의해야 한다. 배치 크기 b는 기계 학습에서 일반적으로 사용되는 구성가능한 하이퍼-파라미터이다. 오차 또는 손실은 각각의 벡터 qj에 대해서 그 레퍼런스 벡터 세트 Nj에 반하여 계산되고, 총 손실 함수는 반복에서의 모든 qj에 걸친 평균으로서 정의된다. 편도함수 계산 및 가중치 업데이트를 포함하는 후방 전파 프로세스는 사용되고 있는 신경망 프레임워크, 예를 들어 TensorFlow, PyTorch 또는 MxNet을 사용하여 수행될 수 있다. 최적화의 그레디언트 감소 방법(예를 들어, SGD, Adam 최적화기 등) 및 학습 레이트, 스케줄링 및 모멘텀과 같은 표준 NN 훈련 하이퍼파라미터는 신경망 프레임워크를 통해서 구성될 수 있다.
훈련 반복은 훈련 벡터 세트 T로부터의 모든 벡터가 샘플 벡터 q로서 사용될 때까지 계속될 수 있다. 이것은 에포크(epoch)라고 알려져 있다. 훈련용 세트 T는 손실 함수가 수렴하고 네트워크가 완전히 훈련될 때까지 훈련 대상 네트워크를 거쳐서 다수 회 전달될 수 있다. 전체 훈련 벡터 세트 T가 네트워크를 거쳐서 전달되는 횟수는 에포크의 개수라고 알려져 있다.
이제, 구성가능한 개수의 숨은 계층(421), 최종 임베딩 계층(422), 및 쌍극성 시뮬레이터 계층(423)을 포함하는 훈련 대상 신경망(42)을 구체적으로 도시하는 도 4b를 참조한다. 예를 들어, 각각의 숨은 계층(421)은 구성가능한 개수의 유닛을 가지는 조밀한 계층(dense layer; FC)(4211), 배치 정규화(batch normalization; BN) 계층(4212), 및 ReLU 활성화 계층(4213)을 포함할 수 있다. 임베딩 계층(422)은 n 개의 개수의 유닛을 가지는 조밀한 계층(FC)(4221)(n은 이진 벡터의 최종의 소망되는 코드-길이임), BN 계층(4222) 및 L2-정규화기(normalizer) 계층(4223)을 포함할 수 있다. 앞서 언급된 바와 같이, 신경망(42)은 의사-쌍극성 출력 벡터를 출력하도록 설계될 수 있고, 이것이 훈련 단계에서 사용될 수 있다. 이러한 목적을 위해서, 임베딩 계층(422)은 L2-정규화된 부동-소수점 표현 벡터를 출력으로서 생성할 수 있다. 쌍극성 벡터 {-1, +1}을 시뮬레이션하기 위하여, 임베딩 계층(422)으로부터의 출력 임베딩이 이제, 쌍극성 시뮬레이터 계층(423)에서의 β-스케일링된 함수(4231) 및 하이퍼볼릭 탄젠트 함수(tanh)(4232)를 사용한 비차동(non-differential) sgn 함수의 완화(relaxation)를 거치게 될 수 있다.
선택된 코드 길이 n이 구성가능하고, 데이터베이스 크기, 요구된 정확도, 메모리 리소스 및 요구된 검색 시간 쓰루풋 및 레이턴시와 같은 여러 인자 사이의 트레이드오프를 고려해야 한다는 것이 이해될 것이다.
이제 PDLF 생성기(43)를 구체적으로 나타내는 도 4c를 참조한다. 생성기(43)는 코사인 공간 확률 분포 계산기(431), 의사-쌍극성 해밍 공간 확률 분포 계산기(432) 및 손실 함수 계산기(433)를 포함한다. 생성기(43)는 배치 내의 모든 샘플 벡터 qj에 대해서 동작할 수 있다. 그러나, 다음의 수학식을 단순화하기 위하여, 후속하는 텍스트는 단일 샘플 벡터 q 및 그 연관된 레퍼런스 세트 N에 대한 연산을 설명할 것이다(그렇지 않다고 표시되지 않으면).
또한, PDLF 생성기(43)에서 연산되는 벡터를 구체화하는 도 4d를 참조한다. 그 좌측 열에서, 도 4d는 샘플 벡터 q에 대한 연관된 레퍼런스 벡터 vi의 세트 N에 이루어지는 연산을 보여주고, 그 우측 열에서 도 4d는 의사-쌍극성 인코딩된 샘플 벡터 f(q)에 대한 연관된 레퍼런스 벡터 f(vi)의 의사-쌍극성 인코딩된 출력 세트 f(N)에 대한 연산을 보여준다.
앞에서 언급된 바와 같이, 훈련 시나리오에서는, 코사인 분포 계산기(431)가 세트 N 내의 샘플 부동-소수점 벡터 q 및 자신의 k 개의 연관된 부동-소수점 레퍼런스 벡터 vi 사이의 코사인 유사도 SCi의 확률 분포를 결정할 수 있다.
하나의 레퍼런스 벡터 vi에 대한 코사인 유사도 SCi는 수학식 2에 제공된 바와 같이 벡터 q 및 벡터 vi 사이의 내적 및 그들의 놈(norm)의 함수로서 정의된다.
간결성을 위하여, 입력 벡터는 이 되게끔 네트워크 및 손실 계산에 들어가기 전에 L2-정규화를 거치도록 전처리될 수 있다.
그러면, 코사인 분포 계산기(431)는 우선 그 연관된 레퍼런스 세트 N에 걸친 q의 확률 PCi를 규정함으로써, 코사인 유사도 SCi(도 4d의 제 2 행에서 상이한 폭 요소의 벡터로서 표시됨)를 샘플 q에 대한 유사도 확률 분포 PDC로 변환할 수 있다. 도 4d의 제 3 행에 표시된 바와 같이, 입력 확률 분포 PDC는 수학식 3에서 표시된 바와 같이 "softmax" 함수와 유사한 방식으로 각각 결정된 k 개의 레퍼런스별 벡터 확률 PCi의 벡터이다:
여기에서 softmax 함수는 k 개의 실수를 취하고, 이들을 실수의 지수에 비례하는 k 개의 확률로 이루어지는 로 정규화한다. 결과적으로, 확률 PCi의 세트는 합산하여 1이 된다.
출원인은, 훈련 도중에 코사인 공간 내에서가 아니라 이진 해밍 공간 내에서의 인코딩된 벡터의 상대적인 유사도를 보존하기 위하여, 정규화된 의사-해밍 유사도가 실수 해밍 유사도를 시뮬레이션하기 위해서 사용될 수 있다는 것을 깨달았다. 출원인은, 의사-해밍 유사도가 다음과 같이 내적을 사용하는 차분 방식으로 의사-쌍극성 벡터로부터 계산될 수 있다는 것을 역시 깨달았다:
의사-쌍극성 {-1, +1} 공간 내의 두 개의 인코딩된 출력 벡터 f(q) 및 f(vi)에 대한 의사-해밍 유사도 SH는 수학식 4에 제공된 것과 같이 의사-쌍극성 벡터 f(q) 및 f(vi)의 내적으로서 규정될 수 있다.
여기에서, 전술된 바와 같이 n은 인코딩된 벡터의 이진 코드 길이이고, 이것은 훈련 도중의 출력 의사-쌍극성 벡터의 차원이다. 의사-해밍 유사도 SHi의 벡터는 도 4d의 제 2 행의 우측에 표시된다.
출원인은, 원본 입력 공간 및 출력 공간의 유사도가 값들의 동일한 범위 내에 있도록 보장하기 위해서, 의사-쌍극성 값을 가정할 때, 출력 유사도 점수가 이진 코드 길이 n을 사용하여(-1, +1)의 범위로 정규화될 수 있다는 것을 깨달았다. 그러므로, 샘플 q의 의사-쌍극성 인코딩된 벡터 및 레퍼런스 포인트 v i 의 의사-쌍극성 인코딩된 벡터 f(v i ) 사이의 정규화된 의사-해밍 유사도 SHi가 수학식 5에서와 같이 규정된다.
여기에서 α는 최적화된 정확도를 위해 훈련 도중에 미세-튜닝될 수 있는 구성가능한 정정 인자이고, 주로 데이터세트 내의 입력 피쳐 벡터의 값들의 범위 및 함수(4231) 내의 β-스케일에 의존한다.
그러면, 해밍 분포 계산기(432)는 우선 그 연관된 레퍼런스 세트 N에 걸친 q의 확률 PHi를 규정함으로써, 의사-해밍 유사도 SHi를 활용하여, 샘플 의 인코딩된 의사-쌍극성 벡터 에 대한 의사-해밍 유사도 확률 분포를 구성할 수 있다. 확률 PHi의 벡터는 의사-쌍극성 해밍 확률 분포 PDH를 규정하고, 도 4d의 제 3 행의 우측에 표시된다.
각각의 의사-쌍극성 해밍 확률은 다음과 같이 수학식 6에 따라서 결정된다:
코사인 유사도에 대한 경우와 같이, 하나의 인코딩된 레퍼런스 벡터 f(vi)에 대한 확률은 확률로 정규화된다. 결과적으로, 확률 PHi의 세트는 합하여 1이 된다.
입력 코사인 분포 PDC 및 출력 의사-쌍극성 해밍 분포 PDH는 상대적인 엔트로피라고도 불리는 쿨백-라이블러 발산 DKL을 사용하여, 확률 분포 손실 함수 LKL을 계산하기 위한 확률 분포 손실 계산기(433)에 의해 사용될 수 있다. 쿨백-라이블러 발산은 출력 확률 분포가 입력 또는 "타겟" 확률 분포로부터 어떻게 다른지의 척도이다. 수학식 7에서, 샘플 q에 대한 손실 함수 LKL은 쿨백-라이블러 발산을 사용하여 규정되고, 이것은 도 4d에 도시된 바와 같이 질의 q에 관한 입력 및 출력 확률 분포 PCi 및 PHi를 활용한다.
이진 지역성 보존 벡터를 생성하기 위한 이러한 최소화 목적은, 명시적인 다중(multi-wise) 정규화된 KL 발산 손실이라고 기술될 수 있는데, 여기에서 "명시적(explicit)"이란 라벨과 같은 일부 공간 파티셔닝 방법을 암시적으로 사용하는 것이 아니라 거리들 사이의 관계를 사용하는 것을 가리킨다; "다중(multi-wise)"이란 세 개 또는 네 개 이상의 아이템 사이의 관계를 보존하는 다수의 레퍼런스 포인트를 사용하는 것을 가리킨다; 그리고 "정규화된(normalized)"이란 유사도-유사도 발산 최소화(similarity-to-similarity divergence minimization)를 가리킨다.
본 발명이 연속적인 것이 아니라 차동적인 방식으로 출력 공간 내의 의사-해밍 유사도를 최적화하려고 시도할 수 있고, 이것은 f(q) 및 f(vi) 사이의 내적을 사용함으로써 이를 수행한다는 것이 이해될 것이다.
앞서서 언급된 바와 같이, 배치마다 다수의 샘플 qj가 존재하는 경우, 손실 함수 계산기(433)는 각각의 샘플 qj에 대하여 수학식 7을 계산할 수 있고, 다수의 손실을 평균화하여 총 평균 손실 함수를 형성할 수 있다. 이것이 도 4d에서 LKLs의 평균값으로서의 최종 출력을 가지는 다음 샘플 q 및 그 레퍼런스 벡터 vi 위의 루프로서 표시된다. 대안적인 바람직한 실시형태에서, 손실 함수 계산기(433)는 모든 샘플 qj에 대한 손실 함수를 병렬적으로 생성할 수 있고, 그 이후에 손실 함수 계산기(433)가 그들의 평균 값을 결정하여 총 평균 손실 함수를 형성할 수 있다.
출원인은, 임의의 질의 q 근방에 의미있는 유사도 분포를 생성하기 위해서는, q 주위의 의미있는 포인트들, 예컨대 그 k 개의 최근접 이웃을 q에 대한 레퍼런스 포인트로서 사용하는 것이 가장 효과적일 수 있다는 것을 깨달았다. 분포를 형성하기 위하여 q에 대한 k 개의 최근접 이웃을 사용하면 훈련 프로세스 도중에 데이터 포인트들 사이의 랭킹을 보존할 수 있는 상대적인 정보를 활용할 수 있고, 관련성이 없는 멀리 있는 포인트의 노이즈, 예컨대 모든 벡터가 각각의 샘플 벡터 q로의 레퍼런스 벡터로서 사용되는 경우에 존재할 수 있는 바와 같이 노이즈를 피할 수 있다.
반면에, 출원인은, 전체 훈련용 세트를 k-NN 레퍼런스 세트를 생성하기 위한 기반으로서 사용하면 과다-국지화 및 과다맞춤(overfit)이 생길 수 있고, 따라서 훈련용 세트가 매우 큰 경우에 계산적으로 거의 실현불가능한 것에 더하여 최선의 일반화된 솔루션에 도달할 수 없게 될 수 있다. 그 대신에, 데이터 분포의 표현을 형성하기에 충분한(예를 들어, 약 10%) '프록시' 포인트의 서브세트는, 그 중에서 최근접-이웃을 레퍼런스 세트로서 추출하기 위한 프록시' 벡터 세트를 생성하기 위해서, 훈련용 세트로부터 무작위로 샘플링될 수 있다.
출원인은 이러한 프록시 세트가 더 일반적인 솔루션을 위한 레퍼런스 세트의 완전한 증강 및 변동을 제공하기 위하여, 각각의 배치-반복에서 재생성될 수 있다는 것을 깨달았다. 더욱이, 훈련용 세트의 진행중인 서브샘플링은 그 분포의 양호한 표현을 보장할 수 있다.
훈련 데이터 벡터 저장소(411), 프록시 벡터 세트 생성기(412), 샘플 벡터 선택기(413) 및 KNN 벡터 세트 생성기(414)를 포함하는 훈련 벡터 생성기(41)를 구체화하는 도 4e를 참조한다. 벡터 데이터 저장소(411)는 t 개의 훈련 벡터를 보유한 전체 훈련용 벡터 세트 T를 저장한다. 프록시 벡터 세트 생성기(412)는, R이 T의 콤팩트한 '프록시' 표현이 되도록 r 개의 벡터의 큰 랜덤 샘플을 T로부터 취함으로써, 각각의 훈련 반복에 대하여 '프록시' 벡터 세트 R을 생성할 수 있다. 'r'은 구성가능한 하이퍼파라미터이다. 예를 들어, r은 t의 1% 내지 10%로 변동할 수 있다.
각각의 반복에 대하여, 샘플 벡터 선택기(413)는 훈련용 세트 T로부터 샘플 벡터 qj의 선택 배치 크기 b를 선택할 수 있다. KNN 벡터 세트 생성기(414)는 각각의 벡터 q에 대한 k 개의 최근접 이웃 벡터 vi의 세트 N을 결정할 수 있다.
각각의 반복 도중에는 하나의 프록시 벡터 세트 R만이 생성될 수 있고, 이것이 해당 반복의 샘플 q에 대한 레퍼런스 벡터 세트 N을 생성하기 위하여 사용될 수 있다는 것에 주의해야 한다.
예시 예시적인 입력 분포(50), 및 두 개의 예시적인 출력 분포(55 및 59)를 예시하는 도 5a를 간단히 참조하는데, 출력 분포(55)는 훈련 대상 신경망(42)의 초기 반복 중 하나의 결과를 보여주고, 출력 분포(59)는 훈련 대상 신경망(42)의 추후의 반복 중 하나의 결과를 보여준다. 명확화를 위하여 2-차원의 공간만이 표시되고, 시각적 단순성을 위해서 유사도는 유클리드 거리로서 표시된다. 명확화를 위하여 입력 벡터 q 및 자신의 출력 벡터 f(q)는 작은 원으로서 표시되고, 그들의 5 개의 연관된 레퍼런스 벡터인 v1 - v5 및 f(v1) - f(v5)가 x로 표시된다.
알 수 있는 바와 같이, 입력 분포(50)에서는, 5 개의 연관된 레퍼런스 벡터(v1 - v5)가 상이한 길이를 가지고, 레퍼런스 벡터 v1이 가장 짧으며(즉, 입력 벡터 q에 가장 가까움), 레퍼런스 벡터 v5가 가장 길다(즉, 입력 벡터 q로부터 더 멀리 떨어져 있음).
초기 반복은 일반적으로 열악한 결과를 생성한다. 결과적으로, 출력 분포(55)의 출력 레퍼런스 벡터 f(vi)의 순서는 입력 분포(50)의 레퍼런스 벡터 vi의 순서와 다르다. 따라서, 출력 레퍼런스 벡터 f(v5)는 여전히 가장 길지만 출력 레퍼런스 벡터 f(v3)는 이제 가장 짧다. 더욱이, 입력 분포(50)의 레퍼런스 벡터 vi가 입력 벡터 q에 대한 최근접 이웃일 수 있는 반면에, 출력 분포(55)의 출력 레퍼런스 벡터 f(vi)는 최근접 포인트가 아니다. 검정 점으로 표시된 출력 분포(55)의 관련이 없는 포인트(56)가 더 근접하여, 신경망(42)이 아직 완전히 훈련되지 않았다는 것을 표시한다.
그러나, 훈련은 결과를 개선시킨다. 따라서, 추후의 출력 분포(59)에서는, 출력 레퍼런스 벡터 f(v1) - f(v5)의 순서가 입력 분포(50)의 레퍼런스 벡터 v1 내지 v5의 순서와 유사하다. 더욱이, 도면에서 58로 명명된 관련되지 않은 포인트는 출력 레퍼런스 벡터 f(v1) - f(v5)보다 출력 벡터 f(q)로부터 더 멀리 있다.
훈련 데이터 벡터 저장소(411) 내에 저장될 수 있는 훈련 벡터 세트 T 내에서 2-D인 입력 벡터의 예시적인 분포를 예시하는 도 5b를 간단히 참조하는데, 각각의 벡터는 도트(61)로서 예시된다. 추가적인 x(62)로 예시된 프록시 세트 R의 r 개의 벡터의 서브세트는 프록시 벡터 세트 생성기(412)에 의해 선택된 벡터를 나타낸다. 샘플 벡터 선택기(413)에 의해 선택된 샘플 벡터 qj는 큰 흰색 점(65)으로 예시되고, 벡터 세트 생성기(414)에 의해 선택된 k 개의 최근접 이웃 벡터 vi는 경계 원(68) 내에서 연관된 샘플 벡터 qj에 연결된 x(66)로 예시된다. 경계 원(68)이 훈련 벡터 세트 T의 일부만을 커버하고, 경계 원들(68) 중 일부는 중첩할 수 있다는 것에 주의한다.
앞서 언급된 바와 같이, 신경망이 훈련되면(즉, 그 손실 값이 수렴되었으면), 결과적으로 얻어지는 훈련된 신경망이 생산 시에 추론 모드에서 사용될 수 있다. 그러나, 앞서 언급된 바와 같이, 추론 모드에서는 신경망이, 훈련 중에 생성된 의사-쌍극성 인코딩된 출력 벡터와 반대로, 입력 부동-소수점 벡터 v를 참 이진 인코딩된 출력 벡터 f(v)로 인코딩한다.
도 4b의 신경망(42)과 유사하지만 추론 모드에 대해서 재구성된 신경망(42')을 예시하는 도 6을 간단히 참조한다. 따라서, 의사-쌍극성 인코딩된 벡터를 출력하기 위해서 신경망(42) 내에 존재했던 모든 계층들은 제거되었다. L2-정규화기(4223)가 임베딩 계층(422')으로부터 제거되었다. β-스케일링된 함수(4231) 및 tanh 함수(4232) 계층을 가지는 쌍극성 시뮬레이션 계층(423)이 SGN 계층(4241)을 포함하는 이진 출력 계층(424)으로 대체되었다. 결과적으로 얻어지는 이진 코드는 메모리 인쇄 감소 및 계산 효율을 위해서 비트-표현 벡터(즉, 값마다의 비트)로 패킹될 수 있다.
이제 벤치마크 데이터세트 Sift1M에 대한 recall-코드길이 곡선을 예시하는 도 7a 및 도 7b를 참조한다. 인코더는 100k 개의 샘플의 미리 정의된 훈련용 세트에서 훈련되었고, 1M 개의 데이터베이스 세트 중에서 검색된 미리 규정된 10K 개의 샘플 세트에 대해서 평가되었다. Recall-K=100@L=1000이 유사도 검색을 평가할 때 사용될 수 있는 정확도 메트릭이다. 실측 정보(ground-truth)는 코사인 유사도를 사용하는 원본 피쳐 공간 내의 실제 100 개의 최근접 이웃이다. Recall은 모든 샘플에 대해서 평균화된, 이진 공간 내의 최단 해밍 거리를 가지는 L=1000 개의 위치결정된 샘플 중에 존재하는 원본 공간 내의 k=100 개의 실제 최근접-이웃으로부터의 퍼센트이다. Recall은 여러 훈련된 출력 코드 길이에 걸쳐 계산된다. 도 7a는 본 발명의 지역성-민감-해싱(LSH) 인코딩 및 신경 프록시 해시(NPH) 인코딩에 대한, 32 내지 128 비트의 벡터 코드 길이에 걸친 recall-K=100@L=1000을 예시한다. 도 7b는 256 내지 1024 비트의 벡터 코드 길이에 걸친 recall-K=100@L=1000을 예시한다. 두 도면 모두에서, NPH 곡선이 LSH 곡선보다 실질적으로 위에 있고, 이것이 LSH에 비한 상당한 개선을 표시한다는 것에 주의한다.
네 개의 공중이 입수가능한 표준 ANN 벤치마크 데이터세트(Sift1M, Gist, Deep1M, ANN1M)를 사용한 테스트에서, 출원인이 낮은 비트 길이(64 비트) 및 높은(1024 비트) 코드 길이 양자 모두에서 다른 이진 해싱 방법보다 7% 내지 17%의 개선이 있음을 시연하였다는 것에 주의해야 한다. 이러한 분야에서의 종래의 연구들이 작은 코드 크기(최대 128 비트)에 대해서만 정확도의 개선을 보고한다는 것에 주의해야 한다. 리소스들이 이용가능한 경우, 본 발명이 정확도의 증가를 제공한다는 것이 이해될 것이다.
구체적으로 달리 진술되지 않는 한, 앞선 논의로부터 명백히 알 수 있는 것과 같이, 명세서 전체에 걸쳐서 "처리", "컴퓨팅", "계산", "결정" 등과 같은 용어를 활용한 설명이, 클라이언트/서버 시스템, 모바일 컴퓨팅 디바이스, 연관된 처리 유닛, 스마트 기기, 클라우드 컴퓨팅 유닛 또는 컴퓨팅 시스템의 레지스터 및/또는 메모리 내의 데이터를 컴퓨팅 시스템의 메모리, 레지스터, 또는 그 외의 이러한 정보 저장, 송신 또는 디스플레이 디바이스 내의 데이터로 조작 및/또는 변환하는 유사한 전자 컴퓨팅 디바이스와 같은, 임의의 타입의 범용 컴퓨터의 동작 및/또는 프로세스를 가리킨다는 것이 이해된다.
본 발명의 실시형태는 본 명세서의 동작들을 수행하기 위한 장치를 포함할 수 있다. 이러한 장치는 원하는 목적을 위하여 특별하게 구성될 수도 있고, 또는 컴퓨터 내에 저장된 컴퓨터 프로그램에 의하여 선택적으로 활성화되거나 재구성되는, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 통상적으로 가지는 컴퓨팅 디바이스 또는 시스템을 포함할 수 있다. 결과적으로 얻어지는 장치는 소프트웨어에 의하여 명령될 경우 범용 컴퓨터를 본 명세서에서 논의된 바와 같은 진보적인 구성요소로 바꿀 수도 있다. 명령은 소망되는 컴퓨터 플랫폼과 함께 동작하는 진보적인 디바이스를 규정할 수 있다. 이러한 컴퓨터 프로그램은 광학 디스크, 자기-광학 디스크, 판독-전용 메모리(ROM), 휘발성 메모리 및 비휘발성 메모리, 랜덤 액세스 메모리(RAM), 전기적으로 프로그래밍가능한 판독-전용 메모리(EPROM), 전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(EEPROM), 자기 또는 광학 카드, 플래시 메모리, 디스크-온-키(disk-on-key) 또는 전자 명령을 저장하기에 적합하고 컴퓨터 시스템 버스에 연결될 수 있는 임의의 다른 타입의 미디어를 포함하지만 이들로 한정되는 것은 아닌 임의의 타입의 디스크에 저장될 수 있다. 컴퓨터 판독가능 저장 매체도 역시 클라우드 저장소 내에 구현될 수 있다.
일부 범용 컴퓨터는 데이터 네트워크 및/또는 모바일 통신 네트워크와 통신할 수 있게 하는 적어도 하나의 통신 요소를 포함할 수 있다.
본 명세서에서 제공되는 프로세스 및 디스플레이는 임의의 특정 컴퓨터 또는 다른 장치와 반드시 관련되는 것은 아니다. 다양한 범용 시스템이 본 명세서의 교시 내용에 따르는 프로그램과 함께 사용될 수 있으며, 또는 원하는 방법을 수행하기 위하여 더 전문화된 장치를 구성하는 것이 편리하다고 것이 명확하게 드러날 수 있다. 이러한 다양한 시스템에 대한 소망되는 구성은 상기 설명으로부터 명백해질 것이다. 추가적으로, 본 발명의 실시형태는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어는 본 명세서에서 설명된 바와 같은 본 발명의 교시를 구현하기 위하여 사용될 수 있다는 것이 이해될 수 있을 것이다.
본 발명의 특징들이 본 명세서에서 예시되었고 설명되었지만, 이제 많은 변형, 치환, 변경, 및 균등물이 당업자들에게 떠오를 것이다. 그러므로, 첨부된 청구항은 본 발명의 진정한 사상에 속하는 이러한 모든 변형예 및 변경예를 포함하는 의도를 가진다는 것이 이해되어야 한다.

Claims (29)

  1. 적어도 하나의 프로세서와 적어도 하나의 메모리를 가지는 컴퓨팅 시스템에서, 출력 공간 내의 샘플에 대한 입력 공간 내의 샘플 사이의 지역성 관계(locality relationship)를 보존하도록 신경망-기반 부동-소수점-이진 피쳐 벡터 인코더를 훈련하기 위한 방법으로서,
    상기 프로세서는 부동-소수점 입력 및 부동-소수점 의사-쌍극성(pseudo-bipolar) 출력을 가지는 훈련 대상 신경망을 구비하고,
    훈련 반복별로 상기 프로세서는:
    훈련 벡터 세트로부터 레퍼런스 포인트(vi)의 세트(R)를 선택하는 단계;
    상기 입력 공간에서의 질의와 상기 세트의 각 레퍼런스 포인트(vi) 사이의 부동 소수점 코사인 유사도를 상기 레퍼런스 포인트(vi) 중 랜덤하게 선택된 레퍼런스 포인트와 가장 유사한 질의의 확률을 정의하는 입력 확률 벡터로 변환하는 단계;
    상기 출력 공간에서의 부동-소수점 의사-쌍극성 인코딩된 벡터 질의와 상기 세트의 각 레퍼런스 포인트(vi)의 의사-쌍극성 인코딩된 벡터 사이의 의사-해밍 유사도를 상기 레퍼런스 포인트(vi) 중 랜덤하게 선택된 레퍼런스 포인트와 가장 유사한 질의의 해밍 확률을 정의하는 출력 확률 벡터로 변환하는 단계; 그리고,
    상기 입력 확률 벡터로부터 구성된 입력 확률 분포와 상기 출력 확률 벡터로부터 구성된 출력 확률 분포를 비교하는 손실 함수를 생성하는 단계를 수행하도록 구성된, 훈련 방법.
  2. 제 1 항에 있어서,
    상기 선택하는 단계는,
    대표 프록시 벡터 세트를 생성하도록, 상기 훈련 벡터 세트로부터 복수 개의 벡터의 랜덤 샘플링을 취하는 단계;
    질의로서 동작하도록 상기 훈련 벡터 세트로부터 샘플 벡터를 선택하는 단계; 및
    인코딩될 레퍼런스 벡터 세트를 생성하도록, 상기 프록시 벡터 세트로부터, 상기 샘플 벡터에 최근접한 k 개의 최근접 이웃 벡터들의 세트를 찾는 단계를 포함하는, 훈련 방법.
  3. 제 2 항에 있어서,
    상기 선택하는 단계는,
    상기 취하는 단계를 각각의 훈련 반복에 대하여 반복하는 단계를 포함하는, 훈련 방법.
  4. 제 2 항에 있어서,
    상기 선택하는 단계는 훈련 반복별로 다수 회 반복하여 각각의 훈련 반복에 대하여 복수 개의 샘플 벡터를 생성하는 단계를 더 포함하는, 훈련 방법.
  5. 제 4 항에 있어서,
    상기 선택하는 단계는
    상기 복수 개의 샘플 벡터의 샘플 벡터마다 하나씩 복수 개의 상기 레퍼런스 벡터 세트를 생성하도록, 상기 찾는 단계를 반복하는 단계를 포함하는, 훈련 방법.
  6. 제 1 항에 있어서,
    상기 생성하는 단계는,
    상기 입력 확률 분포 및 상기 출력 확률 분포로부터 쿨백-라이블러(Kullback-Leibler) 발산을 사용하여 상기 손실 함수를 계산하는 단계를 포함하는, 훈련 방법.
  7. 제 1 항에 있어서,
    훈련을 위하여, 상기 신경망은,
    베타-스케일링된 tanh 계층을 사용하여 상기 부동-소수점 의사-쌍극성 인코딩된 샘플 및 레퍼런스 벡터를 생성하는 출력 계층을 포함하는, 훈련 방법.
  8. 제 1 항에 있어서,
    상기 생성하는 단계는,
    상기 출력 공간 내의 내적을 사용하여 상기 의사-해밍 유사도를 계산하는 단계를 포함하는, 훈련 방법.
  9. 제 1 항에 있어서,
    상기 생성하는 단계는,
    상기 코사인 유사도 및 상기 의사-해밍 유사도가 값들의 동일한 범위 내에 속하도록 정규화하는 단계를 포함하는, 훈련 방법.
  10. 제 9 항에 있어서,
    상기 정규화하는 단계는,
    상기 의사-해밍 유사도를 이진 코드 길이를 사용하여 정규화하는 것을 포함하는, 훈련 방법.
  11. 제 1 항에 있어서,
    상기 방법은,
    상기 신경망이 훈련되면, 상기 프로세서는 상기 훈련된 신경망으로부터 추론 신경망을 생성하고,
    상기 추론 신경망은 참(true) 이진 벡터를 출력하기 위한 것인, 훈련 방법.
  12. 제 11 항에 있어서,
    상기 추론 신경망을 생성하는 단계는,
    상기 훈련된 신경망으로부터 의사-쌍극성 출력 계층을 제거하는 것; 및
    상기 추론 신경망을 생성하도록, 상기 훈련된 신경망에 적어도 하나의 이진 출력 계층을 추가하는 것을 포함하는, 훈련 방법.
  13. 제 11 항에 있어서,
    상기 참 이진 벡터는 근사 최근접 이웃 검색에 사용되기 위한 것인, 훈련 방법.
  14. 출력 공간 내의 샘플에 대한 입력 공간 내의 샘플 사이의 지역성 관계를 보존하도록 신경망-기반 부동-소수점-이진 피쳐 벡터 인코더를 훈련하기 위한 시스템으로서,
    부동-소수점 입력 및 부동-소수점 의사-쌍극성 출력을 가지는 훈련 대상 신경망;
    훈련 벡터 세트로부터 레퍼런스 포인트(vi)의 세트(R)를 선택하기 위한 훈련 벡터 생성기;
    상기 입력 공간에서의 질의와 상기 세트의 각 레퍼런스 포인트(vi) 사이의 부동-소수점 코사인 유사도를 상기 레퍼런스 포인트(vi) 중 랜덤하게 선택된 하나와 가장 유사한 질의의 확률을 정의하는 입력 확률 벡터로 변환하는 코사인 분포 계산기;
    상기 출력 공간에서의 부동-소수점 의사-쌍극성 인코딩된 벡터 질의와 상기 세트의 각 레퍼런스 포인트(vi)의 의사-쌍극성 인코딩된 벡터 사이의 의사-해밍 유사도를 상기 레퍼런스 포인트(vi) 중 랜덤하게 선택된 레퍼런스 포인트와 가장 유사한 질의의 해밍 확률을 정의하는 출력 확률 벡터로 변환하는 의사-쌍극성 해밍 분포 계산기; 및
    상기 입력 확률 벡터로부터 구성된 입력 확률 분포와 상기 출력 확률 벡터로부터 구성된 출력 확률 분포를 비교하는 손실 함수를 생성하기 위한 확률 분포 손실 함수 생성기를 포함하는, 훈련 시스템.
  15. 제 14 항에 있어서,
    상기 훈련 벡터 생성기는:
    훈련 벡터 세트를 저장하기 위한 훈련 데이터 벡터 저장소;
    대표 프록시 벡터 세트를 생성하도록, 상기 훈련 벡터 세트로부터 복수 개의 벡터의 적어도 하나의 랜덤 샘플링을 취하기 위한 프록시 벡터 세트 생성기;
    상기 질의로 동작하도록 상기 훈련 벡터 세트로부터 적어도 하나의 샘플 벡터를 선택하기 위한 샘플 벡터 선택기; 및
    상기 인코더에 의하여 인코딩될 레퍼런스 벡터 세트를 생성하도록, 상기 프록시 벡터 세트로부터, 상기 샘플 벡터에 최근접한 k 개의 최근접 이웃 벡터들의 적어도 하나의 세트를 찾기 위한 KNN 벡터 세트 생성기를 더 포함하는, 훈련 시스템.
  16. 제 15 항에 있어서,
    상기 프록시 벡터 세트 생성기는, 각각의 훈련 반복에 대한 대표 프록시 벡터 세트를 생성하도록, 상기 훈련 벡터 세트로부터 복수 개의 벡터의 랜덤 샘플링을 취하기 위한 것인, 훈련 시스템.
  17. 제 16 항에 있어서,
    상기 샘플 벡터 선택기는 각각의 상기 훈련 반복에 대하여, 상기 훈련 벡터 세트로부터 복수 개의 상기 샘플 벡터를 선택하기 위한 것인, 훈련 시스템.
  18. 제 17 항에 있어서,
    상기 KNN 벡터 세트 생성기는,
    상기 복수 개의 샘플 벡터의 샘플 벡터마다 하나씩, 상기 프록시 벡터 세트로부터 k 개의 최근접 이웃 벡터들의 복수 개의 상기 세트를, 훈련 반복별로 찾기 위한 것인, 훈련 시스템.
  19. 제 14 항에 있어서,
    상기 손실 함수는 쿨백-라이블러 발산인, 훈련 시스템.
  20. 제 14 항에 있어서,
    훈련을 위해, 상기 훈련 대상 신경망은,
    베타-스케일링된 tanh 계층을 사용하여 상기 부동-소수점 의사-쌍극성 인코딩된 샘플 및 레퍼런스 벡터를 생성하는 의사-쌍극성 출력 계층을 포함하는, 훈련 시스템.
  21. 제 14 항에 있어서,
    상기 확률 분포 손실 함수 생성기는,
    상기 출력 공간 내의 내적을 사용하여 상기 의사-해밍 유사도를 계산하기 위한 것인, 훈련 시스템.
  22. 제 20 항에 있어서,
    상기 신경망-기반 부동-소수점-이진 피쳐 벡터 인코더는,
    의사-쌍극성 출력 계층 대신에 적어도 하나의 이진 출력 계층을 가지는, 훈련을 하는 상기 훈련된 신경망의 수정된 버전인, 훈련 시스템.
  23. 제 22 항에 있어서,
    상기 적어도 하나의 이진 출력 계층의 출력은 근사 최근접 이웃 검색에서 사용되기 위한 것인, 훈련 시스템.
  24. 제 14 항에 있어서,
    상기 확률 분포 손실 함수 생성기는, 상기 코사인 유사도 및 상기 의사-해밍 유사도가 값들의 동일한 범위 내에 속하도록 정규화하기 위한 것인, 훈련 시스템.
  25. 제 24 항에 있어서,
    상기 확률 분포 손실 함수 생성기는 상기 의사-해밍 유사도를 이진 코드 길이를 사용하여 정규화하기 위한 것인, 훈련 시스템.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020227026510A 2020-06-24 2021-06-24 유사도 검색을 위한 신경 해싱 KR102615073B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063043215P 2020-06-24 2020-06-24
US63/043,215 2020-06-24
PCT/IB2021/055598 WO2021260612A1 (en) 2020-06-24 2021-06-24 Neural hashing for similarity search

Publications (2)

Publication Number Publication Date
KR20220110620A KR20220110620A (ko) 2022-08-08
KR102615073B1 true KR102615073B1 (ko) 2023-12-15

Family

ID=79282655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227026510A KR102615073B1 (ko) 2020-06-24 2021-06-24 유사도 검색을 위한 신경 해싱

Country Status (4)

Country Link
US (1) US11763136B2 (ko)
KR (1) KR102615073B1 (ko)
CN (1) CN115151914A (ko)
WO (1) WO2021260612A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210241025A1 (en) * 2020-10-28 2021-08-05 Beijing More Health Technology Group Co. Ltd. Object recognition method and apparatus, and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220059189A1 (en) 2020-07-14 2022-02-24 The Regents Of The University Of California Methods, circuits, and articles of manufacture for searching within a genomic reference sequence for queried target sequence using hyper-dimensional computing techniques

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862527B2 (en) * 2005-11-15 2014-10-14 Bernadette Garner Neural networks and method for training neural networks
US8537919B2 (en) * 2010-09-10 2013-09-17 Trellis Phase Communications, Lp Encoding and decoding using constrained interleaving
US8977627B1 (en) * 2011-11-01 2015-03-10 Google Inc. Filter based object detection using hash functions
RU2641447C1 (ru) * 2016-12-27 2018-01-17 Общество с ограниченной ответственностью "ВижнЛабс" Способ обучения глубоких нейронных сетей на основе распределений попарных мер схожести
US11151203B2 (en) * 2017-02-28 2021-10-19 Apple Inc. Interest embedding vectors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220059189A1 (en) 2020-07-14 2022-02-24 The Regents Of The University Of California Methods, circuits, and articles of manufacture for searching within a genomic reference sequence for queried target sequence using hyper-dimensional computing techniques

Also Published As

Publication number Publication date
US20230090262A1 (en) 2023-03-23
WO2021260612A1 (en) 2021-12-30
US11763136B2 (en) 2023-09-19
CN115151914A (zh) 2022-10-04
KR20220110620A (ko) 2022-08-08

Similar Documents

Publication Publication Date Title
Blanc et al. Adaptive sampled softmax with kernel based sampling
JP7360497B2 (ja) クロスモーダルな特徴の抽出方法、抽出装置、ならびに、プログラム
Van Der Maaten Barnes-hut-sne
CN112368697A (zh) 经由对偶分解评估损失函数或损失函数的梯度的系统和方法
CN106033426A (zh) 一种基于潜在语义最小哈希的图像检索方法
JP2016042359A (ja) 認識装置、実数行列分解方法、認識方法
CN112732864B (zh) 一种基于稠密伪查询向量表示的文档检索方法
US10872087B2 (en) Systems and methods for stochastic generative hashing
Sumbul et al. Deep learning for image search and retrieval in large remote sensing archives
US20210326756A1 (en) Methods of providing trained hyperdimensional machine learning models having classes with reduced elements and related computing systems
KR102615073B1 (ko) 유사도 검색을 위한 신경 해싱
CN115795065A (zh) 基于带权哈希码的多媒体数据跨模态检索方法及系统
Zhu et al. Unsupervised deep hashing with adaptive feature learning for image retrieval
Liu et al. L3e-hd: A framework enabling efficient ensemble in high-dimensional space for language tasks
Mudiyanselage et al. Feature selection with graph mining technology
Ma et al. Partial hash update via hamming subspace learning
Dash DECPNN: A hybrid stock predictor model using Differential Evolution and Chebyshev Polynomial neural network
US11755671B2 (en) Projecting queries into a content item embedding space
KR102579908B1 (ko) 비지도 대조 학습을 통해 데이터를 분류할 수 있는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
Zhu et al. Laplace maximum margin Markov networks
CN113743593B (zh) 神经网络量化方法、系统、存储介质及终端
US20160140409A1 (en) Text classification based on joint complexity and compressed sensing
Abou-Moustafa et al. Learning a metric space for neighbourhood topology estimation: Application to manifold learning
Zuo et al. FedViT: Federated continual learning of vision transformer at edge
Güldoğuş et al. Autoselection of the ensemble of convolutional neural networks with second-order cone programming

Legal Events

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