Moyenne de deux vecteurs Word2vec pour obtenir une représentation unifiée pour un seul mot

8

Je travaille sur un algorithme de formation des données pour Word2vec. Puisque nous avons besoin que les mots restent aussi originaux, nous ne les rendons pas en minuscules lors de la phase de prétraitement. Il y a donc des mots avec des variations différentes (par exemple "Terre" et "terre").

La seule façon dont je peux penser est de prendre la moyenne des vecteurs pour "Terre" et "terre" pour créer un seul vecteur pour représenter le mot. (Étant donné que les dimensions du vecteur d'entité sont similaires)

Est-ce une méthode "correcte"? Si ce n'est pas le cas, quelle pourrait être une bonne façon de gérer ce problème?

Remarque: Réduire tous les mots du prétraitement n'est pas une option pour l'instant.

Modifier: les informations indiquant si les cotes des entités sont vraiment linéaires seraient également utiles.

Edit 2: Combiner les deux réponses de patapouf_aiet a yazhidonné les meilleurs résultats. Comment sont-ils combinés? La moyenne pondérée a amélioré les résultats, mais le fait de mettre les fréquences des mots à travers une fonction sigmoïde mise à l'échelle a donné les meilleurs résultats, car l'utilisation des fréquences des mots de manière linéaire leur donne plus d'importance qu'elles n'en ont.

ozgur
la source

Réponses:

1

Le simple fait de les calculer en moyenne peut ne pas être bon, car cela supposerait qu'ils ont le même poids, et ce n'est probablement pas le cas si la version en majuscules et non résumée apparaît avec des fréquences très différentes dans vos données d'entraînement.

Une amélioration progressive consisterait à les faire une moyenne proportionnelle à leur fréquence dans le corpus. Disons que la Terre apparaît 159 fois et que la Terre 1239 fois font quelque chose comme:

v (Terre et terre) = 159 / (159 + 1239) * v (Terre) + 1239 / (159 + 1239) * v (terre).

Les vecteurs sont censés coder la sémantique de façon linéaire, cela devrait donc vous donner une approximation résonnable.

patapouf_ai
la source
1
C'est la solution que nous avons déjà choisie. Je pourrais aussi bien accepter la réponse.
ozgur
0

Les mots "Terre" et "terre" peuvent avoir la même signification, mais selon l'algorithme word2vec, il dérive les informations sémantiques de la position des mots.

Ainsi généralement, "Terre" apparaîtra le plus souvent au début de la phrase en tant que sujet et "Terre" apparaîtra principalement sous la forme d'objet à la fin. Ainsi, les mots adjacents les plus proches peuvent différer, mais dans l'ensemble, les deux phrases peuvent contenir des mots tels que "pollution, climat, eau, pays".

En conclusion, je suppose qu'avec une plus grande taille de fenêtre, il semble conserver les mêmes informations sémantiques avec quelques petits changements où la "Terre" aura des informations sur le sujet et la "terre" aura des informations sur les objets. Ainsi, la moyenne n'affectera pas beaucoup et semble être un cas possible. Mais avec une taille de fenêtre inférieure, il y a une forte probabilité qu'elle puisse avoir des significations différentes.

yazhi
la source
Eh bien, la taille de BoW est 5. Quel nombre considérez-vous comme une taille de fenêtre appropriée pour que la moyenne fonctionne?
ozgur
taille de fenêtre de 5 signifie, au total, il considère 10 mots et une phrase commune en anglais pourrait être écrite en 10 mots. Cela me semble donc très bien.
yazhi