CoolFace
Datasetpublic

dipikakhullar/personalization-reddit-user-histories

personalization-reddit-user-histories Per-user chronological histories of answered questions across all subreddits. Derived from dipikakhullar/personalization-reddit: every (query, preferred_answer) pair a user authored as OP, grouped by user and sorted by time, slimmed to the four fields needed to model a user's timeline. Each record is one user. Users with a single interaction are dropped (a timeline needs more than one point). Selection: seen-the-top… See the full description on the dataset page: https://huggingface.co/datasets/dipikakhullar/personalization-reddit-user-histories.

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes75downloads
Dataset Card

personalization-reddit-user-histories

Per-user chronological histories of answered questions across all subreddits. Derived from dipikakhullar/personalization-reddit: every (query, preferred_answer) pair a user authored as OP, grouped by user and sorted by time, slimmed to the four fields needed to model a user's timeline.

Each record is one user. Users with a single interaction are dropped (a timeline needs more than one point).

Selection: seen-the-top, genuine-disagreement pairs

An OP often thanked more than one answer to the same post. We keep only the query-answer pairs where the OP had plausibly seen the top community answer before endorsing a different preferred answer. Concretely, a pair is kept only when all three hold:

  • preferred_answer was created after the top community answer existed,
  • the top community answer existed before the OP posted their thanks-reply,
  • preferred_answer differs (by text) from top_answer.

A post with no qualifying pair contributes no interactions. As a result every interaction here has a non-null top_answer that differs from preferred_answer — i.e. the timeline is entirely cases where the OP preferred a non-top answer they could already compare against the community's top answer.

Load

python
from datasets import load_dataset
ds = load_dataset("dipikakhullar/personalization-reddit-user-histories", split="train")

Record schema

fieldtypedescription
user_idstranonymized OP id (HMAC; joins with the other two datasets)
n_interactionsintnumber of interactions in this timeline (top-level for sorting)
active_subredditslist[str]the set of subreddits the user appears in, most-active first
author_metadataobjactivity + flair summary; see below
interactionslist[obj]the timeline, ascending by timestamp

author_metadata:

fieldtypedescription
n_interactionsintnumber of interactions in this timeline
n_subredditsintdistinct subreddits the user appears in
top_subredditstrsubreddit the user is most active in
subreddit_activitydict[str,int]per-subreddit interaction counts, most-active first
first_seenstrearliest interaction timestamp, ISO 8601 UTC
last_seenstrlatest interaction timestamp, ISO 8601 UTC
active_span_daysintdays between first and last interaction
interactions_per_30dfloatcadence within this dataset (n / span × 30)
flair_by_subredditdict[str,str]most-recent non-null OP flair per subreddit (often empty)

Each interactions[i] object:

fieldtypedescription
timestampstrpost creation, ISO 8601 UTC
subredditstrcommunity the question was asked in
querystrthe question (post title + selftext)
preferred_answerstrthe comment the OP thanked, created after top_answer and before their thanks-reply
top_answerstrhighest-scoring non-OP comment on the post (always present and different from preferred_answer; see Selection)

A note on "activity" metadata

This dataset only contains posts where the OP later thanked an answer, so the author_metadata activity stats describe the user's cadence within this dataset, not their full Reddit history. Reddit's dumps carry no account-level profile fields (karma / account age); the only profile signal on the records is flair, which is per-subreddit and frequently null.

Provenance

Same OP-thanks-reply heuristic and HMAC anonymization as dipikakhullar/personalization-reddit; see that dataset card for details.