[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1652531137454.jpg -(1207499 B, 3223x4021) Thumbnail displayed, click image for full size.
1207499 No.201184  

Есть N = 10k векторов в памяти. За каждый шаг T маленькое число m = 10 векторов удаляется из памяти и на их место добавляется равное количество новых. Как для каждого шага быстрее всего найти пару векторов с минимальным косинусным коэффициентом (cosine similarity)? Будем считать что попарная матрица, коэффициент для каждой пары, считается относительно быстро. Особенно учитывая что с шага T > 1 нужно вычислять только (N - m) * m новых пар. Но поиск минимального значения из (N*N)/2 занимает вечность (а например иерархическое кластрирование не может в удаление элементов, как и BK-tree, во всяком случае достаточно быстро).

>> No.201185  
File: 1652532794912.jpg -(139328 B, 600x800) Thumbnail displayed, click image for full size.
139328

>>201184
не совсем понял пост.

>коэффициент для каждой пары, считается относительно быстро.

держи их в бинарном дереве и потом ищи минимум между листьями и пэрентом?

>> No.201186  
File: 1652537119491.jpg -(2537227 B, 2000x1391) Thumbnail displayed, click image for full size.
2537227

>>201184
Разбить пространство на сегменты и для каждого искомого вектора искать пары только в его сегменте и соседних сегментах? Если в них векторов нет то расширять радиус поиска.

>> No.201187  

>>201186
Спасибо, начну с этого.

>> No.201188  

Эта задача называется maximum inner product search. Есть куча методов для этого, и как заметил ОП, не все могут в быстрое удаление.

Советую посмотреть в сторону locality sensitive hashing, там более-менее просто и не зависит от конкретной геометрии данных.



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]