Before you can trust that one idea, you must own every symbol the parent note throws at you. This page builds each one from nothing: plain words → the picture → why the topic needs it, in an order where each brick rests on the last.
Picture a row of boxes on a shelf, numbered left to right. Box t=1 holds the first word, box t=T holds the last.
Why the topic needs it. "Bidirectional" only means anything because there is a direction — a first box and a last box. Without an ordered sequence, "forward" and "backward" would be meaningless. The whole page is built on walking this row of boxes in two opposite ways.
A neural network cannot chew on the letters "Apple". It needs numbers. So each word in the box gets replaced by a short list of numbers called a vector.
Picture each number as a coordinate. Two numbers = a dot on a flat map; three numbers = a dot floating in a room. More than three we can't draw, but the idea is identical: a vector is a point / arrow in a space of n dimensions.
Why the topic needs it. Every arrow in the network is a vector; every "encode Apple + released" is really "move to a new point in this space". You cannot read the worked example without knowing that [⋅,⋅,⋅] is a location, and that its length is what must match up when matrices multiply it.
Recall Why can't we just use the word itself?
Networks multiply and add; they need numbers, not letters. ::: A word is first mapped (embedded) to a numeric vector so arithmetic becomes possible.
Picture a dictionary where the definition of each word is not text but a point on the map from §2. Similar words (king / queen) land near each other.
Why the topic needs it. Step 1 of the worked example is literally "embed the words". The vectors x1,…,x5 the parent lists come out of this table. This foundation feeds directly into everything downstream. (Depth on this is deferred; here we only need "word → fixed vector".)
The network's job is to transform one vector into another. The tool for a linear transform is a matrix.
Picture Wv as stretching, rotating and squishing the arrow v into a new arrow; then +b slides that arrow to a new spot.
Why the topic needs it. Every line of the RNN update is a matrix–vector multiply plus a bias. The parent uses separate matrices for memory (Wh) and for the new word (Wxh) precisely because a matrix is how you turn one meaning-vector into another, and each job needs its own grid of numbers — and its own shape.
After stirring and shifting we get raw numbers that could be huge. We tame them with tanh.
Picture an S-shaped curve lying flat at −1 on the far left, passing through the origin, and flattening at +1 on the far right.
Why THIS tool and not just Wv+b? Two reasons. (1) Bounding: if we only ever multiplied and added, values could explode across many timesteps; tanh caps every hidden number in [−1,1], keeping the memory stable — that is exactly the parent's remark "tanh squashes to [−1,1] to prevent exploding values." (2) Nonlinearity: stacking pure matrices collapses to one matrix (still just a line); tanh bends the space so the network can learn curved patterns.
Recall Why is a nonlinearity needed at all?
Because a chain of linear maps is itself linear — no extra expressive power. ::: tanh bends the transformation so the network can represent complex, non-straight relationships.
Picture a notepad you update after each box: read box t, glance at your last note ht−1, scribble a new note ht that blends old memory with the new word.
Why the topic needs it. The entire bidirectional idea is "keep two separate notepads". Understanding ht as memory that flows in a direction is what lets §7's arrows make sense.
The parent writes little arrows over the letter h. These are not vectors-vs-scalars; they mark which way we walked the shelf.
Picture two friends: one starts at box 1 and shuffles right, another starts at box T and shuffles left. They meet at every box t and each hands over a note.
Why the topic needs it. This is bidirectionality. ht answers "given all words before me, what am I?"; ht answers "given all words after me, what am I?". The whole point of the parent — distinguishing "Apple" the company from "apple" the fruit — needs h1 to know "released iOS" comes next.
Picture gluing two short trains of boxes into one longer train — nothing is added or averaged; both lists survive intact, just side by side.
Why the topic needs it. The parent combines past and future by concatenation, not summation, "to preserve both". Knowing [;] = stacking (so Rd and Rd give R2d) is required to read h1∈R6 in the example (two length-3 notes glued).
Finally we must decide a label for each word (is it an organization? a location?).
Picture a bar chart of raw scores; softmax reshapes the bars so their total height is exactly 1, letting you read each bar as "chance this is the answer".
Why THIS tool? We are classifying — choosing one of several tags. A classification needs a probability per class, and softmax is the standard way to get one from raw scores. That is exactly the parent's line "we're making a classification decision at each timestep." The output [B-ORG:0.85,…] is a softmax result: all four numbers sum to 1.
Each foundation is a prerequisite of the next; the last three (direction arrows, concatenation, softmax) are the parts unique to going bidirectional. These same bricks reappear when you meet LSTM and GRU Cells, the Encoder-Decoder Architecture, the Attention Mechanism, and Transformers — so time spent here pays forward.