KR102002573B1 - 빠른 직교 투영 - Google Patents

빠른 직교 투영 Download PDF

Info

Publication number
KR102002573B1
KR102002573B1 KR1020177031376A KR20177031376A KR102002573B1 KR 102002573 B1 KR102002573 B1 KR 102002573B1 KR 1020177031376 A KR1020177031376 A KR 1020177031376A KR 20177031376 A KR20177031376 A KR 20177031376A KR 102002573 B1 KR102002573 B1 KR 102002573B1
Authority
KR
South Korea
Prior art keywords
matrix
element matrices
matrices
content
search space
Prior art date
Application number
KR1020177031376A
Other languages
English (en)
Other versions
KR20170132291A (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
Priority claimed from US14/951,909 external-priority patent/US10394777B2/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority claimed from PCT/US2016/047965 external-priority patent/WO2017052874A1/en
Publication of KR20170132291A publication Critical patent/KR20170132291A/ko
Application granted granted Critical
Publication of KR102002573B1 publication Critical patent/KR102002573B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • 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/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

선형 투영들을 효율적으로 수행하기 위한, 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램을 포함하는 방법들, 시스템들 및 장치들이 개시된다. 일 양상에서, 방법은 하나 이상의 콘텐츠 소스들로부터 복수의 콘텐츠 아이템들을 획득하기 위한 동작들을 포함한다. 부가적인 동작들은, 복수의 콘텐츠 아이템들 각각으로부터 복수의 특징들(features)을 추출하는 단계, 검색 공간을 생성하기 위해 추출된 특징들 각각에 대한 특징 벡터를 생성하는 단계, 생성된 특징 벡터들에 기초하여 일련의 엘리먼트 행렬들을 생성하는 단계, 변환이 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록, 일련의 엘리먼트 행렬들을 구조화된 행렬(structured matrix)로 변환하는 단계, 검색 오브젝트를 수신하는 단계, 수신된 검색 오브젝트에 기초하여 강화된 검색 공간을 검색하는 단계, 검색 오브젝트에 응답하는 콘텐츠 아이템들에 대한 하나 이상의 링크들을 제공하는 단계를 포함한다.

Description

빠른 직교 투영
예를 들어, 컴퓨터 비전 애플리케이션들과 같은 다양한 복잡한 컴퓨터 프로세스들에서 정보의 대규모 검색 및 리트리브(retrieval)는 선형 투영들을 활용할 수 있다. 이러한 애플리케이션들은 데이터 포인트들 사이의 유클리드 거리(Euclidean distance)를 보존하기 위해 직교 투영들을 활용할 수 있다. 그러한 직교 투영들의 생성은 통상적으로 구조화되지 않은 행렬의 이용을 요구한다. 그러나 구조화되지 않은 직교 행렬을 구축하는 계산 복잡도는 O(d3)인 반면에, 공간 및 시간 복잡도는 O(d2)이다. 이는, 구조화되지 않은 직교 행렬의 생성은 입력 차원이 증가함에 따라 극도로 비싼 동작이 된다는 것을 의미한다.
본 명세서에 의해 설명된 청구 대상의 일 구현에 따라, 선형 투영들은 계산 시간 및 저장 공간에 대한 비용 절감들을 달성하기 위해 비교적 큰 구조화된 행렬을 사용하여 효율적으로 수행된다. 비교적 큰 구조화된 행렬은 일련의 비교적 작은 직교 엘리먼트 행렬들에 기초하여 생성될 수 있다. 예를 들어, 비교적 큰 구조화된 행렬은 일련의 비교적 작은 직교 엘리먼트 행렬의 크로네커 곱(Kronecker product)을 취함으로써 형성될 수 있다. 수학에서,
Figure 112017107143514-pct00001
에 의해 표시되는 크로네커 곱 또는 텐서 곱(tensor product)은 큰 행렬을 발생시키는, 임의의 크기의 2개의 행렬에 대한 연산이다. 크로네커 곱은 벡터들로부터 행렬로의 외적의 일반화이며 베이시스(basis)의 표준 선택에 대한 텐서 곱의 행렬을 제공한다.
일부 양상들에서, 본 명세서에서 구현된 청구 대상은 복수의 콘텐츠 아이템들을 획득하는 동작들을 포함할 수 있는 방법들로 구현될 수 있다. 부가적인 동작들은 상기 복수의 콘텐츠 아이템들 각각으로부터 복수의 특징들(features)을 추출하는 단계, 검색 공간을 생성하기 위해 추출된 특징들 각각에 대한 특징 벡터를 생성하는 단계, 생성된 특징 벡터들에 기초하여 일련의 엘리먼트 행렬들(element matrices)을 생성하는 단계 ― 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 하나 이상의 관계들과 연관될 수 있음 ― , 및 변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록, 상기 일련의 엘리먼트 행렬들을 구조화된 행렬(structured matrix)로 변환함으로써 상기 검색 공간을 적어도 부분적으로 강화하는 단계를 포함할 수 있다. 부가적인 동작들은 검색 오브젝트를 수신하는 단계, 수신된 검색 오브젝트에 기초하여 강화된 검색 공간을 검색하는 단계, 및 상기 검색 오브젝트에 응답하는 하나 이상의 콘텐츠 아이템들에 대한 하나 이상의 링크들을 제공하는 단계를 포함할 수 있다. 복수의 콘텐츠 아이템들은 고차원 데이터를 포함할 수 있다. 고차원 데이터는 텍스트; 이미지; 비디오; 콘텐츠 광고(ad); 및 맵 데이터로 구성된 그룹으로부터 선택될 수 있다.
다른 버전들은 방법들의 동작들을 수행하도록 구성되는 대응하는 시스템들, 장치 및 컴퓨터 저장 디바이스들 상에 인코딩되는 컴퓨터 프로그램을 포함한다.
이들 및 다른 버전들은 선택적으로 다음 특징들 중 하나 이상을 각각 포함할 수 있다. 예를 들어, 일부 구현들에서, 엘리먼트 행렬들과 연관된 관계는 직교성을 포함할 수 있다. 대안적으로 또는 부가적으로, 엘리먼트 행렬들과 연관된 관계들은 유클리드 거리를 포함할 수 있다.
일부 양상들에서, 구조화된 행렬로 일련의 엘리먼트 행렬들을 변환하는 단계는 일련의 엘리먼트 행렬들에 대한 크로네커 곱(Kronecker product)의 적용에 부분적으로 기초하여 크로네커 투영(Kronecker projection)을 생성하는 단계를 포함할 수 있다. 상기 일련의 엘리먼트 행렬들은 특징 벡터 검색 공간의 특정 스냅샷(snapshot)의 유클리드 거리에 적어도 부분적으로 기초하여 랜덤으로 생성될 수 있다. 상기 변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 미리 결정된 관계들을 보존하도록 구조화된 행렬로의 일련의 엘리먼트 행렬들의 변환은, d-차원 데이터에 대해
Figure 112017107143514-pct00002
의 저장 복잡도로 달성될 수 있다.
특정 구현들에서, 방법은, 검색 오브젝트와 연관된 하나 이상의 특징들을 추출하는 단계, 상기 검색 오브젝트의 특징들을 나타내는 검색 오브젝트 벡터를 생성하는 단계, 상기 구조화된 행렬을 포함하는 강화된 검색 공간에 대해 상기 검색 오브젝트 벡터를 비교하는 단계, 및 상기 비교에 기초하여 미리 결정된 관계를 만족시키는 하나 이상의 콘텐츠 아이템들을 식별하는 단계를 위한 동작들을 포함할 수 있다.
양상들은 임의의 편리한 형태로 구현될 수 있다는 것이 인지될 것이다. 예를 들어, 양상들 및 구현들은 유형의 전달(carry) 매체들(예를 들어, 디스크들) 또는 무형의 전달 매체들(예를 들어, 통신 신호들)일 수 있는 적절한 전달 매체들 상에서 전달될 수 있는 적절한 컴퓨터 프로그램들에 의해 구현될 수 있다. 양상들은 또한 본 발명을 구현하기 위해 배열된 컴퓨터 프로그램을 실행하는 프로그래밍 가능한 컴퓨터들의 형태를 취할 수 있는 적합한 장치를 사용하여 구현될 수 있다.
하나 이상의 구현들의 세부 사항들은 첨부된 도면들 및 이하의 설명에서 기술된다. 다른 특징들 및 이점들은 설명 및 도면들로부터 그리고 청구항들로부터 명백해질 것이다.
도 1은 본 개시의 적어도 하나의 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 예시적인 시스템의 블록도이다.
도 2는 본 개시의 적어도 하나의 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 예시적인 프로세스의 흐름도이다.
도 3은 본 개시의 적어도 다른 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 다른 예시적인 시스템의 블록도이다.
도 4는 본 개시의 적어도 일 양상에 따라, 강화된 검색 공간에 대해 검색 질의를 실행하기 위한 예시적인 프로세스의 흐름도이다.
도면들에서, 유사한 참조 번호들은 유사한 엘리먼트들을 지정한다.
도 1은 본 개시의 적어도 하나의 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 예시적인 시스템(100)의 블록도이다. 시스템(100)은 예를 들어, 클라이언트(110), 서버(120), 원격 컴퓨터(130) 및 네트워크(140)를 포함할 수 있다.
일반적으로, 예시적인 시스템(100)을 사용하여, 구조화된 행렬들의 패밀리는 예를 들어, 컴퓨터 비전 애플리케이션들과 같은 다양한 복잡한 컴퓨터 애플리케이션들과 관련하여 존재할 수 있는 고차원 데이터에 대한 직교 투영들을 효율적으로 수행하는데 사용될 수 있다. 시스템(100)은 일련의 비교적 작은 직교 엘리먼트 행렬들의 생성을 제공할 수 있다. 일련의 비교적 작은 직교 엘리먼트 행렬들이 획득되면, 본 개시의 양상들은 일련의 작은 직교 엘리먼트 행렬들을 구조화된 행렬로 변환할 수 있다. 본 발명의 적어도 하나의 양상에 따라, 구조화된 행렬은 일련의 작은 직교 엘리먼트 행렬들의 크로네커 곱(Kronecker product)을 취함으로써 형성될 수 있다. 이러한 변환의 결과로서, 본 개시는 계산 복잡도 및 공간 복잡도 모두에서 기존 시스템들보다 나은 이점들을 달성할 수 있다. 예를 들어, 본 개시는 d-의 차원 데이터에 대한
Figure 112017107143514-pct00003
의 계산 복잡도 및
Figure 112017107143514-pct00004
의 공간 복잡도를 달성한다.
본 개시의 방법, 시스템 및 비-일시적인 컴퓨터 판독 가능한 매체에 의해 달성되는, 대형 데이터베이스에서 유지되는 고차원 데이터를 저장, 검색 및 리트리브하는데 필요한 메모리 및 프로세싱 능력의 감소는 상당하다. 본 개시에 의해 제공되는 이러한 이점들은 고차원 데이터의 검색 및 리트리브가, 고차원의 데이터의 효율적인 저장, 검색 및 리트리브를 용이하게 하기 위해 필요한 메모리 공간이 부족할 수 있는 모바일 플랫폼 상에서 수행되는 것을 가능하게 할 수 있다. 따라서, 이미지 검색, 비디오 검색, 관련 콘텐츠 광고들의 디스플레이 및/또는 맵 데이터를 포함(그러나 이것으로 제한되지 않음)하는 복잡한 컴퓨터 애플리케이션들은 더 작은 메모리 풋프린트 및 더 적은 프로세싱 전력으로 구현될 수 있어서, 예를 들어, 스마트폰, 태블릿 및/또는 다른 씬(thin) 클라이언트 디바이스들과 같은 모바일 플랫폼을 통해 이러한 애플리케이션과 연관된 고차원 데이터의 저장, 검색 및 리트리브를 가능하게 한다. 따라서, 본 개시는 고차원 데이터에 관한 검색이 어떻게 효율적으로 수행될 수 있는지와 연관된 문제들을 해결한다.
시스템(100)의 클라이언트(110)는 적어도 프로세서(111), 메모리(112) 및 데이터베이스(115)를 포함할 수 있다. 메모리(112)는 클라이언트(110) 상에서 하나 이상의 애플리케이션들을 실행하는데 사용되는 컴퓨터 프로그램 코드의 저장을 제공할 수 있다. 애플리케이션들은 예를 들어, 브라우저(113)를 포함할 수 있다. 클라이언트(110)는 브라우저(113)를 사용하여 네트워크(140)를 통해 하나 이상의 웹 기반 애플리케이션들에 액세스할 수 있다. 그러한 웹 기반 애플리케이션들은 예를 들어, 맵 애플리케이션, 비디오 스트리밍 애플리케이션, 모바일 결제 시스템, 광고 서비스들 등을 포함할 수 있다. 브라우저(113)는 클라이언트(110)와 연관된 하나 이상의 사용자 인터페이스들을 통해 클라이언트(110)의 사용자로부터 입력들을 수신하도록 구성될 수 있다. 수신된 입력들은 다른 것들 중에서도, 예를 들어, 키패드, 예컨대, 물리적인 키보드, 용량성 터치(capacitive touch) 사용자 인터페이스를 통해 그래픽으로 재생된 키보드 등을 통해 입력되는 검색 질의들, 음성 커맨드를 통해 입력되는 검색 질의들, 하나 이상의 실행 가능한 커맨드들을 나타내는 제스처들 등을 포함할 수 있다.
대안적으로, 또는 부가적으로, 클라이언트(110)는 하나 이상의 모바일 애플리케이션들(114)을 저장하고 클라이언트(110) 상에 로컬로 저장된 하나 이상의 모바일 애플리케이션(114)을 실행하기 위해 프로세서(111) 및 메모리(112)를 활용할 수 있다. 예를 들어, 클라이언트(110)는 예를 들어, 텍스트 파일들, 오디오 파일들, 이미지 파일들, 비디오 파일들, 또는 이들의 조합들을 포함하는 로컬 콘텐츠를 저장하도록 구성될 수 있는 콘텐츠 데이터베이스(115)를 포함할 수 있다. 이러한 저장된 로컬 콘텐츠를 콘텐츠 데이터베이스(115)로부터 리트리브하기 위해, 하나 이상의 모바일 애플리케이션들(114)은 예를 들어, 로컬 문서 검색, 로컬 오디오 파일 검색, 로컬 이미지 파일 검색, 로컬 비디오 검색 등을 용이하게 하는 기능성을 제공할 수 있다. 그러나 대안적으로, 또는 부가적으로, 모바일 애플리케이션(114)은 또한, 임의의 그러한 로컬 검색이 로컬 및 원격 콘텐츠 데이터베이스들 둘 모두로부터의 검색 결과들을 또한 포함할 수 있는 검색 결과들의 병합 리스트를 제공하기 위해 네트워크(140)를 통해 액세스 가능한 하나 이상의 컴퓨터들(120, 130)에 의해 호스팅되는 하나 이상의 콘텐츠 데이터베이스들(129, 133)에 대하여 원격으로 실행될 수 있다는 것을 보장할 수 있다. 유사하게, 모바일 애플리케이션들(114)은, 예를 들어, 필기(handwriting) 인식 프로그램들을 포함하는 다른 유형들의 애플리케이션들을 포함할 수 있다. 다른 유형들의 모바일 애플리케이션들(114)은 또한, 본 명세서에 의해 제공되는 본 개시의 범위 내에 있을 수 있다.
모바일 애플리케이션들(114)은 브라우저(113)에 관해 위에서 설명된 것과 유사한 방식으로 클라이언트(110)의 사용자로부터 입력들을 수신하도록 구성될 수 있다. 대안적으로 또는 부가적으로, 하나 이상의 모바일 애플리케이션들(114)은 하나 이상의 모바일 애플리케이션(114)에 의해 제공되는 특정 기능성에 기초하여 브라우저(113)와 상이한 입력들을 수신하도록 구성될 수 있다. 예를 들어, 필기 인식 프로그램은 클라이언트(110)에 통합되거나 클라이언트(110)에 외부적으로 커플링되는 용량성 터치 사용자 인터페이스와 조합하여 스타일러스 또는 사용자의 손가락을 사용하여 사용자에 의해 수행되는 모션들을 통해 필기된 텍스트 입력의 형태의 입력들을 수신하도록 구성될 수 있다. 이러한 입력이 본 개시의 양상들에 의해 캡처되면, 본 개시의 양상들에 따라, 필기된 텍스트 입력과 연관된 특징들이 검색되어 필기된 입력에 대응할 수 있는 하나 이상의 텍스트 문자들, 텍스트 스트링들 등을 리트리브할 수 있다.
클라이언트(110)는 하나 또는 다수의 클라이언트 디바이스들을 나타낼 수 있다. 이러한 클라이언트 디바이스들은 예를 들어, 모바일 컴퓨팅 플랫폼 및 비-모바일 컴퓨팅 플랫폼들을 포함할 수 있다. 모바일 컴퓨팅 플랫폼들은 예를 들어, 스마트폰, 태블릿, 랩톱 컴퓨터들 또는 다른 씬 클라이언트 디바이스들을 포함할 수 있다. 비-모바일 컴퓨팅 플랫폼들은 예를 들어, 데스크톱 컴퓨터들, 셋톱 박스 엔터테인먼트 시스템들 등을 포함할 수 있다. 클라이언트(110)는 하나 이상의 통신 프로토콜들을 사용하여 네트워크(140)를 통해 서버(120)와 통신하도록 구성될 수 있다.
서버(120)는 하나 이상의 다중 서버 컴퓨터들을 나타낼 수 있다. 서버(120)는 적어도 프로세서(121), 메모리(122) 및 콘텐츠 데이터베이스(129)를 포함할 수 있다. 메모리(122)는 본 명세서에 의해 개시된 청구 대상의 특징들을 구현하기 위해 활용될 수 있는 소프트웨어 툴들의 수트(suite)를 포함할 수 있다. 이들 소프트웨어 툴들은, 예를 들어, 콘텐츠 식별 유닛(123), 특징 추출 유닛(124), 특징 벡터 생성 유닛(125), 엘리먼트 행렬 생성 유닛(126) 및 구조화된 행렬 생성 유닛(127)을 포함할 수 있다. 상술된 소프트웨어 툴들은 프로세서(121)에 의해 실행될 때, 본 명세서에서 설명된 예시적인 기능성을 수행하여, 고차원 데이터의 저장, 검색 및 리트리브 동작들을 용이하게 하는데 필요한 메모리 풋프린트를 상당히 감소시키는 강화된 검색 공간을 생성할 수 있는 프로그램 명령들을 각각 포함할 수 있다. 고차원 데이터는 예를 들어, 수백 차원들, 수천 차원들, 수백만 차원들 또는 훨씬 더 많은 차원들 같은 다수의 차원들을 갖는 데이터를 포함할 수 있다.
콘텐츠 식별 유닛(123)은 복수의 상이한 소스들 중 하나 이상으로부터 콘텐츠를 획득하도록 구성될 수 있다. 예를 들어, 콘텐츠 식별 유닛(123)은 하나 이상의 원격 컴퓨터들(130)의 데이터베이스(133)에 유지되는 콘텐츠 아이템들을 스캔 및 식별하기 위해 네트워크(140)를 횡단할 수 있는 웹 크롤러(web crawler), 웹 스파이더(web spider) 등을 이용할 수 있다. 일단 식별되면, 콘텐츠 식별 유닛은 데이터베이스(133)로부터 콘텐츠 아이템 또는 그 일부의 사본을 획득하고 서버(120)의 콘텐츠 데이터베이스(129)에 콘텐츠 아이템의 사본을 저장할 수 있다. 콘텐츠 아이템은 예를 들어, 텍스트 데이터, 오디오 데이터, 이미지 데이터, 비디오 데이터 또는 이들의 임의의 조합을 비롯해서, 클라이언트(110), 서버(120) 또는 원격 컴퓨터(130)를 사용하여 생성될 수 있는 다양한 다른 유형들의 콘텐츠를 포함할 수 있다.
대안적으로 또는 부가적으로, 콘텐츠 식별 유닛(123)은 클라이언트 디바이스(110)의 하나 이상의 사용자 인터페이스들을 통해 사용자에 의해 입력된 콘텐츠의 부분들을 캡처하도록 구성될 수 있다. 예를 들어, 콘텐츠 식별 유닛(123)은 클라이언트(110)에 통합되거나 또는 클라이언트(110)에 외부적으로 커플링된 용량성 터치 사용자 인터페이스와 결합하여 사용자가 스타일러스 또는 사용자의 손가락을 사용함으로써 수행되는 모션들을 통해 필기된 텍스트 입력을 캡처하도록 구성될 수 있다. 대안적으로 또는 부가적으로, 콘텐츠 식별 유닛(123)은 하나 이상의 원격 컴퓨터들을 통해 업로드될 수 있는 하나 이상의 콘텐츠 아이템들을 수신하도록 구성될 수 있다. 예를 들어, 콘텐츠 식별 유닛(123)은 원격 컴퓨터들(130)의 하나 이상의 사용자들이 데이터베이스(129)에 의해 유지되는 콘텐츠 아이템들의 라이브러리에 부가하고자 하는 하나 이상의 콘텐츠 아이템들을 수신할 수 있다. 대안적으로 또는 부가적으로, 콘텐츠 식별 유닛은 서버(120)의 데이터베이스(129)에 이전에 저장된 콘텐츠 아이템들을 획득하도록 구성될 수 있다.
상술된 소스들 중 하나 이상으로부터 획득되는 콘텐츠 아이템들은 클라이언트(110), 원격 컴퓨터(130) 등의 하나 이상의 사용자들에 의한 액세스를 위해 이용 가능하게 될 수 있는 데이터베이스(129)에 저장된 콘텐츠 아이템들의 라이브러리를 생성하는데 사용될 수 있다. 예를 들어, 브라우저(112) 또는 모바일 애플리케이션(114)을 통해 클라이언트(110)의 사용자에 대해 또는 원격 컴퓨터(130)를 통해 유사한 애플리케이션들의 사용자에 대해 액세스 가능한 맵 애플리케이션을 지원하는데 사용될 수 있는 서버(120)는 일정 시구간에 걸쳐 방대한 양의 위치 정보, 지리 정보, 이미지 정보 등을 어그리게이팅(aggregate)할 수 있다. 대안적으로 또는 부가적으로, 예를 들어, 서버(120)는 브라우저(112) 또는 모바일 애플리케이션(114)을 통해 클라이언트(110)의 사용자에 대해 또는 원격 컴퓨터(130)를 통해 유사한 애플리케이션의 사용자에 대해 액세스 가능한 비디오 스트리밍 서비스를 지원하기 위해 일정 시구간에 걸쳐 방대한 양의 비디오 파일들을 어그리게이팅할 수 있다. 서버(120)에 의해 획득된 콘텐츠 아이템들은 클라이언트(110) 또는 원격 컴퓨터(130)의 사용자들에 대해 액세스 가능한 다른 유형들의 애플리케이션들을 지원하기 위해 유사하게 활용될 수 있다.
콘텐츠 식별 유닛(123)은 강화된 검색 공간의 생성을 시작하기 위해 충분한 수의 콘텐츠 아이템들이 수집되었다는 것을 주기적으로 결정할 수 있다. 이러한 주기적 결정은 예를 들어, 미리 결정된 시구간의 만료에 기초할 수 있다. 대안적으로, 또는 부가적으로, 주기적 결정은, 미리 결정된 양의 데이터의 수집에 기초하여, 예를 들어, 100 GB의 데이터, 100 TB의 데이터 등을 수집한 후에 내려질 수 있다. 대안적으로 또는 부가적으로, 주기적 결정은, 콘텐츠가 미리 결정된 양의 콘텐츠 소스들로부터 수집(예를 들어, 콘텐츠가 서비스에 가입된 미리 결정된 수의 사용자들로부터 캡처됨, 콘텐츠가 서비스를 활성으로 사용하는 미리 결정된 수의 사용자들로부터 캡처됨, 콘텐츠가 모든 알려진 콘텐츠 소스들 중 미리 결정된 퍼센티지로부터 캡처됨 등)되었다는 결정에 기초하여 내려질 수 있다. 대안적으로, 또는 부가적으로, 콘텐츠 식별 유닛(123)은 하나 이상의 인간 사용자들로부터 강화된 검색 공간을 생성하라는 명령의 수신에 응답하여 강화된 검색 공간의 생성을 트리거할 수 있다.
특징 추출 유닛(124)은 각각의 특정 콘텐츠 아이템과 고유하게 연관될 수 있는 특정 콘텐츠 의존 특징들 또는 특성들을 식별하기 위해 콘텐츠 식별 유닛(123)에 의해 획득된 콘텐츠를 분석하도록 구성될 수 있다. 특징 데이터는 예를 들어, 이미지 콘텐츠와 연관될 수 있는, 예컨대, 색상들, 카운터들, 곡선들, 텍스처, 픽셀들 등을 포함할 수 있다. 대안적으로, 또는 부가적으로, 특징 데이터는, 예를 들어, 텍스트 콘텐츠와 연관되는, 예컨대, 문서 키워드들, 단어 사용 빈도 등을 포함할 수 있다. 콘텐츠 자원들의 복잡도가 증가함에 따라, 콘텐츠와 연관된 특징들의 수가 유사하게 증가할 수 있다. 예를 들어, 특정 고해상도 이미지는 이미지의 각각의 특정 픽셀에 대응하는 적어도 하나의 특징과 연관될 수 있다. 특정 콘텐츠 아이템이, 콘텐츠 아이템으로부터 추출된 특징들에 기초하여 검색 및 리트리브 프로세스 동안 식별될 수 있는 가능성은 콘텐츠 아이템으로부터 추출된 특징들의 양과 함께 증가할 수 있다. 특징 추출 유닛(124)에 의해 추출된 콘텐츠 특징들은 특징 벡터 생성 유닛(125)에 의한 후속 사용을 위해 메모리 유닛(122) 또는 데이터베이스(129)에 저장될 수 있다.
특징 벡터 생성 유닛(125)은 특징 추출 유닛(124)에 의해 추출된 고차원 특징 데이터를 획득하거나 그렇지 않으면 수신하도록 구성될 수 있다. 추출된 특징 데이터의 수신 시에, 특징 벡터 생성 유닛(125)은 획득된 콘텐츠로부터 추출된 특징들 각각을 수치적으로 표현하는데 사용될 수 있는 복수의 특징 벡터들을 생성할 수 있다. 특정 특징 벡터의 값들은 단일 행 행렬의 형태로 표현될 수 있다. 따라서, 데이터베이스(129)에 저장된 추출된 특징들로부터 생성된 특징 벡터들의 집합적인 세트는 콘텐츠 식별 유닛(123)에 의해 획득된 고차원 데이터의 검색 가능한 모델을 생성할 수 있다. 유사성 결정들은 2개 이상의 특징 벡터들 간의 유클리드 거리의 계산에 기초하여 임의의 2개 이상의 특징 벡터들 사이에서 내려질 수 있다. 유클리드 거리가 작을수록, 특징 벡터들 간에 존재할 수 있는 유사성이 크다.
본 명세서에 의해 개시된 청구 대상의 적어도 하나의 양상에서, 임의의 특정 시점에 특징 벡터 검색 공간의 특정 스냅샷(snapshot)에 대한 특정 특징 벡터 검색 공간에 존재하는 각각의 특징 벡터 사이에 유클리드 거리가 존재할 수 있다. 특징 벡터 검색 공간의 특정 스냅샷은, 예를 들어, 미리 결정된 수의 특징 벡터들이 특징 벡터 생성 유닛(125)에 의해 생성된 후 임의의 특정 시점에서 캡처될 수 있다. 특정 경우들에서, 특징 벡터 검색 공간을 학습 또는 최적화하기 전에, 오리지날 유클리드 거리에 의해 각각 분리된 다수의 특징 벡터들을 포함하는 오리지날 특징 벡터 검색 공간이 존재할 수 있다. 대안적으로, 또는 부가적으로, 오리지날 유클리드 거리는, 예를 들어, 특징 벡터 검색 공간의 스냅샷이 캡처되는 시간에 각각의 특징 벡터들 간에 존재하는 유클리드 거리일 수 있다.
엘리먼트 행렬 생성 유닛(126)은 특징 벡터 생성 유닛(125)에 의해 생성된 복수의 고차원 특징 벡터들을 획득하거나 그렇지 않으면 수신하도록 구성될 수 있다. 엘리먼트 행렬 생성 유닛(126)은 그 후, 획득된 특징 벡터를 일련의 M 개의 엘리먼트 행렬들로 조직할 수 있다. 일련의 M 개의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 이하에서 설명되는 구조화된 행렬보다 비교적 작을 수 있다. 예를 들어, 본 명세서에 의해 개시된 청구 대상의 적어도 하나의 양상에서, 각각의 엘리먼트 행렬은 2 x 2 크기일 수 있다. 대안적으로, 또는 부가적으로, 일련의 M 개의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 직교일 수 있다. 엘리먼트 행렬 생성 유닛(126)은 예를 들어, 작은 랜덤 가우스 행렬을 생성하고 그 후 QR 분해(factorization)를 수행함으로써 일련의 M 개의 엘리먼트 행렬들을 생성할 수 있다. 일련의 M 개의 엘리먼트 행렬들의 랜덤 생성은, 예를 들어, 특징 벡터 검색 공간의 특정 스냅샷의 오리지날 유클리드 거리에 적어도 부분적으로 기초할 수 있다. 예를 들어, 일련의 M 개의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 오리지날 특징 벡터 검색 공간의 오리지날 유클리드 거리를 보존하기 위해 랜덤으로 생성될 수 있다. 대안적으로, 일련의 M 개의 엘리먼트 행렬들은 예를 들어, 특정 이미지로 제시될 때 특정 이미지 결과들을 리턴하기 위해, 기계 학습 시스템을 활용하여 엘리먼트 행렬들을 트레이닝하도록 구성될 수 있다.
구조화된 행렬 생성 유닛(127)은 엘리먼트 행렬 생성 유닛(126)에 의해 생성된 일련의 M 개의 엘리먼트 행렬들을 획득하거나 그렇지 않으면 수신하도록 구성될 수 있다. 구조화된 행렬 생성 유닛(127)은 일련의 M 개의 엘리먼트 행렬들을 구조화된 행렬로 변환하도록 구성될 수 있다. 구조화된 행렬은 일련의 M 개의 비교적 작은 엘리먼트 행렬들의 각각의 행렬보다 크기가 비교적 클 수 있다. 일련의 M 개의 엘리먼트 행렬들의 변환은 일련의 M 개의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 관계들을 보존하는 방식으로 발생할 수 있다. 보존된 관계는 예를 들어, 직교성 또는 유클리드 거리를 포함할 수 있다. 본 개시의 적어도 하나의 양상에서, 변환은 일련의 M 개의 엘리먼트 행렬들의 크로네커 곱을 취함으로써 선형 투영을 생성하는 것을 포함할 수 있다. 본 명세서에 의해 개시된 청구 대상의 적어도 하나의 양상과 관련하여, 일련의 M 개의 엘리먼트 행렬들의 크로네커 곱은 예를 들어, 고속 푸리에 변환 또는 고속 푸리에 변환-유사 계산들을 포함하는 프로세스들을 사용하여 달성될 수 있다. 일련의 M 개의 작은 엘리먼트 행렬들을 비교적 큰 구조화된 행렬로 변환하기 위해 구조화된 행렬 생성 유닛(127)을 사용한 선형 투영의 생성은 구조화되지 않은 행렬들의 투영과 비교하여 계산 및 공간 비용들을 상당히 감소시킬 수 있다. 예를 들어, 구조화된 행렬 생성 유닛(127)을 사용하여 생성된 선형 투영은, 구조화되지 않은 행렬들에 대한
Figure 112017107143514-pct00005
의 계산 속도들 및
Figure 112017107143514-pct00006
공간 복잡도와 대조적으로, d 차원 데이터에 대해
Figure 112017107143514-pct00007
의 계산 속도들 및
Figure 112017107143514-pct00008
의 공간 복잡도를 달성할 수 있다.
구조적 행렬 생성 유닛(127)의 출력은 검색 공간을 강화시킬 수 있다. 강화된 검색 공간은 강화된 검색 공간 저장 영역(128)에 저장될 수 있다. 구조화되지 않은 행렬들에 대한
Figure 112017107143514-pct00009
로부터
Figure 112017107143514-pct00010
로 공간 복잡도를 감소시키기 위해 검색 공간이 강화되었지만, 비교적 큰 구조 행렬은 콘텐츠 아이템들의 특정 세트에 대한 생성된 특징 벡터들 모두를 실질적으로 포함할 수 있는 특징 벡터 공간의 표현을 여전히 제공할 수 있다. 따라서, 검색의 정확성 또는 정밀도는 본원에서 설명되는 본 발명의 양상들을 활용하여 손상되지 않는다.
원격 컴퓨터(130)는 하나 이상의 다중 원격 컴퓨터들을 나타낼 수 있다. 각각의 원격 컴퓨터(130)는 적어도, 프로세서(131), 메모리(132) 및 콘텐츠 데이터베이스(133)를 포함할 수 있다. 원격 컴퓨터(130)는 예를 들어, 콘텐츠 식별 유닛(123)과 같이 웹 콘텐츠를 식별 및 획득할 수 있는 소프트웨어 툴들에 대한 발견을 위해 하나 이상의 콘텐츠 아이템들을 이용 가능하게 하도록 구성될 수 있다. 특정 원격 컴퓨터들(130)의 하나 이상의 사용자들은 또한 콘텐츠 데이터베이스(129)에 유지되는 콘텐츠 아이템들을 검색하고 액세스할 수 있다. 원격 컴퓨터(130)는 네트워크(140)를 통해 서버(120)와 통신하도록 구성될 수 있다.
네트워크(140)는 클라이언트(110), 서버(120) 및/또는 원격 컴퓨터(130) 간의 연결성을 용이하게 하도록 구성될 수 있다. 클라이언트(110), 서버(120) 및/또는 원격 컴퓨터(130)는 각각, 하나 이상의 유선 또는 무선 통신 링크들(142a, 142b 및/또는 142c)을 통해 네트워크들(140)에 연결될 수 있다. 네트워크(140)는 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 셀룰러 데이터 네트워크, 또는 이들의 임의의 조합을 포함(그러나 이것으로 제한되지 않음)하는 하나 이상의 유형들의 공개 및/또는 사설 네트워크들의 임의의 조합을 포함할 수 있다.
도 2는 본 개시의 적어도 하나의 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 예시적인 프로세스(200)의 흐름도이다.
프로세스(200)는 210에서, 서버(120)로부터 원격이거나 로컬일 수 있는 하나 이상의 콘텐츠 소스들로부터의 하나 이상의 콘텐츠 아이템들을 통해 콘텐츠에 대한 스캔을 개시하도록 콘텐츠 식별 유닛(123)을 활용함으로써 시작할 수 있다. 콘텐츠 스캔은 예를 들어, 웹 크롤러, 웹 스파이더 등에 의해 수행될 수 있다. 대안적으로 또는 부가적으로, 콘텐츠 식별 유닛(123)은 하나 이상의 원격 컴퓨터들(130) 또는 하나 이상의 클라이언트 컴퓨터들(110)로부터 하나 이상의 콘텐츠 아이템들을 수신할 수 있다. 일단 콘텐츠가 식별되면, 콘텐츠 식별 유닛은 식별된 콘텐츠를 샘플링하고 식별된 콘텐츠의 적어도 일부를 콘텐츠 데이터베이스(129)에 저장하고, 식별된 콘텐츠의 적어도 일부를 메인 메모리(122)의 다른 부분에 저장하거나, 식별된 콘텐츠의 적어도 일부를 특징 추출 유닛(124)에 제공할 수 있다.
프로세스(200)는 특징 추출 유닛(124)이 콘텐츠 식별 유닛(123)에 의해 식별된 콘텐츠의 하나 이상의 부분들에 액세스할 수 있는 220에서 지속될 수 있다. 특징 추출 유닛(124)은 획득된 콘텐츠와 연관된 하나 이상의 특징들 및/또는 특성들을 추출할 수 있다. 추출된 특징들은 콘텐츠 데이터베이스(129)에 저장되거나, 메인 메모리(122)의 다른 부분에 저장되거나, 또는 특징 벡터 생성 유닛(125)에 송신될 수 있다.
프로세스(200)는 특징 벡터 생성 유닛(125)이 특징 추출 유닛(124)에 의해 추출된 콘텐츠 특징들에 기초하여 하나 이상의 특징 벡터들을 생성할 수 있는 230에서 지속될 수 있다. 특징 벡터들은 고차원 데이터의 검색 가능한 데이터 모델을 생성하는데 사용될 수 있다. 검색 가능한 모델은 2개의 특징 벡터들의 비교에 기초하여 유사성 결정들을 용이하게 할 수 있다. 이러한 비교들은 2개 이상의 특징 벡터들 사이에 존재하는 유클리드 거리의 평가에 기초할 수 있다. 임의의 주어진 쌍의 특징 벡터들 사이에 존재하는 거리가 작을수록, 특징 벡터들 간에 존재할 수 있는 유사성이 더 크다. 생성된 특징 벡터들은 콘텐츠 데이터베이스(129)에 저장되거나, 메인 메모리(122)의 다른 부분에 저장되거나, 또는 엘리먼트 행렬 생성 유닛(126)에 송신될 수 있다.
프로세스(200)는, 엘리먼트 행렬 생성 유닛(126)이 특징 벡터 생성 유닛(125)에 의해 생성된 복수의 고차원 특징 벡터들의 세트에 기초하여 일련의 M 개의 엘리먼트 행렬들을 생성할 수 있는 240에서 지속될 수 있다. 일련의 M 개의 엘리먼트 행렬들의 각각의 행렬은 직교일 수 있다. 일련의 M 개의 엘리먼트 행렬들은 특징 벡터 검색 공간의 특정 스냅샷의 오리지날 유클리드 거리에 적어도 부분적으로 기초하여 랜덤으로 또는 의사-랜덤으로 생성될 수 있다. 대안적으로, 또는 부가적으로, 일련의 M 개의 엘리먼트 행렬들은 본원의 아래에서 설명되는 것들과 같은 하나 이상의 기계어 학습 시스템을 사용하여 트레이닝될 수 있다. 생성된 일련의 M 개의 엘리먼트 행렬들은 콘텐츠 데이터베이스(129)에 저장되거나, 메인 메모리(122)의 다른 부분에 저장되거나, 또는 구조화된 행렬 생성 유닛(117)에 송신될 수 있다.
프로세스(200)는 구조화된 행렬 생성 유닛(127)이 일련의 M 개의 비교적 작은 엘리먼트 행렬들에 기초하여 비교적 큰 구조화된 행렬을 생성하도록 구성될 수 있는 250에서 지속될 수 있다. 비교적 큰 구조화된 행렬은 일련의 M 개의 엘리먼트 행렬들을 비교적 큰 구조화된 행렬로 변환하거나 회전시킴으로써 생성될 수 있다. 변환은, 변환이 일련의 M 개의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 관계들을 유지하도록 수행될 수 있다. 본 명세서에 개시된 청구 대상의 적어도 하나의 양상에서, 변환은 일련의 M 개의 엘리먼트 행렬들의 크로네커 곱을 취함으로써 선형 투영을 생성하는 것을 포함할 수 있다. 비교적 큰 구조화된 행렬은 검색 공간을 강화시킬 수 있다. 비교적 큰 구조화된 행렬의 공간 복잡도는 d-차원 데이터에 대해
Figure 112017107143514-pct00011
정도가 될 수 있다. 260에서, 강화된 검색 공간은 강화된 검색 공간 저장 영역(128)의 메인 메모리에 저장되거나, 콘텐츠 데이터베이스(129) 등에 저장될 수 있다.
본 개시가 크로네커 곱에 관하여 본원에서 설명되지만, 본 발명은 이것으로 제한될 필요는 없다는 것이 주의된다. 따라서, 본원에서 설명된 바와 같이 큰 구조화된 행렬로의 일련의 작은 직교 엘리먼트 행렬들의 변환을 용이하게 하기 위해 다른 행렬 변환 또는 회전 방법들이 활용될 수 있다. 예를 들어, 일련의 엘리먼트 행렬들과 연관된 하나 이상의 관계들을 보존하는, 엘리먼트 행렬들의 임의의 효율적인 변환이, 본 개시에 따라 일련의 작은 직교 엘리먼트 행렬들로부터 큰 구조화된 행렬을 생성하기 위해 활용될 수 있다. 생성된 구조화된 행렬에서 보존될 수 있는 그러한 관계들의 예들은 다른 것들 중에서도, 예를 들어, 직교성, 유클리드 거리 등을 포함할 수 있다.
도 3은 본 개시의 적어도 다른 양상에 따라, 선형 투영들을 효율적으로 수행하기 위해 활용될 수 있는 예시적인 시스템(300)의 블록도이다. 시스템(300)은 예를 들어, 클라이언트(310), 서버(320), 원격 컴퓨터(330) 및 네트워크(340)를 포함할 수 있다.
클라이언트(310)는 각각이 클라이언트(110)와 실질적으로 유사할 수 있는 하나 또는 다수의 클라이언트 디바이스들을 포함할 수 있다. 클라이언트(310)는 적어도, 프로세서(311), 메인 메모리(312) 및 콘텐츠 데이터베이스(319)를 포함할 수 있다. 그러나 클라이언트(310)는 또한, 콘텐츠 식별 유닛(313), 특징 추출 유닛(314), 특징 벡터 생성 유닛(315), 엘리먼트 행렬 생성 유닛(316), 구조화된 행렬 생성 유닛(317) 및 강화된 검색 공간 저장 영역(318)을 포함할 수 있다. 콘텐츠 식별 유닛(313), 특징 추출 유닛(314), 특징 벡터 생성 유닛(315), 엘리먼트 행렬 생성 유닛(316), 구조화된 행렬 생성 유닛(317) 및 강화된 검색 공간 저장 영역(318) 각각은, 도 1의 시스템(100)의 콘텐츠 식별 유닛(123), 특징 추출 유닛(124), 특징 벡터 생성 유닛(125), 엘리먼트 행렬 생성 유닛(126), 구조화된 행렬 생성 유닛(127) 및 강화된 검색 공간 저장 영역(128)과 실질적으로 동일할 수 있다. 그러나 도 3의 시스템(300)에서, 콘텐츠 식별 유닛(313), 특징 추출 유닛(314), 특징 벡터 생성 유닛(315), 엘리먼트 행렬 생성 유닛(316), 구조화된 행렬 생성 유닛(317) 및 강화된 검색 공간 저장 영역(318)은 서버(320)에 부가적으로, 또는 그 대신에, 클라이언트(310) 상에 구현될 수 있다. 결과적으로, 본 명세서의 청구 대상에 의해 제공되는 효율들은 예를 들어, 클라이언트(310)와 같은 클라이언트 디바이스 상에서 고차원 데이터의 검색 및 리트리브를 용이하게 할 수 있다.
따라서, 본 명세서에 의해 설명된 청구 대상의 특징들은, 예를 들어, 텍스트 파일들, 오디오 파일들, 이미지 파일들, 비디오 파일들 또는 이들의 조합들의 로컬 저장, 검색 및 리트리브를 지원하기 위한 강화된 검색 공간의 생성과 같이, 클라이언트(310) 상에서 실행될 수 있는 하나 이상의 모바일 애플리케이션들(114)의 양상들에 적용될 수 있다. 본 개시의 특징들은 또한, 예를 들어, 필기 인식 애플리케이션, 콘텐츠 광고들의 검색 및 디스플레이 등과 같은 다른 유형들의 모바일 애플리케이션들과 연관된 저장, 검색 및 리트리브 동작들을 개선하기 위해 강화된 검색 공간의 생성에 적용 가능할 수 있다.
위에서 설명된 특징들의 결과로서, 본 개시는 다른 것들 중에서도, 예를 들어, 이진 임베딩(binary embedding) 또는 데카르트 k-평균(Cartesian k-means)과 같은 접근법들을 활용할 때, 예를 들어, ANN(approximate nearest neighbor) 검색 방법을 포함하는 검색 및 리트리브 기술들에 상당한 이점을 제공할 수 있다. 따라서, 본 개시는, 상당히 적은 시간 및 메모리를 요구하면서도, 보다 양호한 정확도로 복잡한 검색 문제들을 해결한다.
도 4는 본 개시의 적어도 일 양상에 따라, 강화된 검색 공간에 대해 검색 질의를 실행하기 위한 예시적인 프로세스의(400) 흐름도이다.
프로세스(400)는 410에서, 예를 들어, 서버(120) 또는 클라이언트(310)와 같은 컴퓨터가 검색 오브젝트를 수신할 때 시작될 수 있다. 검색 오브젝트는 하나 이상의 키워드들, 이미지, 비디오 클립, 스타일러스 또는 사용자의 손가락을 통해 입력된 필기 스트로크들, 어드레스, 및/또는 콘텐츠 데이터베이스(129 또는 319)에 의해 유지되는 콘텐츠 아이템과 연관될 수 있는 다른 데이터를 포함하는 질의를 포함할 수 있다. 검색 오브젝트를 수신한 후에, 서버(120) 또는 클라이언트(310)는 420에서, 수신된 검색 오브젝트와 연관된 하나 또는 다수의 특징들 또는 특성들을 추출하기 위해 검색 오브젝트를 분석할 수 있다.
프로세스(400)는 420에서 추출된 검색 오브젝트 특징들에 기초한 그리고 검색 오브젝트와 연관된 하나 또는 다수의 검색 오브젝트 특징 벡터들을 생성함으로써 430에서 지속될 수 있다. 440에서, 서버(120) 또는 클라이언트(310)는 강화된 검색 공간 저장 영역(128 또는 318)에 유지되는 이전에 생성된 강화된 검색 공간에 대해 검색 오브젝트 특징 벡터들을 프로세싱할 수 있다. 이는, 예를 들어, 검색 오브젝트 특징 벡터에 대한 최근접 이웃 매치(nearest neighbor match)를 제공하는 고차원 특징 벡터들의 서브세트를 식별하기 위해, 구조화된 행렬의 선형 투영의 관점에서 검색 오브젝트 특징 벡터들을 분석하는 것을 포함할 수 있다. 대안적으로 또는 부가적으로, 단계(440)는 검색 오브젝트 특징 벡터의 미리 결정된 임계 거리 내에 속하는 특징 벡터들의 서브세트를 나타내는 다수의 매치들을 식별하는 것을 포함할 수 있다. 본 발명의 적어도 하나의 양상에서, 강화된 검색 공간에서 구조화된 행렬을 통해 선형으로 투영되는 특징 벡터들과 검색 오브젝트 벡터 간의 거리는 유클리드 거리일 수 있다. 마지막으로, 460에서, 프로세스는 검색 오브젝트 특징 벡터와 충분히 매칭하는 것으로서 강화된 검색 공간에서 식별된 특징 벡터들의 서브세트와 연관된 하나 이상의 콘텐츠 아이템들을 리트리브할 수 있다. 대안적으로 또는 부가적으로, 리트리브된 콘텐츠 아이템들을 참조하는 하나 이상의 링크들이 검색 오브젝트를 제출한 컴퓨터에 제공될 수 있다.
위에서 설명된 바와 같이, 적어도 부분적으로, 복잡한 컴퓨터 애플리케이션들과 연관된 데이터의 대규모 검색 및 리트리브를 위한 방법의 적어도 하나의 단계는 선형 투영을 활용하는 것일 수 있다. 예를 들어,
Figure 112017107143514-pct00012
및 투영 행렬
Figure 112017107143514-pct00013
와 같은 주어진 벡터에 대해, 선형 투영은 수식(1)
Figure 112017107143514-pct00014
에서 아래에 보여진 바와 같을 수 있다:
Figure 112017107143514-pct00015
(1)
이러한 선형 투영에는, 다른 것들 중에서도, 예를 들어, 고차원 특징들을, 예를 들어, 이진 임베딩들 또는 프러덕트 코드(product code)와 같은 더 적은 메모리를 활용하는 간결한 코드들로 변환하기 위한 양자화가 뒤따를 수 있다. 간결한 코드들은 이진 코드 또는 비-이진 코드일 수 있다. 이러한 간결한 코드들은 검색 실행 시간을 효율적으로 수행하고, 예를 들어, 이미지 리트리브, 특징 매칭, 속성 인식, 및 오브젝트 분류 등과 같은 다양한 복잡한 컴퓨터 애플리케이션들과 연관된 저장 요건들을 감소시키는데 사용될 수 있다. 예를 들어, 대규모 근사 최근접 이웃 검색을 위한 LSH(Locality Sensitive Hashing) 기술은 입력 데이터를 간결한 코드로 변환하기 전에 입력 데이터를 선형으로 투영하는데 활용될 수 있다. 예를 들어, k-비트 이진 코드는 아래의 수식(2)를 만족할 수 있다:
Figure 112017107143514-pct00016
(2)
그러나 이러한 선형 투영 동작들은 입력 차원(d)이 증가함에 따라 계산적으로 비싸진다. 리트리브 작업들에서 높은 리콜(high recall)을 달성하기 위해,
Figure 112017107143514-pct00017
가 되도록 큰 k를 가진 긴(long) 코드들 사용할 수 있다. 이 경우, 투영의 공간 및 계산 복잡도는 Ο(d2)이며, 이러한 높은 투영 비용은 종종 학습 및 예측 시간 둘 모두에서 장애(bottleneck)가 된다. 예를 들어, k = d = 50,000일 때, 투영 행렬 단독이 10 GB(단일 정밀도)를 요구할 수 있고 하나의 벡터를 투영하는데는 단일 코어 상에서 800 ms가 걸릴 수 있다.
본 개시의 적어도 하나의 양상에서, 투영 행렬은 직교일 수 있다. 직교 변환은, 다른 것들 중에서도, 예를 들어, 그것이 지점들 사이의 유클리드 거리를 보존할 수 있고 분산(variance)을 차원들에 걸쳐 보다 균등하게 분배시키는 것으로 또한 알려져 있기 때문에, 유익할 수 있다. 이 특성들은 몇 가지 잘 알려진 기술들이 실세계 데이터 상에서 잘 수행되게 하는데 중요하다.
직교 투영들을 활용하면 특정 애플리케이션들에 부가적인 이점들을 제공할 수 있다. 예를 들어, 직교성은 데이터-의존 이진 코드들을 학습하면서 최대로 상관되지 않은 비트들을 학습하는 목표를 만족시키는 한 가지 방법일 수 있다. 이러한 상술된 목표를 달성하는 하나의 방법은 투영들에 직교, 또는 거의 직교 제약들을 부과하는 것이다. 유사하게, 이진 임베딩에서, 투영 상에 직교성 제약을 부과하면 근사 최근접 이웃 검색을 실행할 때 개선된 결과들을 달성할 수 있다.
고차원 데이터에 대한 선형 투영들을 효율적으로 수행하기 위해, 본 개시는, 행렬들의 변환 이전에 관계들이 존재하면, 오리지날 엘리먼트와 연관된 관계들을 보존하는 방식으로, 일련의 작은 엘리먼트 행렬들을 구조화된 행렬로 변환하기 위한 방법, 시스템 및 비-일시적인 컴퓨터 판독 가능한 매체를 제공한다. 변환으로부터 발생하는 구조화된 행렬은 예를 들어, 큰 단일 행렬일 수 있다. 그러나 대안적으로, 구조화된 행렬은 직교 구조화된 행렬들의 유연한 패밀리를 개념적으로 나타낼 수 있다. 본 개시의 적어도 하나의 양상에서, 보존된 관계는 일련의 엘리먼트 행렬들의 각각의 행렬과 연관된 직교성일 수 있다. 대안적으로, 또는 부가적으로, 보존된 관계는 행렬과 연관된 대응하는 특징 벡터들 사이의 거리일 수 있다. 거리는 예를 들어, 행렬과 연관된 대응하는 특징 벡터들 간의 유클리드 거리일 수 있다. 엘리먼트 행렬들의 변환은 작은 엘리먼트 행렬들의 크로네커 곱을 사용함으로써 달성될 수 있으며, 이는 상당히 감소된 공간 및 계산의 복잡도로 이어진다. 이 변환과 연관된 유연성은 주어진 애플리케이션의 요구들에 적응하도록 행렬들에서 자유 파라미터들의 수의 변동을 용이하게 할 수 있다.
이에 따라, 본 개시의 적어도 하나의 양상은 큰 구조화된 행렬을 형성하도록 일련의 작은 직교 행렬들을 변환으로써 직교 구조화된 행렬들의 패밀리를 구성할 수 있다. 본 개시의 적어도 하나의 양상은 일련의 작은 직교 엘리먼트 행렬들의 크로네커 곱을 사용함으로써 상술된 변환을 용이하게 한다. 크로네커 투영 행렬은 수식(3)을 만족할 수 있다:
Figure 112017107143514-pct00018
(3)
수식(3)에서, Aj(j = 1, … , M)는 작은 직교 행렬들이다. 작은 직교 행렬들(Aj(j = 1, … , M))은 엘리먼트 행렬들로서 지칭될 수 있다. 상술된 변환에 따라 생성된 큰 행렬은 적어도 4개의 주요한 이점들과 연관될 수 있다. 첫째, 큰 행렬은 직교성 제약을 만족하고 이에 따라 큰 행렬은 오리지날 공간에서 유클리드 거리를 보존할 수 있다. 둘째, 고속 푸리에 변환-유사 계산들이
Figure 112017107143514-pct00019
의 시간 복잡도로 투영을 계산하는데 사용될 수 있다. 셋째, 엘리먼트 행렬들의 크기를 변경함으로써, 결과적인 큰 행렬은 다양한 수의 파라미터들(자유도)과 연관될 수 있고, 이에 따라 퍼포먼스-속도 트레이드-오프(performance-speed trade-off)를 제어하는 것을 보다 쉽게 한다. 넷째, 큰 행렬의 공간 복잡도는 대부분의 다른 구조화된 행렬들에 대한
Figure 112017107143514-pct00020
에 비해
Figure 112017107143514-pct00021
이다. 또한, 제안된 크로네커 투영은 예를 들어, 이진 임베딩 및 벡터 양자화를 포함하는 다양한 상이한 세팅들 하에서의 근사 최근접 이웃 검색 문제에 이점을 제공한다.
이진 임베딩 방법들은,
Figure 112017107143514-pct00022
가 되도록 오리지날 벡터들을 k-비트 이진 벡터들에 맵핑할 수 있다. 이러한 맵핑은 이진 코드로서 데이터 지점들의 표현을 활용할 수 있고, 그리하여
Figure 112017107143514-pct00023
일 때에도 저장 비용을 상당히 감소시킨다. 근사 최근접 이웃들은 이진 코드 공간에서의 해밍 거리를 사용하여 리트리브될 수 있는데, 이는 예를 들어, 현대의 컴퓨터 아키텍처들 상에서 POPCNT 명령 또는 테이블 룩업(table lookup)을 사용하는 것을 비롯해서 다양한 방식들로 매우 효율적으로 계산될 수 있다.
LSH는 코사인 거리를 보존하는 방식으로 이진 코드들을 생성하는데 사용될 수 있고 통상적으로, 랜덤화된 투영들을 사용하여 이진 코드를 생성한다. 그러나 이러한 랜덤화된 투영들을 사용하면 투영 행렬(R)을 최적화함으로써 데이터-의존 이진 코드들을 학습하는 이점들을 포기할 수 있다. 예를 들어, ITQ(Iterative Quantization)를 활용하는 방법들은, 학습된 직교 투영이 뒤따르는 PCA 투영을 사용함으로써, 결과적인 이진 임베딩은 비직교 또는 랜덤화된 직교 투영을 능가할 수 있음을 표시한다. 투영은 SVD를 통한 투영들의 분해(solving)와 데이터 지점들의 투영들 간을 교번함으로써 학습될 수 있다. 그러나 고차원 특징들의 경우, 이러한 접근법은 차원성이 급격히 감소(이는 퍼포먼스를 손상시킴)되지 않으면 비실용적일 수 있다. 크로네커 곱으로 학습되는 투영들을 용이하게 하는 본 개시의 양상들을 활용하면 ITQ와 유사한 퍼포먼스 능력들(실질적으로 더 효율적임)을 발생시킬 수 있다.
양자화 방법들은, 통상적으로 예를 들어, k- 평균 알고리즘과 같은 벡터 양자화 알고리즘에 의해 획득될 수 있는 양자화기(quantizer)들의 세트를 통해 데이터 지점들을 나타낼 수 있다. 주어진 질의 벡터(q)의 최근접 이웃들을 검색하기 위해, 데이터베이스에서 모든 데이터 지점들과 q 간의 유클리드 거리가 계산될 수 있다. 유클리드 거리들은 벡터-양자화기 거리들에 의해 근사될 수 있다. 대안적으로, 또는 부가적으로, 데이터가 고차원인 경우, 양자화는 서브공간(subspace)들에서 독립적으로 수행될 수 있다. 일반적으로 사용되는 서브공간은 벡터들을 청킹(chunking)함으로써 식별될 수 있으며, 이는 PQ(Product Quantization)로 이어질 수 있다.
질의 벡터(q)와 데이터베이스 지점(x) 사이의 거리는 수식(4)에 대해 기술될 수 있다:
Figure 112017107143514-pct00024
(4)
수식(4)에서, m은 서브공간의 총 수이고,
Figure 112017107143514-pct00025
Figure 112017107143514-pct00026
는 서브벡터들이며,
Figure 112017107143514-pct00027
는 서브공간(i) 상의 양자화 함수이다. 그의 비대칭 성질로 인해, 질의 벡터가 아니라 데이터베이스 지점들만이 양자화된다. 퍼포먼스를 증가시키기 위해, 상이한 서브공간들은 주어진 데이터에 대해 유사한 분산을 갖는다. 이를 달성하기 위한 하나의 방식은 수식(5)에 기술된 바와 같이 직교 변환(R)을 데이터에 적용하는 것이다:
Figure 112017107143514-pct00028
(5)
투영 행렬(R)이 직교이기 때문에, 투영 행렬(R)은 유클리드 거리를 보존할 수 있다. 랜덤 투영 행렬을 사용하는 대신, 주어진 데이터로부터 투영 행렬이 학습될 수 있으며, 이는 개선된 리트리브 결과들로 이어진다. 그러나 본 개시 이전에 존재하는 투영 연산을 용이하게 하기 위한 방법들은 고차원 공간들에서 높은 자원 비용들, 예를 들어, 프로세서 사용, 메모리 사용, 실행 시간과 연관될 수 있다.
따라서, 적어도 위에서 설명된 이유들로, 이진 임베딩 및 양자화 둘 모두에 대해, 직교적이고 효율적으로 학습 가능한 빠른 투영이 필요하다. 이하에서 논의되는 바와 같이, 이들 목적들은 각각의 각자의 엘리먼트 행렬과 연관된 관계들을 보존하는 변환 알고리즘을 사용하여 일련의 엘리먼트 행렬들을 큰 구조화된 행렬로 변환함으로써 달성될 수 있다. 변환 알고리즘은 다른 것들 중에서도, 예를 들어, 투영을 생성하기 위한 크로네커 곱의 사용을 포함할 수 있다.
크로네커 곱은 상술된 변환을 용이하게 하는 다수의 특성들과 연관될 수 있다. 예를 들어,
Figure 112017107143514-pct00029
Figure 112017107143514-pct00030
라 한다. A1 및 A2의 크로네커 곱(
Figure 112017107143514-pct00031
)은 수식(6)을 만족한다:
Figure 112017107143514-pct00032
(6)
수식(6)에서, a1(i,j)는 A1의 i-번째 행 및 j-번째 열의 엘리먼트이다. 크로네커 곱은 텐서 곱 또는 직접 곱으로서 또한 지칭될 수 있다. 동작 mat(x,a,b)는 d 차원 벡터를 a × b 행렬로 재성형할 수 있고(ab = d), vec(·)는 행렬을 벡터로 "스트레칭(stretching)"함으로써 벡터를 형성할 수 있고, vec(mat(x,a,b)) = x이다.
크로네커 곱은 본원에서 인용된 이점들을 용이하게 하는 복수의 특성들과 연관될 수 있다. 예를 들어, 이러한 특성들의 적어도 서브세트는, 오리지날 엘리먼트 행렬들과 연관된 관계들을 또한 보존하면서 빠른 직교 투영의 생성을 돕는다. 상술된 이점들을 용이하게 하는 크로네커 곱의 2개의 특성들은
Figure 112017107143514-pct00033
및 크로네커 곱이 엘리먼트 행렬들의 직교성을 보존한다는 사실을 포함한다. 즉, A1 및 A2가 둘 모두 직교하는 경우,
Figure 112017107143514-pct00034
가 또한 직교한다.
본 개시의 적어도 하나의 양상에 따라, 크로네커 투영 행렬(
Figure 112017107143514-pct00035
)은 수식(7)에서 아래에서 기술되는 바와 같이 몇 개의 엘리먼트 행렬들의 크로네커 곱을 포함할 수 있다.
Figure 112017107143514-pct00036
(7)
여기서, 수식(7)에서,
Figure 112017107143514-pct00037
이며, 여기서
Figure 112017107143514-pct00038
Figure 112017107143514-pct00039
이다.
이러한 방식으로 큰 행렬을 형성하는 하나의 이점은 크로네커 곱의 계산이 감소된 계산 복잡도를 이용할 수 있다는 것이다. 논의를 단순화하기 위해, 행렬(R)은 정사각형, 즉 k = d이고, 모든 엘리먼트 행렬들은 또한 동일한 차수(de)를 갖는 정사각형이라고 가정한다. 부동 소수점 연산(FLOP)들은 상이한 방법들의 계산 비용들의 정확한 추정을 제공한다. FLOP들이 d-차원 벡터 상에서 크로네커 투영을 계산한다고 하고, 차수(de)의 엘리먼트 행렬들은 f(d,de)이다. 크로네커 곱의 하나의 특성은 아래의 수식(8)에서 도시된다.
Figure 112017107143514-pct00040
(8)
Figure 112017107143514-pct00041
를 수행하려면 d(2de ― 1)개의 FLOP들(dde 곱셈들 및 dde-d 뎃셈들)이 필요하다. 그 후,
Figure 112017107143514-pct00042
의 계산은 de개의 더 작은 규모의 문제들인 것으로 밝혀지며, 각각은 수식(9)에서 반영되는 바와 같이, 차수(de)의 엘리먼트 행렬, 및 특징 차원(
Figure 112017107143514-pct00043
)을 갖는 크로네커 투영을 계산한다:
Figure 112017107143514-pct00044
(9)
수식(9)에 기초하여, d-차원 벡터의 크로네커 투영을 수행하는 FLOP들은
Figure 112017107143514-pct00045
이다.
본원에서 설명되는 이점들을 용이하게 하는데 도움이 되는 크로네커 투영의 다른 매력적인 특성은 그의 구조의 유연성이다. 예를 들어, Aj(j = 1, …, M)의 크기를 제어함으로써, 모델의 파라미터들의 수(이에 따라, 용량) 및 계산 비용의 균형을 쉽게 맞출 수 있다. 각각이
Figure 112017107143514-pct00046
개의 파라미터들을 갖는
Figure 112017107143514-pct00047
엘리먼트 행렬들이 존재한다. 크로네커 투영에서 파라미터들의 수는
Figure 112017107143514-pct00048
일 수 있으며, 이는
Figure 112017107143514-pct00049
(de = d일 때) 내지
Figure 112017107143514-pct00050
(de = 2일 때)의 범위에 있다.
위에서, 본 개시는 크로네커 투영(R) 및 모든 엘리먼트 행렬들이 정사각형인 예들을 참조하여 설명되었다. 그러나 본 발명은 그렇게 제한될 필요는 없다. 대신에, 예를 들어, 본 개시는 또한 비-정사각형 크로네커 투영들 및/또는 비-정사각형 엘리먼트 행렬들로 확장될 수 있다. 예를 들어, 엘리먼트 행렬들의 크기들은 d 및 k를 분해함으로써 선택될 수 있다. 대안적으로, 또는 부가적으로, d 또는 k가 작은 수의 제곱으로 분해될 수 없는 경우들이 발생할 수 있다. 예를 들어, 입력 특징에 대하여, 서브샘플링 또는 제로 패딩(padding zeros)함으로써 차원을 변경할 수 있다. 별개로, 예를 들어, 출력에 대하여, 더 긴 코드를 사용하고 그 후 서브샘플링할 수 있다. 크로네커 투영의 생성은 정사각형 투영 행렬(R) 및 비-정사각형 투영 행렬 둘 모두의 맥락에서 아래에서 추가로 논의될 것이다.
구조화되지 않은 투영, 순환 투영 및/또는 이중선형(bilinear) 투영 등과 유사한 방식으로, 크로네커 투영이 또한 랜덤으로 생성될 수 있다. 그러나 랜덤으로 생성된 크로네커 투영은, 그것이 고차원 데이터에 적합하기 때문에 상술된 투영들의 리스팅(listing)을 개선한다.
랜덤화된 크로네커 투영은 이진 임베딩 및 양자화에서 적용될 수 있다. 크로네커 투영의 이러한 적용은 구조화되지 않은 투영 행렬(수식(1) 및 수식(5)의 R)을 랜덤화된 크로네커 투영 행렬로 대체함으로써 달성될 수 있다.
예를 들어, 크로네커 투영과 대하여, 본원에서 설명되는 방법, 시스템 및 컴퓨터 프로그램은 M(작은)개의 직교 엘리먼트 행렬들을 생성할 수 있다. 본 개시의 적어도 하나의 양상에서, 엘리먼트 행렬은 작은 랜덤 가우스 행렬을 생성하고 이어서 QR 분해를 수행함으로써 생성될 수 있다. 예를 들어, 크기가 2 x 2인 엘리먼트 행렬들에 대해, 차수 d의 랜덤화된 크로네커 투영을 생성하는 시간 복잡도는 단지
Figure 112017107143514-pct00051
이다. 이는, 예를 들어, 차수(d)의 직교 행렬의 구조화되지 않은 투영의 생성이 시간 복잡도(
Figure 112017107143514-pct00052
)를 갖기 때문에 상당한 이점이다. 따라서, 랜덤화된 크로네커 투영은 고차원 데이터에 대한 랜덤화된 투영들을 생성하기 위한 실용적인 솔루션을 제공한다.
본 개시의 다른 양상에 따라, 크로네커 투영 파라미터들을 최적화하기 위한 시스템 및 방법이 개시된다. 아래에서 보다 상세히 설명된 바와 같이, 최적화 알고리즘은 이진 임베딩, 양자화에 대하여 논의될 것이고, 그 후 양자는 각각의 엘리먼트 행렬에 대한 직교 프로크루스테스(procrustes) 문제를 푸는 것으로서 공식화될 수 있음을 보여줄 것이다. 이 논의를 위해, 우리는
Figure 112017107143514-pct00053
의 트레이닝 데이터를 가정한다. 아래의 논의는 k = d라는 가정을 먼저 개별적으로 해결하고, 그 후 논의는 k ≠ d 경우들로 솔루션을 확장한다.
우선, 이진 임베딩에 대한 이진화 손실을 최소화하는 문제가 해결된다. 최적화 문제는 수식(10)에 도시된 바와 같이 표현될 수 있다.
Figure 112017107143514-pct00054
(10)
수식(10)에서, 이진 행렬
Figure 112017107143514-pct00055
이고, bj는 xi의 이진 코드, 즉
Figure 112017107143514-pct00056
이다. 또한, 크로네커 구조가 R에 부과된다. 수식(3)의 로컬 솔루션은 최소화를 교번시킴으로써 발견될 수 있다. R이 고정된 경우에서, B는 정의에 기초하여 직접적인 이진화(straightforward binarization)에 의해 계산된다. 대안적으로,
Figure 112017107143514-pct00057
및 k = d 인 경우들에서(아래에서 k < d 경우에 대해 논의할 것임), R은 수식(11)에 기술된 직교 프로크루스테스 문제에 의해 발견된다:
Figure 112017107143514-pct00058
(11)
다음으로, 양자화에 대하여, 우리는 데카르트 K-평균(Cartesian K-Means)(ck-means) 방법을 고려한다. ck-평균에 대해, 입력 샘플(x)은 m 개의 서브공간으로 분할되고(
Figure 112017107143514-pct00059
), 각각의 서브공간은 h 개의 서브-중심들(sub-centers)로 양자화될 수 있다. 아래에 논의된 예에 따라, 모든 서브-중심 세트들이 동일한 고정된 카디널리티(cardinality)를 갖는 시나리오가 고려된다. 그러나 본 발명은 그렇게 제한될 필요는 없다. 예를 들어, 본 개시는 또한 변동되는 카디널리티들을 갖는 서브-중심 세트들에 대해 유사한 방식으로 적용될 수 있다.
Figure 112017107143514-pct00060
라고 하고, 여기서
Figure 112017107143514-pct00061
이다. 즉, p(j)는 서브-중심(
Figure 112017107143514-pct00062
)이 어느 것에 가장 근접한지에 관한 표시자이다.
Figure 112017107143514-pct00063
는 j번째 서브-중심 행렬이고,
Figure 112017107143514-pct00064
는 수식(12)에 기술된 바와 같이 모든 서브-중심들의 연결(concatenation)(대각선 방향)에 의해 형성되는 중심 행렬이라고 한다.
Figure 112017107143514-pct00065
(12)
ck-평균에서, 중심 행렬(C)은 직교 행렬(
Figure 112017107143514-pct00066
) 및 블록 대각 행렬(
Figure 112017107143514-pct00067
)에 의해 파라미터화된다. ck-평균의 최적화 문제는 수식(13)과 같이 작성될 수 있다:
Figure 112017107143514-pct00068
(13)
유사한 교번 절차를 활용하여 크로네커 구조를 직교 행렬 R에 부과한다. R이 고정된 경우들에서, D 및 P를 업데이트하는 것은 k-평균을 갖는 각각의 서브공간에서의 벡터 양자화와 등가일 수 있다. 상술된 접근법은, 각각의 서브공간에 대한 클러스터들의 수가 항상 작은 수(예를 들어, h = 256)로 세팅되므로 중심들의 수가 통상적으로 작을 수 있기 때문에 효율적이다. 수식(1)에 반영된 바와 같이, D 및 P가 고정된 채로 R을 업데이트하는 것은 직교 프로크루스테스 문제로서 접근될 수 있다.
a
Figure 112017107143514-pct00069
(14)
이에 따라, 위에서 논의된 둘 모두의 접근법들 대해, 직교 프로크루스테스 문제가 발생할 수 있다. 크로네커 곱 및/또는 투영을 활용하는 본 개시의 양상에 대해, 문제는 크로네커 프로크루스테스로서 지칭될 수 있다. 크로네커 프로크루스테스는 수식(15)에 대하여 아래에 도시될 수 있다:
Figure 112017107143514-pct00070
,
Figure 112017107143514-pct00071
(15)
위의 최적화를 해결하기 위해, 반복적인 방법이 로컬 솔루션을 발견하기 위해 순차적으로 각각의 엘리먼트 행렬을 업데이트하는데 활용될 수 있다. 이 방법은 수식(16)으로서
Figure 112017107143514-pct00072
를 재작성함으로써 시작할 수 있다:
Figure 112017107143514-pct00073
(16)
크로네커 곱은 직교성을 보존할 수 있기 때문에 제 2 등식(equality)이 유지된다. 따라서, 다음 단계는
Figure 112017107143514-pct00074
를 최대화하는 것일 수 있다. 트레이스의 특성을 이용하여, 이는 수식(17)로서 표현될 수 있다:
Figure 112017107143514-pct00075
(17)
수식(17)에서, bi 및 xi는 각각 행렬 B 및 행렬 X의 i-번째 열이다. 이 문제는 모든 다른 것들이 고정된 채로 유지되는 동안 한 번에 하나의 엘리먼트 행렬을 업데이트함으로써 해결할 수 있다. 보편성의 손실 없이, 수식(18)에 도시된 바와 같이 Aj를 업데이트하는 것을 고려한다.
Figure 112017107143514-pct00076
(18)
수식(18)에서, 여기서
Figure 112017107143514-pct00077
Figure 112017107143514-pct00078
이다.
Figure 112017107143514-pct00079
Figure 112017107143514-pct00080
의 차원은 각각
Figure 112017107143514-pct00081
,
Figure 112017107143514-pct00082
Figure 112017107143514-pct00083
라고 한다. 또한,
Figure 112017107143514-pct00084
Figure 112017107143514-pct00085
이다.
크로네커 곱과 연관된 특성들에 따라, 수식(18)의 목적 함수는 다음을 만족할 수 있다:
Figure 112017107143514-pct00086
(19)
Figure 112017107143514-pct00087
Figure 112017107143514-pct00088
라고 한다. 그 후, 수식(19)은 다음과 같이 표현될 수 있다:
Figure 112017107143514-pct00089
(20)
하나의 엘리먼트 행렬을 업데이트할 때, 계산 비용은 3개의 상이한 소스들로부터 비롯될 수 있다. 여기서 S1로 지칭되는 제 1 소스는 고정된 엘리먼트 행렬에 있어서 데이터의 크로네커 곱을 계산하는 것에 기인한다. 여기서 S2로서 지칭되는 제 2 소스는 투영된 데이터 및 코드들의 곱을 계산하는 것에 기인한다. 여기서 S3으로서 지칭되는 제 3 소스는 최적의 엘리먼트 행렬을 얻기 위해 SVD를 수행하는 것에 기인한다. 엘리먼트 행렬들이 큰 경우들에 대해, 최적화 장애는 SVD일 수 있다. 대안적으로, 엘리먼트 행렬들이 예를 들어 2 x 2와 같이 작을 수 있는 경우들에 대해, SVD를 수행하는 것은 대략 일정한 시간 내에 달성될 수 있다. 따라서, 주요 계산 비용은 S1 (
Figure 112017107143514-pct00090
Figure 112017107143514-pct00091
) 및 S2 (
Figure 112017107143514-pct00092
Figure 112017107143514-pct00093
)로부터 비롯된다. 총
Figure 112017107143514-pct00094
개의 엘리먼트 행렬이 있기 때문에, 전체 최적화의 계산 복잡도는
Figure 112017107143514-pct00095
이다.
위의 최적화에서, 랜덤화된 크로네커 투영이 초기화로서 사용되었다. 이진 임베딩 및 양자화 둘 모두에 대해, 제안된 절차에 기초하여 목적(objective)이 빠르게 감소할 수 있다. 만족스러운 솔루션은 수십 번의 반복들 내에서 발견될 수 있다.
위에 논의된 접근법은 k = d인 시나리오에 기초하여 논의되었다. 그러나 본 개시의 양상들은 k ≠ d인 시나리오들에 대해서도 또한 활용될 수 있다. K ≠ d 인 경우들에 대해, 투영 행렬(R)은 비-정사각형 행/열 직교 엘리먼트 행렬들의 크로네커 곱에 의해 형성될 수 있다. 그러한 경우들에서, 크로네커 곱은 행/열의 직교성을 보존할 수 있다. 예를 들어, k > d 일 때, 직교 프로크루스테스 최적화 문제는 k = d와 유사하게 해결될 수 있다. 대안적으로, 예를 들어, k < d일 때,
Figure 112017107143514-pct00096
이다. 따라서, 수식(16)의 제 2 등식은 성립하지 않는다. 이에 따라,
Figure 112017107143514-pct00097
는 다음과 같이 된다:
Figure 112017107143514-pct00098
(21)
이 문제는
Figure 112017107143514-pct00099
경우에서와 마찬가지로
Figure 112017107143514-pct00100
가 R에 독립적이라고 가정함으로써 완화될 수 있다.
여기에 설명된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합들로 실현될 수 있다. 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에 데이터 및 명령들을 송신하도록 커플링되는 적어도 하나의 프로그래밍 가능한 프로세서(특수 목적 또는 범용일 수 있음)를 포함하는 프로그래밍 가능한 시스템 상에서 실행 가능하고 그리고/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로서 또한 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령들을 포함하며, 고-레벨의 절차적 및/또는 오브젝트-지향 프로그래밍 언어로 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에서 사용된 바와 같이, "기계-판독 가능한 매체", "컴퓨터-판독 가능한 매체"라는 용어들은 기계 판독 가능한 신호로서 기계 명령들을 수신하는 기계 판독 가능한 매체를 비롯해서, 프로그래밍 가능한 프로세서에 기계 명령들 및/또는 데이터를 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광학 디스크들, 메모리, PLD(Programmable Logic Devices)들)을 지칭한다. "기계-판독 가능한 신호"라는 용어는 기계 명령들 및/또는 데이터를 프로그래밍 가능한 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 상호 작용을 제공하기 위해, 여기서 설명되는 시스템들 및 기술들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 상호작용을 제공하기 위해 또한 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있고, 사용자로부터의 입력은 음향, 대화 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
여기서 설명되는 시스템들 및 기술들은 (예를 들어, 데이터 서버로서) 백엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하는, 또는 프론트 엔드 컴포넌트(예를 들어, 사용자가 여기서 설명된 시스템들 및 기술들의 구현과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하는 컴퓨팅 시스템, 또는 이러한 백엔드, 미들웨어 또는 프론트 엔드 컴포넌트들의 임의의 조합으로 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 연결될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크("LAN"), 광역 네트워크("WAN") 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이며 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트 및 서버의 관계는 각각의 컴퓨터들 상에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
본 개시는 일부 세부 사항들을 포함하지만, 이들은 본 개시의 또는 청구될 수 있는 것의 범위에 관한 제한으로 해석되어서는 안 되며, 오히려 본 개시의 예시적인 구현들의 특징들의 설명으로서 해석되어야 한다. 별개의 구현들의 맥락에서 본 개시에서 설명되는 특정한 특징들은 또한 단일 구현에서 결합하여 제공될 수 있다. 역으로, 단일 구현의 맥락에서 설명된 다양한 특징들은 또한 별개로 다수의 구현들로 또는 임의의 적합한 하위결합으로 제공될 수 있다. 또한, 특징들이 특정한 결합들에서 작용하는 것으로 위에서 설명되고 심지어 그러한 결합들로서 먼저 청구될 수 있지만, 청구된 결합으로부터의 하나 이상의 특징들은 일부 경우들에서 결합으로부터 삭제될 수 있고, 청구된 결합은 하위결합 또는 하위결합의 변동을 가리킬 수 있다.
유사하게, 동작들이 특정 순서로 도면들에서 도시되지만, 이러한 동작들은 바람직한 결과들을 달성하기 위해, 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 또는 모든 예시된 동작들이 수행될 것을 요구하는 것으로서 이해되어선 안 된다. 특정한 상황에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 위에서 설명된 구현들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현들에서 이러한 분리를 요구하는 것으로서 이해되어선 안 되며, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
청구 대상의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구항에 기재된 동작들은 상이한 순서로 수행되고 여전히 바람직한 결과들을 달성할 수 있다. 설명된 흐름에서, 다른 단계들이 제공되거나 단계들이 제거될 수 있고, 설명된 시스템들에서, 다른 컴포넌트들이 부가되거나 제거될 수 있다. 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (15)

  1. 컴퓨터로 구현되는 방법으로서,
    복수의 콘텐츠 아이템들을 획득하는 단계;
    상기 복수의 콘텐츠 아이템들 각각으로부터 복수의 특징들(features)을 추출하는 단계;
    검색 공간을 생성하기 위해 추출된 특징들 각각에 대한 특징 벡터를 생성하는 단계;
    생성된 특징 벡터들에 기초하여 일련의 엘리먼트 행렬들(element matrices)을 생성하는 단계 ― 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 하나 이상의 관계들과 연관됨 ― ;
    변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록, 상기 일련의 엘리먼트 행렬들을 구조화된 행렬(structured matrix)로 변환함으로써 상기 검색 공간을 적어도 부분적으로 강화하는 단계;
    검색 오브젝트를 수신하는 단계;
    수신된 검색 오브젝트에 기초하여 강화된 검색 공간을 검색하는 단계; 및
    상기 검색 오브젝트에 응답하는 하나 이상의 콘텐츠 아이템들에 대한 하나 이상의 링크들을 제공하는 단계를 포함하는,
    컴퓨터로 구현되는 방법.
  2. 제 1 항에 있어서,
    상기 엘리먼트 행렬들과 연관된 하나 이상의 관계들은 직교성(orthogonality)을 포함하는,
    컴퓨터로 구현되는 방법.
  3. 제 1 항에 있어서,
    상기 엘리먼트 행렬들과 연관된 하나 이상의 관계들은 유클리드 거리(Euclidean distance)를 포함하는,
    컴퓨터로 구현되는 방법.
  4. 제 1 항에 있어서,
    상기 일련의 엘리먼트 행렬들을 구조화된 행렬로 변환하는 단계는,
    일련의 엘리먼트 행렬들에 대한 크로네커 곱(Kronecker product)의 적용에 부분적으로 기초하여 크로네커 투영(Kronecker projection)을 생성하는 단계를 더 포함하는,
    컴퓨터로 구현되는 방법.
  5. 제 1 항에 있어서,
    상기 수신된 검색 오브젝트에 기초하여 강화된 검색 공간을 검색하는 단계는,
    상기 검색 오브젝트와 연관된 하나 이상의 특징들을 추출하는 단계;
    상기 검색 오브젝트의 특징들을 나타내는 검색 오브젝트 벡터를 생성하는 단계;
    상기 구조화된 행렬을 포함하는 강화된 검색 공간에 대해 상기 검색 오브젝트 벡터를 비교하는 단계; 및
    상기 비교에 기초하여 미리 결정된 관계를 만족시키는 하나 이상의 콘텐츠 아이템들을 식별하는 단계를 더 포함하는,
    컴퓨터로 구현되는 방법.
  6. 제 1 항에 있어서,
    상기 일련의 엘리먼트 행렬들은 특징 벡터 검색 공간의 특정 스냅샷(snapshot)의 오리지날 유클리드 거리에 적어도 부분적으로 기초하여 랜덤으로 생성되는,
    컴퓨터로 구현되는 방법.
  7. 제 1 항에 있어서,
    상기 변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록 상기 일련의 엘리먼트 행렬들을 구조화된 행렬로 변환하는 것은, d-차원 데이터에 대해
    Figure 112019008340133-pct00107
    의 저장 공간 복잡도로 달성되는,
    컴퓨터로 구현되는 방법.
  8. 시스템으로서,
    하나 이상의 컴퓨터들 및 명령들을 저장한 하나 이상의 저장 디바이스들을 포함하고,
    상기 명령들은, 상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금,
    복수의 콘텐츠 아이템들을 획득하는 단계;
    상기 복수의 콘텐츠 아이템들 각각으로부터 복수의 특징들을 추출하는 단계;
    검색 공간을 생성하기 위해 추출된 특징들 각각에 대한 특징 벡터를 생성하는 단계;
    생성된 특징 벡터들에 기초하여 일련의 엘리먼트 행렬들을 생성하는 단계 ― 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬은 하나 이상의 관계들과 연관됨 ― ;
    변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록, 상기 일련의 엘리먼트 행렬들을 구조화된 행렬(structured matrix)로 변환함으로써 상기 검색 공간을 적어도 부분적으로 강화하는 단계;
    검색 오브젝트를 수신하는 단계;
    수신된 검색 오브젝트에 기초하여 강화된 검색 공간을 검색하는 단계; 및
    상기 검색 오브젝트에 응답하는 하나 이상의 콘텐츠 아이템들에 대한 하나 이상의 링크들을 제공하는 단계를 포함하는 동작들을 수행하게 하도록 동작 가능한,
    시스템.
  9. 제 8 항에 있어서,
    상기 엘리먼트 행렬들과 연관된 하나 이상의 관계들은 직교성을 포함하는,
    시스템.
  10. 제 8 항 또는 제 9 항에 있어서,
    상기 엘리먼트 행렬들과 연관된 하나 이상의 관계들은 유클리드 거리를 포함하는,
    시스템.
  11. 제 8 항 또는 제 9 항에 있어서,
    상기 일련의 엘리먼트 행렬들을 구조화된 행렬로 변환하는 단계는,
    일련의 엘리먼트 행렬들에 대한 크로네커 곱의 적용에 부분적으로 기초하여 크로네커 투영을 생성하는 단계를 더 포함하는,
    시스템.
  12. 제 8 항 또는 제 9 항에 있어서,
    상기 수신된 검색 오브젝트에 기초하여 상기 강화된 검색 공간을 검색하는 단계는,
    상기 검색 오브젝트와 연관된 하나 이상의 특징들을 추출하는 단계;
    상기 검색 오브젝트의 특징들을 나타내는 검색 오브젝트 벡터를 생성하는 단계;
    상기 구조화된 행렬을 포함하는 강화된 검색 공간에 대해 상기 검색 오브젝트 벡터를 비교하는 단계; 및
    상기 비교에 기초하여 미리 결정된 관계를 만족시키는 하나 이상의 콘텐츠 아이템들을 식별하는 단계를 더 포함하는,
    시스템.
  13. 제 8 항 또는 제 9 항에 있어서,
    상기 일련의 엘리먼트 행렬들은 특징 벡터 검색 공간의 특정 스냅샷의 오리지날 유클리드 거리에 적어도 부분적으로 기초하여 랜덤으로 생성되는,
    시스템.
  14. 제 8 항 또는 제 9 항에 있어서,
    상기 변환이 상기 일련의 엘리먼트 행렬들의 각각의 엘리먼트 행렬과 연관된 하나 이상의 관계들을 보존하도록 상기 일련의 엘리먼트 행렬들을 구조화된 행렬로 변환하는 것은, d-차원 데이터에 대해
    Figure 112019008340133-pct00108
    의 저장 공간 복잡도로 달성되는,
    시스템.
  15. 하나 이상의 컴퓨터들에 의해 실행 가능한 명령들을 포함하는 소프트웨어를 저장하는 비-일시적인 컴퓨터-판독 가능한 매체로서,
    상기 명령들은, 이러한 실행 시에, 상기 하나 이상의 컴퓨터들로 하여금, 제 1 항 내지 제 7 항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하게 하는,
    비-일시적인 컴퓨터-판독 가능한 매체.
KR1020177031376A 2015-09-24 2016-08-22 빠른 직교 투영 KR102002573B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562232238P 2015-09-24 2015-09-24
US201562232258P 2015-09-24 2015-09-24
US62/232,238 2015-09-24
US62/232,258 2015-09-24
US14/951,909 2015-11-25
US14/951,909 US10394777B2 (en) 2015-09-24 2015-11-25 Fast orthogonal projection
PCT/US2016/047965 WO2017052874A1 (en) 2015-09-24 2016-08-22 Fast orthogonal projection

Publications (2)

Publication Number Publication Date
KR20170132291A KR20170132291A (ko) 2017-12-01
KR102002573B1 true KR102002573B1 (ko) 2019-07-22

Family

ID=60808567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031376A KR102002573B1 (ko) 2015-09-24 2016-08-22 빠른 직교 투영

Country Status (4)

Country Link
EP (1) EP3278238A1 (ko)
JP (2) JP6469890B2 (ko)
KR (1) KR102002573B1 (ko)
CN (1) CN107636639B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611418A (zh) * 2019-02-25 2020-09-01 阿里巴巴集团控股有限公司 数据存储方法及数据查询方法
KR102217219B1 (ko) * 2020-07-30 2021-02-18 주식회사 파란헤움 실내 공간에 대한 긴급 상황의 통보가 가능한 긴급 상황 통보 시스템 장치 및 그 동작 방법
KR102302948B1 (ko) * 2020-08-13 2021-09-16 주식회사 한컴위드 골드바에 대한 정품 인증을 수행하는 골드바 정품 인증 서버 및 그 동작 방법
KR102302949B1 (ko) * 2020-08-13 2021-09-16 주식회사 한컴위드 골드바와의 연동을 통해 디지털 한정 콘텐츠의 제공을 지원하는 디지털 콘텐츠 제공 서비스 서버 및 그 동작 방법
KR102417839B1 (ko) * 2020-08-13 2022-07-06 주식회사 한컴위드 금과 디지털 골드 토큰을 기초로 오프라인 상거래를 가능하게 하는 클라우드 기반의 오프라인 상거래 플랫폼 서버 및 그 동작 방법
KR102639404B1 (ko) 2020-10-30 2024-02-21 가부시키가이샤 페닉스 솔루션 고무제품용 rfid 태그 및 고무제품용 rfid 태그의 제조방법
CN112380494B (zh) * 2020-11-17 2023-09-01 中国银联股份有限公司 一种确定对象特征的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050065929A1 (en) 1999-09-13 2005-03-24 Microsoft Corporation Image retrieval based on relevance feedback
US20080086593A1 (en) 2006-10-10 2008-04-10 Seagate Technology Llc Block level quality of service data in a data storage device
US20080263042A1 (en) 2007-04-18 2008-10-23 Microsoft Corporation Object similarity search in high-dimensional vector spaces
US20090290800A1 (en) 2008-05-22 2009-11-26 James Ting-Ho Lo Cortex-Like Learning Machine for Temporal and Hierarchical Pattern Recognition

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479523A (en) * 1994-03-16 1995-12-26 Eastman Kodak Company Constructing classification weights matrices for pattern recognition systems using reduced element feature subsets
US20030217052A1 (en) * 2000-08-24 2003-11-20 Celebros Ltd. Search engine method and apparatus
US6826300B2 (en) * 2001-05-31 2004-11-30 George Mason University Feature based classification
CN100593785C (zh) * 2008-05-30 2010-03-10 清华大学 一种基于多特征相关反馈的三维模型检索方法
JP5375676B2 (ja) * 2010-03-04 2013-12-25 富士通株式会社 画像処理装置、画像処理方法、および画像処理プログラム
JP5563494B2 (ja) * 2011-02-01 2014-07-30 株式会社デンソーアイティーラボラトリ 対応参照画像検索装置及び方法、コンテンツ重畳装置、システム、及び方法、並びにコンピュータプログラム
JP5258915B2 (ja) * 2011-02-28 2013-08-07 株式会社デンソーアイティーラボラトリ 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
US8891878B2 (en) * 2012-06-15 2014-11-18 Mitsubishi Electric Research Laboratories, Inc. Method for representing images using quantized embeddings of scale-invariant image features
CN103389966A (zh) * 2012-05-09 2013-11-13 阿里巴巴集团控股有限公司 一种海量数据的处理、搜索、推荐方法及装置
JP5563016B2 (ja) * 2012-05-30 2014-07-30 株式会社デンソーアイティーラボラトリ 情報検索装置、情報検索方法及びプログラム
JP5959446B2 (ja) * 2013-01-30 2016-08-02 Kddi株式会社 コンテンツをバイナリ特徴ベクトルの集合で表現することによって高速に検索する検索装置、プログラム及び方法
US20140280426A1 (en) * 2013-03-13 2014-09-18 International Business Machines Corporation Information retrieval using sparse matrix sketching
CN103279578B (zh) * 2013-06-24 2016-04-06 魏骁勇 一种基于上下文空间的视频检索方法
CN103440280A (zh) * 2013-08-13 2013-12-11 江苏华大天益电力科技有限公司 一种应用于海量空间数据检索的索引方法及装置
JP6195365B2 (ja) * 2013-10-18 2017-09-13 Kddi株式会社 ベクトル符号化プログラム、装置及び方法
CN104794733B (zh) * 2014-01-20 2018-05-08 株式会社理光 对象跟踪方法和装置
CN103984675A (zh) * 2014-05-06 2014-08-13 大连理工大学 一种求解全局优化问题的正交逐次逼近方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050065929A1 (en) 1999-09-13 2005-03-24 Microsoft Corporation Image retrieval based on relevance feedback
US20080086593A1 (en) 2006-10-10 2008-04-10 Seagate Technology Llc Block level quality of service data in a data storage device
US20080263042A1 (en) 2007-04-18 2008-10-23 Microsoft Corporation Object similarity search in high-dimensional vector spaces
US20090290800A1 (en) 2008-05-22 2009-11-26 James Ting-Ho Lo Cortex-Like Learning Machine for Temporal and Hierarchical Pattern Recognition

Also Published As

Publication number Publication date
JP6469890B2 (ja) 2019-02-13
JP2019057329A (ja) 2019-04-11
EP3278238A1 (en) 2018-02-07
JP2018524660A (ja) 2018-08-30
CN107636639B (zh) 2021-01-08
KR20170132291A (ko) 2017-12-01
CN107636639A (zh) 2018-01-26

Similar Documents

Publication Publication Date Title
KR102002573B1 (ko) 빠른 직교 투영
JP5926291B2 (ja) 類似画像を識別する方法および装置
Liu et al. Collaborative hashing
US10394777B2 (en) Fast orthogonal projection
WO2017012491A1 (zh) 一种图像高维特征的相似比较方法及装置
AU2011326269B2 (en) Vector transformation for indexing, similarity search and classification
KR101565265B1 (ko) 피쳐 위치 정보의 코딩
US20190385001A1 (en) Data extraction using neural networks
CN111177438B (zh) 图像特征值的搜索方法、装置、电子设备及存储介质
US20190272341A1 (en) Layered locality sensitive hashing (lsh) partition indexing for big data applications
US11874866B2 (en) Multiscale quantization for fast similarity search
CN112307352B (zh) 内容推荐方法、系统、装置和存储介质
EP3115908A1 (en) Method and apparatus for multimedia content indexing and retrieval based on product quantization
Meena et al. Architecture for software as a service (SaaS) model of CBIR on hybrid cloud of microsoft azure
CN111382620A (zh) 视频标签添加方法、计算机存储介质和电子设备
US10824811B2 (en) Machine learning data extraction algorithms
EP3872703B1 (en) Method and device for classifying face image, electronic device and storage medium
CN113901278A (zh) 一种基于全局多探测和适应性终止的数据搜索方法和装置
Aghazadeh et al. Rhash: Robust hashing via l∞-norm distortion
WO2017052874A1 (en) Fast orthogonal projection
Kersting et al. Matrix factorization as search
CN112287136A (zh) 图像特征索引库建立方法、相似图像确定方法
Wen et al. DGNet: A handwritten mathematical formula recognition network based on deformable convolution and global context attention
Saini et al. Image retrieval in cloud computing environment with the help of fuzzy semantic relevance matrix
Sami et al. Learning “initial feature weights” for CBIR using query augmentation

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