With a limited movie-level sample, new combinations are difficult to forecast
Training samples for movie-level regression
300–600example films
Illustrative training size; many genre, cast, director and IP features
VS
Bottom-up viewer × movie observations
400,000+example pairs
Viewer–movie interactions across linked histories
Hundreds of samples + dozens of features → risk of overfitting and unstable extrapolation to new combinations such as a new director and new IP
With few samples, prediction intervals are themselves unstable; even the appropriate interval width is hard to estimate reliably
One or two outliers, such as a blockbuster or major flop, can distort all regression coefficients.
Viewer × movie observations add behavioral detail. Test whether that detail improves forecasts on later movies.
04A · SMALL-N REGRESSION · WHY BOTTOM-UP
05 The change in perspective
A different question: “How many people will watch?” → “Who will watch this movie?”
VIEWER × MOVIE · DESIRE TO WATCH
Movie A
Movie B
Movie C
User 1,842
82%
47%
18%
User 4,410
14%
73%
32%
User 9,077
61%
44%
18%
… User N
…
…
…
No schedule is included yet. This step measures desire for the movie itself.
Σ →
Σ INDIVIDUAL CHOICE MOVIE A · ALL MEMBERS
4.7M EXPECTED AUDIENCE
Total demand is generated by adding individual viewers' choices.
Total attendance is generated from the sum of individual choices rather than predicted as a single number.
05 · MOVIE-LEVEL → INDIVIDUAL-LEVEL · SYNTHETIC EXAMPLE
06 Audience Digital Twin definition
An Audience Digital Twin is a virtual population with each viewer's own “memory”
WHAT
What have they watched recently?
Viewing history and movie ratings
2 recent SF movies · 1 action movie last month
AUDIENCE TWIN
1,842
User 1,842
SF · action 9 visits / year Weekdays 18:00–21:00 Cinema near home IMAX
That memory informs “What will this person choose next?”.
LIKE
Which genres, actors and IP do they like?
Tastes inferred from viewing history
SF · world-building · preferred actors
WHEN
How often do they attend?
Visit frequency and recency; expected frequency, not a fixed interval
9 visits / year · last visit 12 days ago
WHERE / HOW
Which theater, time and format do they prefer?
Theater · region · time · format · companions · price sensitivity
Cinema near home · weekday evenings · IMAX
Each member's memory is read by one shared model to calculate individual choices, rather than a separate AI for every member.
06 · AGENT-BASED AUDIENCE MICROSIMULATION
07 Inputs for individual audience modeling
Link viewing history, audience feedback and movie information to model choices
User History
Which movie they watched
When they watched
Where they watched
Which format they chose
Who they attended with
Preference / Feedback
Ratings
Reviews
Post-viewing satisfaction
Interest · watchlists
Clicks · searches · trailer views
Movie / Market
Genre · cast · director
Synopsis · poster · trailer
Awareness · buzz
Advance bookings
Linked histories connect movie content to viewer preferences; time and theater information then support the choice model.
07 · REQUIRED INPUTS · HISTORY + FEEDBACK + CONTENT
08Feedback Loop
Lightweight feedback after a visit can fill gaps in taste information
Watch a movie
→
“How was it?”
→
Quick rating · brief feedback
→
Small incentive
→
Update the taste model
Avoid requiring long reviews for every movie
Focus on 1–3 questions
Active feedback can target questions with high information value
Account for low-effort responses made only to earn a coupon
Viewing history tells us what they watched; feedback tells us why they liked it.
08 · LIGHTWEIGHT FEEDBACK
09Phase 1 · WANT
Phase 1 reads movie desire from a person's history and adds all viewers' choices to forecast attendance
User History
1,842User 1,842 9 visits / year · SF · action
Past 12 months · 7 movies · last 2 movies were SF
Viewing history changes the probability of choosing the next movie over time.
→
Movie Desire · WANT
Which movie does this person want to watch?
Movie A82%
Movie B47%
Movie C18%
Use taste, content and recent history to calculate desire for each movie. New movies can enter through content alone.
→
Daily Choice Simulation
Each day during the theatrical run: “Watch or skip; which movie?”
D1D2D3D4AD6D7…
After watching, desire for that movie becomes 0; a brief recovery period follows
Desire does not mean watching every day. Simulate multiple paths, accounting for visit frequency and competing movies, to predict when and what they will watch.
→
Population Sum · AGGREGATE
Add the choices of all viewers
4.7MMOVIE A · EXPECTED AUDIENCE
Individual choices generate attendance by movie, date and region.
Start with a simple, testable baseline. Adopt a more complex history model only when it delivers verified improvement. Step-by-step sampling: next slide · Equations: Appendix A13
09 · PHASE 1 · DESIRE → DAILY CHOICE → POPULATION SUM · SYNTHETIC EXAMPLE
09ASampling Process · Step by Step
One person's year is 365 daily draws: compute desire once, then draw one daily choice
STEP 1 · ONCE
Viewer × movie desire table
Calculate and store desire for every eligible movie, independent of dates and schedules
STEP 2 · DAILY
Today's intensity λ
Only movies showing today and not yet watched: desire × release kernel × post-visit recovery
STEP 3 · DAILY
One joint draw
Choose one of {No Movie, A, B, C…}; do not draw separately for each movie
STEP 4 · DAILY
Update state → next day
Watched movie: λ=0; attendance intensity recovers over several days
STEP 5 · REPEAT PATHS
K paths → probabilities → aggregate
Share of paths watching A = Pᵤ(A); aggregate across viewers = attendance
STEP 1 · DESIRE TABLE (USER 1,842)
Movie A82 Day 1 release · SF
Movie B47 Day 1 release · romance
Movie C18 Day 15 release · action
Calculate once. Keep low-desire movies: they may still be chosen with a low probability.
DAY 1 NOW SHOWING: A · B WEEK 1
② Intensity λ for movies available today Desire × release kernel × post-visit recovery
③ One daily roulette draw Each segment's width is its probability. One random value selects today's outcome.
④ Record outcome → update state
Press ▶ to start at DAY 1 → Record in calendar
Path 1 · four-week (28-day) example
FOUR WEEKS ON THIS PATH · ONE CELL PER DAY
No Movie Watch A Watch B Watch C
⑤ Repeat paths (20–50 in practice)
Pᵤ(A within 4 weeks) = paths watching A ÷ all paths — Updates after each completed path
Attendance is calculated by weighting each person's share of paths that watched the movie, rather than counting one sampled choice per person. After a visit, desire becomes 0. Nine visits per year is an expectation, not a quota.
09A · DAILY JOINT DRAW → PATH AVERAGE → POPULATION SUM · ILLUSTRATIVE PATH
10 3 horizons · 1 model · Bayesian update
New evidence updates the same Audience Twin's belief and narrows the forecast interval
SELECT HORIZON
ACCUMULATED EVIDENCE
BAYESIAN UPDATE
Posterior ∝ Prior × Likelihood (new evidence)
The previous forecast remains the prior. Additional evidence from posters, buzz and advance bookings updates that belief. Stronger evidence narrows the posterior.
New evidence updates the same distribution for the same model and population, instead of creating three separate models.
10 · PROPOSED FORECAST UPDATES · SYNTHETIC EXAMPLE
11New Movie Cold Start
Place a new movie's content in the existing movie space to forecast it before anyone has watched
Genre Cast Director IPSynopsisPosterTrailer Pre-release buzz
A new movie's initial forecast is driven by content. Actual audience signals gain weight as release approaches.
11 · MOVIE REPRESENTATION SPACE
11ATemporal Point Process
A person's viewing history is a sequence of events over time. History creates intensity λ, which determines the next movie choice
SF Action Drama λ_A New movie A (SF) λ_B New movie B (romance) ◎ = simulated viewing event
① WHEN / HOW OFTEN · VISIT FREQUENCY
aᵤ + rᵤ(gap) = min(1, gap / recovery daysᵤ)
Annual propensity fᵤ enters as intercept aᵤ. Recovery term r suppresses an immediate return. Ten visits a year is an expectation, not a quota. Attractive releases can shorten the interval.
sᵤₘ measures taste–content fit; g(Hᵤ,m) = Σᵥ Gₘᵥ·zᵤᵥ(t) captures history propagated from recently watched similar movie nodes. zᵤᵥ decays between events and is updated by a GRU on a visit. The effect can reinforce taste or suppress intensity through fatigue.
“When” is the survival function S(t); “what” is the instantaneous share λₘ/Λ. They form one distribution. With daily constant intensity, this becomes S18A's (1−e −L )·λₘ/L.
M0 (baseline) starts with frequency and intervals as the history term in ②, keeping it interpretable without learning. M1 (research model) extends it with graph history state g(Hᵤ,m). Compare both models on held-out data (A12).
One of A / B / C / No Movie, considering both desire and schedule
Actual choice probability
Movie B48%
Movie A23%
No Movie23%
May differ from their most desired movie
PHASE 2
④ Aggregate
Add the choices of all viewers
→ Attendance · revenue · theater / time demand
Σ 10,000 TWINS
Attendance31,420
Revenue units410M units
Site A at 19:00 1,240
All 10,000 Twins · the same population
PHASE 2
⑤ Optimize
Change the schedule and resimulate the same audience
→ Find better programming
+ MOVIE A 19:00
Movie A61% ↑
No Movie12% ↓
Attendance+2,760
Schedule → Response → Outcome → Better Schedule
Return from ⑤ to ② and repeat ↺
Phase 1 builds WANT; Phase 2 repeats CAN → CHOOSE → AGGREGATE for each schedule to OPTIMIZE.
17B · WANT → CAN → CHOOSE → AGGREGATE → OPTIMIZE · SYNTHETIC EXAMPLE
18 Phase 1 to Phase 2
Phase 2 extends the same audience model with scheduling conditions
Same AudienceDifferent ScheduleDifferent Choice
Movie Desire WANT
Movie A82
Movie B47
Movie C18
Estimated in Phase 1 · schedule-independent · reused unchanged
→
1,842User 1,842 Same person · same memory
Realized Choice CHOOSE · THIS EVENING
Movie A24%
Movie B51%
Movie C8%
No Movie17%
←
Schedule Accessibility CAN
Movie A 14:00 · 21:4030
Movie B 19:1090
Movie C 17:00 4DX45
Changes with programming: theater · distance · time · format · price
Same audience + different schedule = different realized demand
Keep Phase 1's WANT and add schedule-specific CAN to recalculate CHOOSE. The audience model is reused.
18 · SAME AUDIENCE · DIFFERENT SCHEDULE · DIFFERENT CHOICE
18A Attendance opportunity model
Preference and attendance share one joint distribution
Desire for each movie Independent of dates and showtimes
→
Accounts for the theatrical run, competing movies and visit intervals
→
TODAY'S JOINT PROBABILITIES
Choose movie m Compete with movies showing now → choose theater / showtime → assign seat → update last visit
No Movie Determined in the same distribution, with no second draw; defer to a future opportunity
L(today) = Σₘ λₘ(today) : total intensity across movies showing today. λₘ is the history-dependent intensity λᵤₘ(d | Hᵤ) in S11A
P(No Movie) = exp(−L) P(movie m) = (1−exp(−L)) × λₘ/L
Attendance and movie choice come from one joint distribution using the same intensities λ, rather than two independently adjusted models or double multiplication of probabilities. Ten visits a year is an expectation, not a fixed quota.
Attractive new releases shorten visit intervals; a weak lineup delays the next visit. The Twin is not forced to choose a movie every week.
18A · JOINT VISIT-CHOICE DISTRIBUTION
18B Movie desire to programming pipeline
Four steps connect movie desire to a better schedule
Viewers choose movie × theater × showtime combinations. Compare all options available to User 1,842 this evening
Same AudienceDifferent ScheduleDifferent Choice
MOVIETHEATER · TIME · FORMATUTILITY (WANT + CAN)
1Movie A Site A · 18:30 · IMAX Preferred theater · time · format 8.7
2Movie A Site B · 21:40 · 2D Distant theater · late time 5.2
3Movie B Site C · 19:10 · 2D Lower desire, but a good time 7.9
4Movie C Site A · 20:00 · 4DX Low desire 3.8
5No Movie No Movie today Defer to a future opportunity (outside option) 6.1
Choice Probability Combine showtimes for the same movie:
Movie A43%
Movie B31%
Movie C5%
No Movie21%
A ranks first because its 18:30 IMAX screening is available. Without it (S17A), B ranks first and No Movie rises. Showtimes change the movie choice itself. Calculation is hierarchical: movie → showtime. Showtime quality feeds back into the movie probability (A13).
Movie choice and showtime choice are connected: a good showtime can attract someone to a less desired movie; without one, they may abandon their first choice.
19 · MOVIE × THEATER × SHOWTIME × NO MOVIE · SYNTHETIC EXAMPLE
20 How regional and time demand emerges
Regional and time demand emerges without allocation rules
EXISTING · TOP-DOWN ALLOCATION
Nationwide 5.0M → Seoul 25% → Site A 4% → Evening 35%
Predefined allocation ratios divide total demand after forecasting.
Audience Twin · BOTTOM-UP
Each viewer directly chooses based on region, theater, distance, time and format preferences.
Regional and time demand emerges from audience choices, rather than predefined allocation rules.
20 · BOTTOM-UP SITE / TIME DEMAND
21Before / After Programming
Adding one screening changes the same person's choices
Same AudienceDifferent ScheduleDifferent Choice
BEFORE
1,842User 1,842 A is the first choice ♥ 82% · prefers weekdays 18:00–21:00
Movie A14:0021:40
Movie B19:00
10:0014:0018:0022:00
Choice
Movie A23%
Movie B48%
No Movie23%
PROGRAMMING CHANGE+ Movie A 19:00
→
Same person · same memory CHANGE SCHEDULE ONLY
AFTER
1,842User 1,842 Same person; only the schedule changes
Movie A14:0019:0021:40
Movie B19:00
10:0014:0018:0022:00
Choice
Movie A61%↑ +38
Movie B22%↓ −26
No Movie12%↓ −11
Programming changes choice probabilities themselves, instead of allocating fixed demand.
When programming changes, the same person may choose a different movie or make a new visit. Phase 2's response model is the choice model itself.
21 · SAME AUDIENCE, DIFFERENT SCHEDULE · SYNTHETIC EXAMPLE
22Schedule A/B Simulation
Apply different schedules to the same 10,000 viewers to see whose choices changed and why attendance increased
Same AudienceDifferent ScheduleDifferent Choice
SELECT SCHEDULE
SCHEDULE FEATURES
Attendance31,420
Revenue units410M units
Audience Movement · vs Schedule A
A new visit = higher total attendance A switch between movies = unchanged total attendance
Synthetic illustration · revenue in example units
22 · HERO · SCHEDULE A/B · WHY ATTENDANCE MOVED
23Programming Optimization
The optimizer repeatedly calls the Digital Twin to search for a better schedule
Same population of 10,000 viewers Same population used in Phase 1 estimation
Cumulative evaluations 10,000 viewer-runs
SYNTHETIC AUDIENCE SCORE 4,820candidate 1/6
10:0014:4019:2024:00
Movie A Movie B Movie C ■ Purple border = screening changed in this step
ILLUSTRATIVE SEARCH TRAJECTORY · SIX CANDIDATES
Schedule → Audience Response → Outcome → Better Schedule. Search feasible changes, retain the best candidate explored, and compare it with the reference schedule.
Can viewing history meaningfully predict a person's choice of a new movie?
H2
Bottom-up Aggregation
Does aggregating individual propensities improve total attendance and ranking versus feature-based forecasts?
H3
Visit frequency and intervals
Can estimated visit frequency and intervals explain the actual distribution of visit timing?
H4
Choice model explanatory power
Can the theater / time / format choice model explain actual site and time demand?
H5
Programming improvement
Does audience simulation improve attendance and revenue KPIs versus current or rule-based programming?
28 · H1 → H2 → H3 → H4 → H5
29 Data requirements
Phase 1 depends most on member-level longitudinal history
User History
anonymous_user_id
movie_id
theater / site
showtime · format
booking timestamp
ticket count
Feedback
rating
review
like / dislike
interest / wishlist
Implicit Intent
search
detail page view
trailer view
booking abandonment
Movie / Market
metadata · synopsis
poster · trailer
awareness / buzz
actual admissions · Cinema share
Aggregate data alone cannot adequately test the core hypotheses. Personal identity is unnecessary, but the same anonymous user's viewing history must remain linked over time. This provides an initial estimate of individual visit frequency and intervals. After that, update movies and schedules. Use declared frequency profiles when linked history is unavailable.
29 · PSEUDONYMOUS LONGITUDINAL DATA
30 Privacy and security principles
Individual behavior can be modeled without identifying the person
Use pseudonymous IDs
Exclude unnecessary direct identifiers
Prioritize training in the cinema chain's environment / VPC
Purpose limitation · minimal retention
Do not use Cinema data to train external models
If needed, isolate content analysis through a multimodal API
Keep preference modeling separate from direct personal identification.
Prediction AI becomes a Digital Twin for operating experiments
WANTCANCHOOSEAGGREGATEOPTIMIZE
People want different movies (WANT). Schedules determine what is accessible (CAN), changing actual choices (CHOOSE). Summing choices gives attendance (AGGREGATE). Testing different schedules on the same audience finds better programming (OPTIMIZE).
Audience profiles explain potential demand. A shared choice simulator connects that demand to feasible programming and repeatable operating experiments.
IE4372026.09 Thank you
A1 Current approach vs Audience Digital Twin
Top-down feature forecasts vs bottom-up Audience Twins
Dimension
Reference · top-down features
Audience Digital Twin · Bottom-up
Forecast unit
Whole movie
Individual members → aggregate
Core inputs
Genre · cast · director · past box office
Member viewing history + movie representation
Regional / time demand
Allocation rules after forecasting
Emerges from individual choices
Programming response
Difficult to explain directly
Extends to a choice model (Phase 2)
New movies
Estimate from similar movies
Content Representation Cold Start
Explainability
Movie-level evidence
Individual evidence + segment composition
APPENDIX A1 · BASELINE VS PROPOSED AUDIENCE MODEL
A2 Three forecast horizons in detail
Available features, output and uncertainty by horizon
Compare candidate encoders for shared audience preferences
Two-Tower
Train separate viewer and movie encoders; use their inner product for propensity.
Sequence Encoder
Encode viewing history as a sequence to capture recency and order.
Collaborative Filtering
A traditional approach using the member–movie interaction matrix.
Hybrid Representation
An ensemble combining these methods with content features.
APPENDIX A3 · PROPOSED LEARNED MODEL CANDIDATES
A4 Movie representation candidates
Content representations for new-movie cold starts
Metadata
Structured features: genre, cast, director, IP and studio.
Text Embedding
Convert synopsis text into language-model embeddings.
Poster
Capture visual tone and genre signals from poster images.
Trailer VLM / Multimodal Fusion
Analyze trailers with a vision–language model and combine the signals.
APPENDIX A4
A5 Choice model candidates
Phase 2 theater, time and format choice model candidates
MNL / Nested Logit
Traditional discrete choice model with high interpretability.
Neural Choice Model
Learn nonlinear utility with a neural network.
Mixed Logit / Latent Segment
Represent audience heterogeneity through latent segments.
Contextual Utility Model
Condition on programming context, including competing movies and time.
APPENDIX A5 · For technical review
A6 Market calibration details
Expanding from members to the market
Post-stratification / Weighting: reweight member age, gender and region to match actual audience composition
Share Model: use Cinema market share by movie type to estimate nationwide attendance
Regional Calibration Factor: adjust for regional differences in Cinema member penetration
Non-member Adjustment: estimate non-member attendance with a separate baseline and add it
Define frequency scope: store whether frequency covers all cinemas or Cinema only. For all-cinema frequency, model competitor attendance as a separate path
APPENDIX A6
A7Historical Backtest Protocol
Leakage prevention
Time-cutoff: exclude information after the forecast date from training and inference
Rolling Origin: repeat validation across historical forecast dates
Embargo Period: leave a buffer between the forecast date and label finalization
Out-of-time Split: split training and validation chronologically
APPENDIX A7
A8 Privacy and security controls
Pseudonymous user-level data handling
Pseudonymization Pipeline: replace identifiers with anonymous IDs inside the cinema chain's environment before transfer
Access Control: restrict access to project staff and maintain audit logs
Retention Policy: delete promptly after the purpose is fulfilled; minimize retention
Purpose Limitation: prohibit use beyond this PoC or for external model training
APPENDIX A8 · PROPOSED DATA-HANDLING CONTROLS
A9 Phase 2 optimizer details
Objective, constraints, starting schedule and local improvement
Objective
Maximize admissions or ticket revenue; include a change penalty when the operating objective requires it
Local search starts from Phase 1-B's demand-based schedule; bounded local improvement
Audience Score uses one joint distribution from the same intensities λ (S18A), not separately multiplied visit and choice probabilities. Report the best schedule explored, and validate on paths excluded from search.
APPENDIX A9 · See the main programming optimization slide
Start with interpretable M0; compare learned graph-history M1
M0 · LIVE DEMONSTRATOR
Static content fit + frequency intercept
Convert taste–content fit and individual frequency intercepts to softplus intensity. Interpretable without learning; used in the live demo.
M1 · RESEARCH MODEL
Content graph + individual history state
Place movies in genre, style and IP clusters. Propagate recent viewing history through a similarity graph. Watching a similar movie may raise or lower intensity through persistent taste, fatigue or budget depletion.
Compare M1, M0 and a learned model without a graph on the same held-out target. Inspect history contributions by removing signals and recalculating.
M1 adds a learned history state; shared movie content supports new releases. Keep the same choice and schedule-comparison contract.
APPENDIX A12 · M0 RULE MODEL → PROPOSED LEARNED M1
One daily joint distribution, without separately multiplying visit and movie choice probabilities. In continuous time: S(t)=exp(−∫Λ), P(next=m, t∈[a,b))=∫S(t)λₘ(t)dt (S11A).
Pᵤ(m∈W) averages simulated paths of the joint distribution over W. A sum of λ is not attendance. wᵤ is the member-to-market calibration weight.
Phase 2 · CAN → CHOOSE (schedule S feeds back into movie choice)
ShowtimeUtility(u, m, j | S) = θ · [distance, time fit, format, price, seat availability]
Accessibility(u, m, S) = logsumexpj ∈ S(m) ShowtimeUtility(u, m, j)
Measures whether movie m has suitable showtimes in the current schedule. Group equivalent showtimes by equivalence key to increase seat capacity without inflating choice probabilities.
RealizedUtility(u, m, S) = BaseMovieDesire(u, m) + β · Accessibility(u, m, S)
Includes outside option U₀. Equivalent expression: λ observed = λᵤₘ · exp(β·Accessibility). Accessibility enters movie-level probability; choice is not a one-way movie-then-showtime process. Nested calculations feed inclusive value back upward.
Potential demand and schedule accessibility A may not be fully identifiable from observations alone. Travel, price and availability define the accessible choice set. Use the same conditions for model and schedule comparisons (A12).
APPENDIX A13 · PROPOSED FORMULATION · S09, S18 AND S19
Q&A Questions and answers
Six points to return to
Planning uses annual, 1–2 month and 2-week forecasts. The same Audience Twin updates as new information arrives.
WANT: people want different movies. Predict individual movie desire from viewing history and taste.
CAN: desire does not guarantee attendance. Theater, time, format and distance affect access.
CHOOSE → AGGREGATE: a new schedule changes the same person's choices. Summing those choices gives attendance.
OPTIMIZE: test several schedules through the Digital Twin to find the best candidate. Validate alongside existing programming.
The live M0 workflow connects movie inputs, synthetic audience demand, feasible schedules and a reproducible comparison.
Q&A HOLDING · A opens appendix · Esc returns
APPENDIX Press 1–9 or 0, or click (A11–A13: click) · Esc closes · Q = Q&A screen