  As a step towards improving the abstract reasoning capability of machines, we
aim to solve Raven's Progressive Matrices (RPM) with neural networks, since
solving RPM puzzles is highly correlated with human intelligence. Unlike
previous methods that use auxiliary annotations or assume hidden rules to
produce appropriate feature representation, we only use the ground truth answer
of each question for model learning, aiming for an intelligent agent to have a
strong learning capability with a small amount of supervision. Based on the RPM
problem formulation, the correct answer filled into the missing entry of the
third row/column has to best satisfy the same rules shared between the first
two rows/columns. Thus we design a simple yet effective Dual-Contrast Network
(DCNet) to exploit the inherent structure of RPM puzzles. Specifically, a rule
contrast module is designed to compare the latent rules between the filled
row/column and the first two rows/columns; a choice contrast module is designed
to increase the relative differences between candidate choices. Experimental
results on the RAVEN and PGM datasets show that DCNet outperforms the
state-of-the-art methods by a large margin of 5.77%. Further experiments on few
training samples and model generalization also show the effectiveness of DCNet.
Code is available at https://github.com/visiontao/dcnet.
