I was obviously mostly interested in books, so I worked on that first. I'd noticed LLMs are capable of pretty solid textual anaylsis these days, so I wondered if you could use that to generate good recommendations. So I sat down with an LLM- ChatGPT, Luna, for the curious- and spent about two hours explaining, in datail, my literary tastes- going into specifics like what sort of plot structure, characters, and humor I like, not just genre/specific titles.
The experiment demonstrated surprisingly strong results (though admittedly with a very small sample size)- the five recommendations I asked for were all ones that I hadn't heard of, as well as books that I would actually read. Further, I provided the LLM with a list of several books I had read and asked it to guess whether I would have liked them and why. The LLM successfully did so. Just proof of concept, but intriguing.
The problem with this, of course, is that most people wouldn't sit down with an LLM for an extended period of time to discuss literature. So I decided to build a small prototype of an app that might be able to do that.
The prototype is very simple- first, there are two types of information it saves- a persistent preference profile for the user, and user conversations. Then I built conversational functions to call an LLM to have conversations with the user to extract preference information.
The interesting thing to me is that this isn't just using an LLM to make recommendations- it's using one to analyze conversations over time, develop a persistent, evolving preference model for a specific user and then use that model to guide an LLM on a search for recommendations.
A few things occurred to me. First, the conversations and user profile DO NOT need to live on a central server- they can be stored locally by the user (or in a cloud of their choice).
Second, it seems like the user data could potentially be minimized and pseudonymized before being sent to the LLM, though I lack the technical expertise to know what is realistic here.
Third, if the LLM is conducting any searches, this would seem to make it possible to provide search services with less information about the user and their preferences (I'm not positive about this, so please do correct me if I'm wrong).
Finally, books are just one of the things you could use this for- it could technically be done for just about anything, at least in theory.
I experimented with this process several times, and received encouraging results.
What I don't know is-
Is this architecture novel? Does it work on things other than books? Am I an outlier in how well I articulate my preferences? Am I wrong about the potential benefits to privacy? Would people use this? If the search results are as qualitatively higher for others as it was for me, I think they probably would, but I just don't know.
The reason I'm posting this is because I am a writer, not a software engineer. I don't really have a strong interest in developing this and could bring very little to the table on the technical side. But it seems like a neat use of the more advanced LLMs we have these days. I don't really know if the idea is novel (not in each part- every bit of the pieces has been done before- but as a whole).
I'm in the process of documenting the prototype and experiments- I'd be curious to hear if I am completely barking up the wrong tree or if this could actually be a cool new way to conduct searches.
I'm not posting this as a business proposition- it's just not my jam. If anyone wants to take the idea and run with it, I'd love to see what you do with it.
Over here, it's more like a reinforcement learning loop, and it just keeps getting better and better. At one point, I really do not have to instruct it anymore. It's pretty good at writing it all by itself now.