title: gensim most_similar with positive and negative, how does it work?
body: <p>I was reading <a href="https://stackoverflow.com/a/54581599/7339624">this answer</a> That says about Gensim <code>most_similar</code>:</p>
  <blockquote>
  <p>it performs vector arithmetic: adding the positive vectors,
  subtracting the negative, then from that resulting position, listing
  the known-vectors closest to that angle.</p>
  </blockquote>
  <p>But when I tested it, that is not the case. I trained a Word2Vec with Gensim <code>&quot;text8&quot;</code> dataset and tested these two:</p>
  <pre><code>model.most_similar(positive=['woman', 'king'], negative=['man'])
  
  &gt;&gt;&gt; [('queen', 0.7131118178367615), ('prince', 0.6359186768531799),...]
  </code></pre>
  <hr />
  <pre><code>model.wv.most_similar([model[&quot;king&quot;] + model[&quot;woman&quot;] - model[&quot;man&quot;]])
  
  &gt;&gt;&gt; [('king', 0.84305739402771), ('queen', 0.7326322793960571),...]
  </code></pre>
  <p>They are clearly not the same. even the queen score in the first is <code>0.713</code> and on the second <code>0.732</code> which are not the same.</p>
  <p><strong>So</strong> I ask the question again, How does Gensim <code>most_similar</code> work? why the result of the two above are different?</p>