conf-theme-clustering
Conference Theme Clustering
The job is to turn a few hundred event records into a map a person can actually reason over: a handful of coarse themes, each openable into sub-clusters, with the genuinely odd talks set aside in an outlier bucket rather than forced into a theme, and with each talk allowed to belong to more than one theme because real talks do. The map is the substrate everything downstream stands on — the elicitor grounds its questions in these themes, and the scheduler uses theme coverage to reward breadth.
The method that holds up is hybrid, not pure-LLM-per-item and not the conference's own track labels. Embeddings do the grouping because that step must be cheap and stable across runs; an LLM does only the labeling because that is the step that needs to read like a human wrote it. Running an LLM to decide every talk's cluster is costly and varies run to run; using the conference's published tracks throws away the cross-track structure that is often the most interesting thing in the program.
Four findings shape the design, and each is a guardrail later: embeddings group / LLM labels; keep the outliers (density clustering hands you an outlier set — that is a feature); cluster coarse, then fine (6–8 abstract themes separate far more cleanly than 20 fine-grained ones); and soft multi-membership (a single hard cluster mis-represents a talk like "evaluating agentic RAG" that legitimately lives in evaluation and agents and retrieval).