Private memory Method
Experiments
Not a run · method

How the memory works

Both memories start empty for every request, read the user's last 20 events in order, and are then asked one question: given this user's long-term profile, which way should their taste be nudged right now?

8,192Private numbers per user, grid memory
4,128Private numbers per user, network memory
20Recent events written per request

1 · What is stored

FWPRec: two grids of numbers A like writes to one grid, a dislike to the other like dislike Likes, 64 × 64 Dislikes, 64 × 64 8,192 numbers per user 32,768 bytes · update: one delta-rule correction Proposed: one small network Like or dislike becomes part of the input each event: one gradient step Address 64 + sign = 65 Hidden 32, tanh Output 64 W1 W2 shared start + private changes starts at zero 4,128 numbers per user 16,512 bytes, about half · shared weights not counted

The network's private numbers are W1's changes (32 × 65) plus W2 (64 × 32). In the code it is UnifiedAssociativeMemory.

2 · One request

write read query score Last 20 events likes and dislikes Private memory grids or network Query q u₀ + likes − dislikes Readout two variants Ranked candidates same list for every model Long-term profile u₀ average of liked items older than the last 20 address base Normalized: (q ÷ length of q) · item ÷ T Additive: q · item ÷ T T is the temperature, one global score scale

Highlighted boxes differ between models. Everything else is shared.

3 · Building and updating

Grid

Start empty, correct the error

Both grids start at zero. For each event, a small trained writer turns it into a key, a value and a strength. The grid predicts the value from the key, then adds a correction for the miss, scaled by the strength. Older content fades by a decay factor.

Network

Start from a learned guess, take one step

W1 starts from values learned in training; W2 starts at zero, so an empty memory reads zero. For each event the network takes one gradient step to predict the value from the key plus a like or dislike sign. Its private changes fade the same way.

4 · The fundamental difference

Grid

A linear map: similar items always get proportionally similar answers. With no hidden layer, the network code reduces exactly to the grid.

Network

A curved map (tanh), so it can store conditional patterns. One memory serves likes and dislikes, using half the storage.

Cost

A grid step moves its answer a known fraction toward the target. A network step's effect depends on its current weights, so it can overshoot; steps are shrunk when the network is sensitive.