Boolean matrix factorization (BMF) approximates a given binary input matrix as the product of two smaller binary factors. As opposed to binary matrix factorization which uses standard arithmetic, BMF uses the Boolean OR and Boolean AND operations to perform matrix products, which leads to lower reconstruction errors. BMF is an NP-hard problem. In this paper, we first propose an alternating optimization (AO) strategy that solves the subproblem in one factor matrix in BMF using an integer program (IP). We also provide two ways to initialize the factors within AO. Then, we show how several solutions of BMF can be combined optimally using another IP. This allows us to come up with a new algorithm: it generates several solutions using AO and then combines them in an optimal way. Experiments show that our algorithms (available on gitlab) outperform the state of the art on medium-scale problems.
翻译:布尔矩阵分解(BMF)将给定的二元输入矩阵近似为两个更小的二元因子的乘积。与使用标准算术的二元矩阵分解不同,BMF采用布尔OR和布尔AND运算执行矩阵乘法,从而降低重构误差。BMF是一个NP难问题。本文首先提出一种交替优化(AO)策略,通过整数规划(IP)求解BMF中一个因子矩阵的子问题,并给出两种在AO框架内初始化因子的方法。随后,我们展示了如何通过另一个IP将BMF的多个解进行最优组合,从而提出一种新算法:先利用AO生成多个解,再以最优方式对其进行组合。实验结果表明,我们的算法(代码见gitlab)在中尺度问题上优于现有最优方法。