For each node, find its heaviest child (largest subtree). The edge to this child is "heavy." All other edges are "light." Why does this help?
A light edge goes to a subtree with at most half the nodes of its parent's subtree. Each time you traverse a light edge upward, the subtree at least doubles in size.
Starting from any node, you can traverse at most light edges before reaching the root. This logarithmic bound is the foundation of HLD's efficiency.