Complementary Brands, Not Competitors
My little algortithm had been suggesting promising partnerships to brands for a few weeks, now. No co-acquisition without partners, as long as you could find the right ones first! Your ideal partner is a brand that matches you, that shares your values. Pairing the two should come off as natural, to elicit the kind of surprise that goes "oh of course, I should have thought of that" instead of "I don't see why we should connect".
Refining the Similarity Metric
I had designed this similarity metric between brands, then fine-tune my algorithm toward maximizing this one metric. The tentative results were nice, yet that hypothesis had to be tested on the ground, with our clients. It worked very well! For some of them.
The Mistake: Partners That Are Too Similar
Brands most similar to you do things similar to you... for good reason, since they're your direct competitors. No one's going to partner with the competition. The algorithm does precisely what it's told, yet it does not do what we actually want.
This shines a new light on our data, making the issue much clearer. Some brands have a unique enough proposition that no one else competes their space. Others operate in a crowded market, where style and design are key to standing out, while their core product definition is shared by many around them.
Adjusting the Algorithm to Improve
Fair enough, the algorithm isn't set in stone, making it better is my job. After studying closely how the brands are structured relative to each other, I witness how the partnership suggestions capture both things we want (having close values) and things we do not want (having close products), under the same similarity umbrella. Could we have the former without the latter?
Removing Bias: Developing a Competitor Detector
When trying to remove a certain bias in a learning algorithm, one might be tempted to erase the indicators leading to the bias, arguing that "if the machine doesn't know about products, it can't match by product" but Reality does not work that way. It would be like saying "if I cook blindfolded, I won't know what's in my salad". Like there are other tells than sight to identify ingredients, I will probably not be able to remove everything that points to brand products without removing a lot of other critically important information in the process.
The trick is to turn the problem on its head, to benefit me. As I happen to be quite good at finding which brands are in competition, I will make a predictor specific to that task. It doesn't have to be perfect, but it leverages the indicators that I would otherwise have discarded.
A Combination of Models to Optimize Objectives
My new algorithm becomes: pair the brands using the same method as before, but apply a large penalty to pairs flagged by the competitor detector. Instead of breaking off parts of a model than optimized the wrong objective, I now have two models that optimize two metrics I can combine to get what I actually want.
I mean, hopefully. I expect there will be, again, subtle pitfalls in my results, but we're already much closer to our ideal, and I have no doubt in our ability to create even better matches.