Idea is to assess any model’s ability to re-construct user representations solely based on conversation history. These user representations are LLM-generated “personas”. Separately, we generate objectives each persona can be paired with. The personas are comprised of paragraphs about the person along the following ToM dimensions (derived from the wikipedia definition of ToM):
- beliefs
- desires
- intentions
- emotions
- thoughts
Then a conversation gets simulated and the message history is used to generate predictions along each of those ToM dimensions. Both the new and original paragraphs get embedded and compared via cosine similarity to assess the model’s ability to re-construct the representation from conversation history.
Here’s the GitHub repo.
Steps to reproduce this setup:
- Generate a list of people who have descriptions of themselves in each of the dimensions listed above
- Generate a separate list of objectives those people could theoretically have
- Loop through combinations of the personas + objectives and simulate conversations (# of turns is a param)
- Based on the conversation histories, derive descriptions of the user in each of the ToM dimensions
- Embed both the “original” generated ones and the “new” generated ones, run cosine sim to see how similar the derived ones are to the original ones
So if we were to compare this to the 4 buckets, the core task is predicting (re-constructing) the user representation. The mental state imputation (ToM), representation usage, and representation maintenance are left to the researcher. This is different from what we’ve previously done — it’s making predictions about the user’s (insert ToM dimensions here) as opposed to what they’re going to say next as a proxy for those things.
However, everything surrounding the generation of the user representation can be measured by whether or not they increase our ability to re-construct that original representation. We believe this is interesting and worth iterating on. There are a number of parameters here to drill into and optimize/control for in further iterations.