Phrase / Sentence similarity is harder and in my experience extrapolating word2vec approaches to doc2vec or phrase2vec doesn’t work especially if you are looking for finer contextual similarity. But leaving that out linguistically this is the best solution I have come across so far. This might interest you, https://bitbucket.org/yunazzang/aiwiththebest_byor
Here is the test that ran with the above implementation
Phrase 1: I am run and hike with these shoes, they are awesome.
Phrase 2: These shoes run large, so buy one size smaller.
Ideally the cosine distance should indicate these sentences are least similar. But thats not the case !