<p>My notes can be summarized in the following points:</p>

<ul>
<li><p>First of all, I don't think passing a list of keywords would be any help to the <code>gensim.models.Word2Vec</code> model. As you said, the reason behind using word2vec is to somehow get a feeling of the surrounding words; How can it do this job with a random list of keywords?</p></li>
<li><p>Second of all, the vocabulary should be the same words in the documents. So, your vocabulary should have <code>very</code> in it.</p></li>
<li><p>The more data you use, the more useful the model becomes. So, 2500 tokens aren't big enough. For example, the first version of word2vec was the <a href="https://arxiv.org/pdf/1310.4546.pdf" rel="nofollow noreferrer">Skipgram model</a> published in 2014/2015 by Google. The vocabulary that Google used was about 692,000 words.</p></li>
<li><p>There are two versions of word2vec that can be used: "Skipgram" and "Continuous Bag of Words (CBOW)". Both depend on the surrounding words. You can check my answer <a href="https://stackoverflow.com/a/57508776/5612363">here</a> for more information on how each one of them works.</p></li>
</ul>
word2vec, using document body or keywords as training corpus
<p>I would like to train a <code>word2vec</code> model using what is an unordered list of keywords and categories for each document. Therefore my vocabulary is quite small around 2.5k tokens.</p>

<p>Would the performance be improved if at the training step, I used actual sentences from the document?</p>

<p>From example:</p>

<pre><code>doc_keywords = ['beach', 'holiday', 'warm']
doc_body = 'Going on a beach holiday it can be very warm'
</code></pre>

<p>If there is a benefit to using the full documents, could someone also explain why this is the case?</p>

<p>Since the model predicts the next word in a document, what would be the benefit to it learning <code>very -&gt; warm</code> as two words which often come together, given that <code>very</code> is not in my vocabulary.</p>