1
$\begingroup$

I am working on a problem where I am given three images of different dishes (A,B,C) and the task is to figure out if figure B or figure C is closest to figure A (in terms of taste). I have a training set with ordered images (A,P,N) where P (positive) is closest to A (anchor) and N (negative). Now I figured that I somehow need to come up with an embedding that is representative of the taste, and then use a metric d(.,.) that meaningfully compares the dishes. Ideally d(embedding(A),embedding(B)) < d(embedding(A),embedding(C)) implies that dish A is closer in taste to dish B than it is to dish C.

Now I did some research and found the so-called TripletLoss, which seems to tackle a very similar problem. A nice blog post by Olivier Moindrot can be found here on the topic, and it includes the figure below.

https://github.com/omoindrot/tensorflow-triplet-loss

The problem is that contrary to the implementations I found online, my dataset is not labelled. I simply have ordered triplets from which I need to extract information for the right embedding. The dishes in my dataset are all unique, and cannot be grouped meaningfully into discrete classes. Yet, I still want to come up with something like a metric that is able to compare the dishes.

My question: Am I going in the right direction? Are there any models that would suit my problem better? My knowledge of ML/NNs is still somewhat limited so any suggestion into the right direction is appreciated!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.