Эта задача называется maximum inner product search. Есть куча методов для этого, и как заметил ОП, не все могут в быстрое удаление.
Советую посмотреть в сторону locality sensitive hashing, там более-менее просто и не зависит от конкретной геометрии данных.