The cosine-similarity calculation strictly reflects the *angle* between vectors. Magnitude doesn't matter. Before attempting a cosine-similarity calculation between 2 vectors, you could unit-normalize one vector, or the other, or both, or neither – and the cosine-similiarity will not change.
So it doesn't matter if your alignment process unit-normalized a bunch of things or not. It doesn't affect the cosine-similarity calculation either way. There's no question of what's 'valid' or not. The unit-normalization you're wondering about doesn't change, so you're ruminating about an irrelevant matter.
Go ahead, try taking the `model_one.wv['dog']` vector – not at all normalized, if I'm following your assumptons correctly. Try supplying it with its original raw magnitude to `model_two.most_similar()`, to see what results you get. Now try unit-normalizing it. Or dividing it by 2. Or multiplying it by 10. In each case, its magnitude will vary - but the list of most-similar vectors (and their calculated similarities) will be the same, because the actual terms of the cosine-similarity calculation formula ensure its result is magnitude-invariant.
(Now, a forced unit-normalization of all vectors might change other coommon calculations. If you have raw vectors A, B, and C of varies magnitudes, some below 1.0 and some above 1.0, and you calculate `mean(A, B, C)`, you'll get one result. If you then take unit-normalized versions of each A_normed, B_normed & C_normed, each with magnitude 1.0, and calculate `mean(A_normed, B_normed, C_normed)`, you'll get a different result. Which is better may depend on your specific vectors & goals. So there *may be* a loss if your alignment steps discard the original ragged magnitudes. But it has no effect on direct vector-to-vector cosine-similarity calculations.)
- Gordon