An experiment of adding recommendation engine to your app using pgvector search
5 comments
·January 23, 2025yas_hmaheshwari
tanelpoder
Author here, thank you for the kind words :-)
I haven't yet written a "formal launch post" of the CatBench Postgres/pgvector app that I used for examples in the current article, but all the source code and install instructions are already available here:
rsingel
This will get you very basic recommendations, which is a nice start. But will be quite limited.
But you could, and have been able do this just as easily with compression.
Compress A. Measure the file size.
Compress B. Measure the file size
Compress C. Measure the file size
Compress A + B. Measure the file size. Compare it to (the size of A + the size of B). If A and B are similar the compressed file size will be much smaller than the combined file size of A compressed + B compressed.
Compress A + C. Measure the size. If A and C are similar the compressed file size will be much smaller than the combined file size of A compressed + C compressed.
Compress B + C. Measure the size.
Also see Simon Willison work on using embeddings for similarities: https://simonwillison.net/2023/Oct/23/embeddings/#related-co...
isoprophlex
Nice complexity you got there. Would be a shame if something... quadratic were to happen to it.
jstanley
That won't measure semantic similarity, at least with typical compression algorithms.
Wow! Thank you for sharing this. I am bookmarking this article for future use! ( Truth be told, I did not fully understand everything but hopefully future me would )
Reminds of that article about Postgres for everything: https://github.com/Olshansk/postgres_for_everything