The MIPS (maximum inner product search), which finds the item with the highest inner product with a given query user, is an essential problem in the recommendation field. It is usual that e-commerce companies face situations where they want to promote and sell new or discounted items. In these situations, we have to consider a question: who are interested in the items and how to find them? This paper answers this question by addressing a new problem called reverse maximum inner product search (reverse MIPS). Given a query vector and two sets of vectors (user vectors and item vectors), the problem of reverse MIPS finds a set of user vectors whose inner product with the query vector is the maximum among the query and item vectors. Although the importance of this problem is clear, its straightforward implementation incurs a computationally expensive cost. We therefore propose Simpfer, a simple, fast, and exact algorithm for reverse MIPS. In an offline phase, Simpfer builds a simple index that maintains a lower-bound of the maximum inner product. By exploiting this index, Simpfer judges whether the query vector can have the maximum inner product or not, for a given user vector, in a constant time. Besides, our index enables filtering user vectors, which cannot have the maximum inner product with the query vector, in a batch. We theoretically demonstrate that Simpfer outperforms baselines employing state-of-the-art MIPS techniques. Furthermore, our extensive experiments on real datasets show that Simpfer is at least two orders magnitude faster than the baselines.
翻译:最大内部产品搜索 MIPS (最大内部产品搜索) 发现该物品为内部产品最高, 有给定的查询用户, 这是建议字段中的一个基本问题。 通常, 电子商务公司面临他们想要促销和销售新项目或折扣项目的情况。 在这些情况下, 我们必须考虑一个问题: 谁对这些物品感兴趣以及如何找到这些物品? 本文通过处理一个叫作反向最大内部产品搜索( 逆向 MIPS)的新问题来回答这个问题。 鉴于一个查询矢量和两组矢量( 用户矢量和物品矢量), 反向MIPS 的问题在建议字段中发现一组用户矢量的内产品是查询和项目矢量的最大数量。 虽然这一问题的重要性很明确, 但是其直接执行需要计算成本高昂。 因此, 我们建议Simpfer, 一个简单、 快速和精确的算法来解决这个问题。 在离线阶段, Simper 建立一个简单的指数, 以维持最低的内产量。 通过利用这个指数, Simpfer 判断我们的内部矢量是否拥有最低的内向量或最短的向量的向量的向量的向量的向量的向量的向量值是最大的向量的向量值。,, 我们的向内向量的向量的向内向量的向量的向量的向量的向量的向量的向量不能在给一个最深向量展示的向量显示的向量显示的向量显示的向量的向量显示的向量的向量的向量, 。