Conceitos essenciais
본 논문에서는 대규모 벡터 데이터베이스에서 효율적인 포인트 클라우드 표현과 빠른 근사 최근접 이웃 탐색을 가능하게 하는 새로운 텐서 트레인 기반 포인트 클라우드 압축 방법을 제안합니다.
Resumo
텐서 트레인 기반 포인트 클라우드 압축 및 효율적인 근사 최근접 이웃 탐색
본 연구는 대규모 벡터 데이터베이스, 즉 고차원 포인트 클라우드에서 효율적인 포인트 클라우드 표현과 빠른 근사 최근접 이웃 탐색을 가능하게 하는 새로운 방법을 제시합니다. 이는 이미지 매칭, 의미 검색, 이상 탐지 등 다양한 컴퓨터 과학 분야에서 중요한 구성 요소입니다.
포인트 클라우드 텐서화
D 차원 벡터 집합 Y = {yi ∈ RD} (i = 1, ..., N)를 RN×D 크기의 행렬 Y로 저장하는 것이 일반적입니다. 여행렬의 i번째 행은 벡터 yi에 해당합니다. 저랭크 텐서 방법은 텐서 압축 및 표현에 널리 사용됩니다. 본 연구에서는 효율성과 계산적 시너지 효과를 위해 텐서 트레인 (TT) 분해를 선택했습니다.
행렬 Y의 TT 분해는 행렬을 고차원 텐서로 재구성하는 행렬 텐서화로 시작합니다. 본 연구에서는 열 차원 (특징 차원) D를 변경하지 않고 행 차원 (샘플 차원) N을 N1 × N2 × ... × Nk로 인수 분해합니다.
Yreshaped = reshape(Y, [N1, ..., Nk, D])
텐서 Yreshaped의 저랭크 분해는 텐서 트레인 코어라고 하는 k개의 3차원 텐서로 매개변수화됩니다. 첫 번째 코어 G1 ∈ RD×N1×r1은 특징 차원 D와 첫 번째 샘플 차원 N1을 인수 분해합니다. 나머지 k-1개의 코어 Gi ∈ Rri−1×Ni×ri는 나머지 모든 샘플 차원 N2, ..., Nk를 분리합니다.
Yreshaped[i1, ..., ik, d] = G1[d, i1, :]G2[:, i2, :] ... Gk[:, ik, :]
여기서 (i1, ..., ik)는 재구성 후 표준 인덱스 i를 대체하는 샘플의 다중 인덱스를 나타냅니다. 차원 r1, ..., rk는 텐서 트레인 랭크 (TT 랭크)로 알려져 있으며 rk = 1이라는 제약 조건이 있습니다. TT 랭크는 하이퍼파라미터이며 일반적으로 다를 수 있지만, 본 연구에서는 r1 = ... = rk−1 = r로 설정했습니다.
TT 포인트 클라우드 표현을 사용하면 메모리 소비량을 O(ND)에서 O(DN1r1 + Σi ri−1Niri)로 크게 줄일 수 있습니다. Nmax를 Nmax = maxi Ni로 정의하면 이를 O(DN1r + kr2Nmax)로 표현할 수 있습니다. 이는 하이퍼파라미터 {Ni} (i = 1, ..., k) 및 r에 따라 메모리 사용량을 기하급수적으로 줄일 수 있음을 보여줍니다.
밀도 추정 손실을 사용한 훈련
이러한 포인트 클라우드 압축을 위한 정확한 훈련은 어려운 과제입니다. 주어진 행렬에 대해 주어진 랭크로 TT 근사치를 얻는 효율적인 방법 (예: SVD 기반 방법 및 최적화 기반 방법)이 존재하지만, 이러한 방법을 행렬 Y에 직접 적용하면 결과가 다양하게 나타날 수 있습니다. 이는 행렬 Y의 행을 재정렬하면 TT 랭크에 영향을 미칠 수 있기 때문입니다. 즉, 특정 행 순서 (집합 Y의 벡터 열거)의 경우 낮은 랭크로 행렬 Y를 TT 형식으로 보다 정확하게 압축할 수 있는 반면, 다른 행 순서의 경우 압축이 매우 부정확할 수 있습니다.
행렬 Y에서 행 순서에 대한 TT 근사치의 민감도를 해결하기 위해 새로운 확률적 해석을 제안합니다. 행렬 Y (집합 Y)를 확률 분포 pY에서 추출한 요소가 있는 첫 번째 포인트 클라우드로 간주합니다. 행렬 YTT 내에 TT 형식으로 인코딩된 벡터는 이산 유한 분포 pYTT를 정의하는 두 번째 포인트 클라우드를 나타냅니다. 이제 원래 포인트 클라우드 Y의 압축을 분포 pYTT로 pY를 근사하는 것으로 해석합니다. 여기서 후자는 TT 분해의 매개변수인 코어 (G1, ..., Gk)에 따라 달라집니다. 따라서 근사치는 행렬로 구성할 때 원래 클라우드의 포인트에 대한 특정 번호 매기기 순서에 더 이상 의존하지 않습니다. 분포 pY를 근접하게 근사하기 위해 밀도 추정 손실을 적용하고 표준 SGD 방법을 사용하여 최적화합니다. 본 연구에서는 슬라이스된 와서슈타인 손실과 최근접 이웃 거리 손실을 함께 사용합니다.
근사 최근접 이웃 탐색
TT 포인트 클라우드는 근사 최근접 이웃 탐색 (ANN) 문제에 직접 적용할 수 없습니다. TT 포인트 클라우드에 포함된 포인트는 원래 벡터와 직접적인 대응 관계가 없기 때문입니다. 대신 알 수 없는 기본 분포 ptrue의 근사치에서 "재샘플링"됩니다. ANN 문제를 효율적으로 해결하기 위해 많은 접근 방식에서는 먼저 벡터 데이터베이스 위에 인덱스 구조를 구성합니다. 이러한 인덱스 구조는 벡터 수가 훨씬 적은 스파스화 역할을 합니다. 데이터베이스의 모든 벡터는 인덱스 구조에서 가장 가까운 지점에 해당하는 버킷으로 구성됩니다. 각 쿼리 벡터에 대해 먼저 인덱스 구조에서 K개의 가장 가까운 이웃을 찾은 다음 해당 버킷 내에서 전체 검색을 수행해야 합니다.
본 연구에서는 이 접근 방식을 적용하여 TT 압축 포인트 클라우드를 인덱스 구조로 사용할 것을 제안합니다. 이 접근 방식을 사용하면 벡터 데이터베이스를 더 잘 커버하는 훨씬 더 큰 인 메모리 인덱스를 사용할 수 있습니다. 결과적으로 버킷 크기가 보다 균등하게 분포되고 빈 버킷이 줄어들며 전반적인 검색 성능이 향상됩니다.
계층적 구조
포인트 클라우드 표현의 TT 형식을 사용하면 인덱스의 접미사를 따라 평균 벡터를 빠르게 계산하여 계층적 클러스터링 구조를 형성할 수 있습니다. 이 계층적 구조는 레벨 i에 N1×...×Ni개의 정점이 있는 깊이 k의 트리로 나타낼 수 있습니다. 이 트리의 모든 N1×...×Nk개의 리프는 TT 포인트 클라우드의 포인트이며, 비 리프 정점은 해당 하위 트리의 중심 (평균 벡터)입니다. 이를 통해 각 레벨에서 클러스터 중심에서 가장 가까운 K개의 이웃을 반복적으로 선택하여 검색 후보를 점진적으로 개선하는 빔 검색과 유사한 탐욕적 접근 방식을 사용할 수 있습니다.