2017-08-18 2 views
0

J'ai un modèle word2vec pour chaque utilisateur, donc je comprends à quoi ressemblent deux mots sur différents modèles. Existe-t-il un moyen plus efficace de comparer les modèles formés?Optimisation des comparaisons de modèles word2vec

userAvec = Word2Vec.load(userAvec.w2v) 
userBvec = Word2Vec.load(userBvec.w2v) 

#for word in vocab, perform dot product: 

cosine_similarity = np.dot(userAvec['president'], userBvec['president'])/(np.linalg.norm(userAvec['president'])* np.linalg.norm(userBvec['president'])) 

Est-ce la meilleure façon de comparer deux modèles? Existe-t-il un moyen plus efficace de voir comment deux modèles se comparent plutôt que mot par mot? Imaginez 1000 utilisateurs/modèles, chacun avec un nombre similaire de mots dans le vocabulaire.

+0

Cela n'a aucun sens de comparer deux modèles avec une similarité de cosinus directe. – Mehdi

Répondre

0

Une hypothèse erronée est au cœur de votre question.

Si les modèles userAvec et userBvec ont été formés dans des sessions distinctes, sur des données séparées, l'angle calculé entre le userAvec['president'] et userBvec['president'] est, seul, essentiellement dépourvue de sens. Il y a un caractère aléatoire dans l'initialisation de l'algorithme, puis dans la plupart des modes de formation - via des éléments tels que l'échantillonnage négatif, le sous-échantillonnage de mots fréquents et la réorganisation arbitraire des exemples d'apprentissage en raison de la variabilité de l'ordonnancement. Par conséquent, même un entraînement répété avec le même corpus et les mêmes paramètres peut donner des coordonnées différentes pour les mêmes mots.

Seules les distances/directions relatives, parmi les mots qui ont été co-formés dans le même processus itératif, ont une signification.

Il peut donc être intéressant de comparer si les deux listes de top-N mots similaires du modèle, pour un mot particulier, sont similaires. Mais la valeur brute de l'angle, entre les coordonnées d'un même mot dans des modèles alternatifs, n'est pas une mesure significative.