Hi,
We are currently trying to implement Algolia Recommend feature in our website in order to provide cross-selling feature to our customers.
Context :
We have already implemented the insights event which are sent about an index containing ads of our customers. Our marketplace contains ads where the same product can be sold by multiple users and our users often (every 1-2 days) delete and re-create their ads to change the pricing, description, etc… (ObjectID change in this situation)
What we did :
We trained a cross-selling model (Frequently Bought together
) based on our events and we request this model about additional ads to propose to the customer before checkout.
On static data it works pretty well !
However, it seems that the model is trained using only objectID
s contained in the insight events… Meaning that when the objectID
changes (because user archives/recreates the ad) but the product id is the same, the new ad is just ignored by the model (until some new insight events about it arrive).
The worst situation is that, sometimes, user can archive all their active ads and recreate new ones, through file import for example. In this situation, the trained model (on objectIDs
) will be completely lost about this seller and will not propose any more suggestions for a while about this seller.
Potential solution : (Does it exist ?)
We saw that the Related Product
model seems to be based on other object attributes contained in the index (color, brand, etc…) to find some similarity. We are wondering if we can set the Frequently Bought Together
model to use some attribute of the index objects to link them together, for example the product id.
Thus, if two objects (distinct objectID
) have the same attribute product id, then the model can consider that proposing one or another is viable, even if the second objectID
was never received through insight events.
Potential Workaround :
If it is not possible, we are searching for a workaround to our situation.
We think about something (which is clearly not ideal but still…) :
-
Create a new index listing all the products of the platform, the
objectID
being the product id -
When user add products to cart, instead of sending insights events for the ad id, we send insights event for the product id
-
Before checkout, we do the cross selling recommend in two requests instead of one:
3.1 First, we ask cross selling for products which are currently in the cart, using product index.
3.2 Then, we request on ad index using the product ids from step one to filter the results.
In this a logical workflow, are we gonna fail or miss something with this workaround (except the fact that it will be much slower to execute). We are a bit worried if a product have tons of Frequently bought together
other products but only the last one is currently available in ad index.
Thanks in advance for your tips and hints about a way to use Algolia Recommend in this context.
Yours faithfully,
LCDP