3 ms·
Very interesting! Coincidentally, I just released my own semantic search engine personal project for Steam games in December. It’s interesting to compare notes
by netruk44 3y ago
Very interesting! Coincidentally, I just released my own semantic search engine personal project for Steam games in December.
It’s interesting to compare notes and implementation details. I have many of the same notes and faced very similar challenges in my own work haha.
The most interesting challenge I found was touched on in this post. Semantic searches presented with the typical text box input generally mislead users into treating the search like a Google search.
Searches like “beautiful video game” and “sci-fi thriller” technically work, but they don’t perform as well as just describing a beautiful video game or describing a plot overview of a sci-fi thriller.
Semantic search kind of requires a different kind of search query that many users don’t quite understand yet.
Maybe there’s an opportunity for an intermediary model to “translate” queries, like how recent image generation models take your image prompt and generate a text prompt that’s used for the image generation instead.
- Layvier 3y agoThis is a problem we're hitting as well. Hyde (Hypothetical Document Embeddings) is a zero-shot approach to it, where from the query you generate documents that would have a very small distance to the actual documents you're looking for. For question answering this would mean generating hypothetical answers. In some cases though, it can yield better results to generate hypothetical queries for each documents, question answering actually being one of them. That requires a lot of pre-processing though, which is not always possible.
- kovezd 3y agoBy definition, semantic search works best by similarity. Thus, the interface you are looking for, is one that facilitates selecting one or multiple objects (i.e. video games).
- netruk44 3y agoYes, I agree. This is something I implemented in my project UI (a “more like this game” button, and the ability to specify a Steam appid for using as the query). It works if there actually is a game out there you want similar games to, but the text input is useful for finding something when you don’t have an example offhand.
- sakd 3y agoSentence Transformers documentation describes this problem as “asymmetric search”. Some of their models are fine tuned to better handle short queries matched to longer documents. (https://www.sbert.net/examples/applications/semantic-search/README.html https://www.sbert.net/examples/applications/semantic-search/...) Alternatively, you could mean pool (average) the document embeddings for the most popular click results for a given query and use that as the query embedding.
- waxpancake 3y agoA semantic search engine for Steam games sounds like my jam. You should put a link to it in your HN profile!
- netruk44 3y agoI don't like to put current projects on my profile because I jump to new ones fairly regularly, it would get out of date quickly. I'll go and put a link to my personal site on there, though. You can see the project here: https://azstatic.danieltperry.me/steamvibes/build https://azstatic.danieltperry.me/steamvibes/build I’m not 100% satisfied with the performance of the search, but it is what it is. I wanted to get what I had out instead of perfecting it all, since there's a ton of different things I can do that all have ambiguous amounts of impact to the results. I might switch to using a different embedding model in the future since the current one I'm using seems to be fairly dated by this point.