1. A computer system, comprising: an advertisement server comprising one or more processors; and a non-transitory storage medium comprising program logic for execution by the one or more processors and causing the one or more processors to perform actions comprising: training a first model using a first ads data set represented by a first plurality of vectors with a first dimension; training a second model using a listwise approach to optimize an estimate cost over all permutations of ads in a second ads data set, wherein the second ads dataset comprises a subset of the first ads data set and an interaction feature between each pair of ads in the subset, the second ads dataset being represented by a second plurality of vectors with a second dimension that is greater than the first dimension; computing an overall expected revenue for each arrangement of ads in the second ads data set; selecting the arrangement with maximum computed overall expected revenue; and placing the ads in a block on a webpage according to the selected arrangement, wherein the interaction feature comprises at least one of the following: ad position in the block; neighboring ad in the block; and a semantic relation between each ad and the neighboring ad.