Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Skip-gram

      Le modèle Skip-gram (SG) est une approche de référence conçue pour créer des embeddings de mots dans le domaine du traitement automatique du langage naturel (NLP). Il a également été utilisé dans des algorithmes d'embedding de graph tels que Node2Vec et Struc2Vec pour générer des embeddings de nodes.

      Contexte

      L'origine du modèle Skip-gram peut être retracée jusqu'à l'algorithme Word2Vec. Word2Vec attribue aux mots un espace vectoriel, où les mots sémantiquement similaires sont représentés par des vecteurs proches les uns des autres. Google, avec T. Mikolov et al., a introduit Word2Vec en 2013.

      Dans le domaine de l'embedding de graph, la création de DeepWalk en 2014 a marqué l'application du modèle Skip-gram pour générer des représentations vectorielles de nodes au sein de graphs. Le concept principal est de traiter les nodes comme des "mots", les séquences de nodes générées par des marches aléatoires comme des "phrases" et "corpus".

      Les méthodes d'embedding de graph suivantes, comme Node2Vec et Struc2Vec, ont amélioré l'approche DeepWalk tout en exploitant toujours le cadre du Skip-gram.

      Nous illustrerons le modèle Skip-gram en utilisant le contexte de son application originale dans le traitement automatique du langage naturel.

      Vue d’ensemble du Modèle

      Le principe fondamental sous-jacent au Skip-gram est de prédire un ensemble de mots de contexte pour un mot cible donné. Comme illustré dans le schéma ci-dessous, le mot d'entrée, noté w(t), est introduit dans le modèle ; celui-ci génère ensuite quatre mots de contexte liés à w(t): w(t-2), w(t-1), w(t+1) et w(t+2). Les symboles +/- désignent ici le contexte précédant ou suivant le mot cible. Le nombre de mots de contexte produits peut être ajusté si nécessaire.

      Cependant, il est important de reconnaître que l'objectif ultime du modèle Skip-gram n'est pas la prédiction. Au contraire, sa véritable tâche est de dériver la matrice de poids trouvée dans la relation de mappage (indiquée comme PROJECTION dans le schéma), qui représente efficacement les représentations vectorisées des mots.

      Corpus

      Un corpus est une collection de phrases ou de textes utilisés par un modèle pour apprendre les relations sémantiques entre les mots.

      Considérons un vocabulaire contenant 10 mots distincts tirés d'un corpus : graph, is, a, good, way, to, visualize, data, very, at.

      Ces mots peuvent être construits en phrases telles que :

      Graph is a good way to visualize data.

      Échantillonnage à Fenêtre Glissante

      Le modèle Skip-gram utilise la technique d'échantillonnage à fenêtre glissante pour générer des échantillons d'apprentissage. Cette méthode utilise une "fenêtre" qui se déplace séquentiellement à travers chaque mot de la phrase. Le mot cible est combiné avec chaque mot de contexte avant et après lui, dans une certaine plage window_size.

      Voici une illustration du processus d'échantillonnage lorsque window_size=1.

      Il est important de noter que lorsque window_size>1, tous les mots de contexte tombant à l'intérieur de la fenêtre spécifiée sont traités également, indépendamment de leur distance par rapport au mot cible.

      Encodage One-hot

      Étant donné que les mots ne sont pas directement interprétables par les modèles, ils doivent être convertis en représentations compréhensibles par la machine.

      Une méthode courante pour encoder les mots est l'encodage one-hot. Dans cette approche, chaque mot est représenté sous forme d'un vecteur binaire unique où un seul élément est "actif" (1) tandis que tous les autres sont "inactifs" (0). La position du 1 dans le vecteur correspond à l'index du mot dans le vocabulaire.

      Voici comment l'encodage one-hot est appliqué à notre vocabulaire:

      Mot Vecteur Encodé One-hot
      graph 1000000000
      is 0100000000
      a 0010000000
      good 0001000000
      way 0000100000
      to 0000010000
      visualize 0000001000
      data 0000000100
      very 0000000010
      at 0000000001

      Architecture du Skip-gram

      L'architecture du modèle Skip-gram est illustrée ci-dessus, où :

      • Le vecteur d'entrée xV×1 est l'encodage one-hot du mot cible, et V est le nombre de mots dans le vocabulaire.
      • WV×N est la matrice de poids entre l'entrée et le caché, et N est la dimension des embeddings de mots.
      • hN×1 est le vecteur du layer caché.
      • WN×V est la matrice de poids entre le caché et la sortie. W et W sont différents, W n'est pas la transposition de W.
      • uV×1 est le vecteur avant d'appliquer la fonction d'activation Softmax.
      • Les vecteurs de sortie yc (c=12...C) sont également appelés panneaux, C panneaux correspondant à C mots de contexte du mot cible.

      Softmax: La fonction Softmax joue le rôle de fonction d'activation, servant à normaliser un vecteur numérique en un vecteur de distribution de probabilité. Dans ce vecteur transformé, la somme de toutes les probabilités est égale à 1. La formule de la fonction Softmax est la suivante :

      Propagation vers l'Avant

      Dans notre exemple, V=10, et fixe N=2. Commençons par initialiser aléatoirement les matrices de poids W et W comme indiqué ci-dessous. Nous utiliserons ensuite l'échantillon (is, graph), (is, a) pour la démonstration.

      Layer d'Entrée → Layer Caché

      Obtenir le vecteur du layer caché h en :

      Étant donné que x est un vecteur encodé one-hot avec seulement xk=1, h correspond à la k-ième ligne de la matrice W. Cette opération est essentiellement un simple procédé de recherche :

      vwI est le vecteur d'entrée du mot cible.

      En fait, chaque ligne de la matrice W, notée vw, est considéré comme l'embedding final de chaque mot dans le vocabulaire.

      Layer Caché → Layer de Sortie

      Obtenir le vecteur u en :

      La j-ième composante du vecteur u est égale au produit scalaire du vecteur h et la transposition du vecteur colonne j-ième de la matrice W :

      vwj est le vecteur de sortie du j-ième mot dans le vocabulaire.

      Dans la conception du modèle Skip-gram, chaque mot au sein du vocabulaire a deux représentations distinctes : le vecteur d'entrée vw et le vecteur de sortie vw. Le vecteur d'entrée sert de représentation lorsque le mot est utilisé comme cible, tandis que le vecteur de sortie représente le mot lorsqu'il agit comme contexte.

      Durant le calcul, uj est essentiellement le produit scalaire du vecteur d'entrée du mot cible vwI et du vecteur de sortie du j-ième mot vwj. Le modèle Skip-gram est également conçu sur le principe qu'une plus grande similarité entre deux vecteurs donne un produit scalaire plus grand de ces vecteurs.

      De plus, il est important de souligner que seuls les vecteurs d'entrée sont finalement utilisés comme embeddings de mots. Cette séparation entre les vecteurs d'entrée et de sortie simplifie le processus de calcul, améliorant à la fois l'efficacité et la précision dans l'entraînement et l'inférence du modèle.

      Obtenir chaque panneau de sortie yc en :

      yc,j est la j-ième composante de yc, représentant la probabilité du j-ième mot dans le vocabulaire d'être prédit tout en considérant le mot cible donné. Apparemment, la somme de toutes les probabilités est 1.

      Les C mots avec les probabilités les plus élevées sont considérés comme les mots de contexte prédits. Dans notre exemple, C=2 et les mots de contexte prédits sont good et visualize.

      Rétropropagation

      Pour ajuster les poids dans W et W, SGD est utilisé pour rétropropager les erreurs.

      Fonction de Coût

      Nous souhaitons maximiser les probabilités des mots de contexte C, c'est-à-dire maximiser le produit de ces probabilités :

      jc* est l'index du c-ième mot de contexte de sortie attendu.

      Puisque la minimisation est souvent considérée comme plus simple et pratique que la maximisation, nous effectuons quelques transformations sur l'objectif ci-dessus :

      Donc, la fonction de coût E du Skip-gram est exprimée comme suit :

      Prenez la dérivée partielle de E par rapport à uj :

      Pour simplifier la notation à l'avenir, définissez le suivant :

      | One-hot encoding |

      tc est le vecteur d'encodage one-hot du c-ième mot de contexte de sortie attendu. Dans notre exemple, t1 et t2 sont les vecteurs encodés one-hot des mots graph et a, ainsi e1 et e2 sont calculés comme suit :

      Par conséquent, Euj peut être écrit comme suit :

      Dans notre exemple, il est calculé comme suit :

      Layer de Sortie → Layer Caché

      Les ajustements sont effectués pour tous les poids dans la matrice W, ce qui signifie que tous les vecteurs de sortie des mots sont mis à jour.

      Calculez la dérivée partielle de E par rapport à wij :

      Ajustez wij selon le taux d'apprentissage η :

      Fixez η=0.4. Par exemple, w14=0.86 et w24=0.67 sont mis à jour en :

      w14 = w14 - η ( e1,4 + e2,4 ) h1 = 0.86 - 0.4 × 0.314 × 0.65 = 0.78
      w24 = w24 - η ( e1,4 + e2,4 ) h2 = 0.67 - 0.4 × 0.314 × 0.87 = 0.56

      Layer Caché → Layer d’Entrée

      Les ajustements sont effectués uniquement aux poids dans la matrice W qui correspondent au vecteur d'entrée du mot cible.

      Le vecteur h est obtenu en ne recherchant que la k-ième ligne de la matrice W (étant donné que xk=1):

      Calculez la dérivée partielle de E par rapport à wki:

      Ajustez wki selon le taux d'apprentissage η:

      Dans notre exemple, k=2, donc, w21=0.65 et w22=0.87 sont mis à jour:

      E w21 = ( e1,1 + e2,1 ) w11 + ( e1,2 + e2,2 ) w12 + ... + ( e1,10 + e2,10 ) w1,10 = 0.283
      w21 = w21 - η E w21 = 0.65 - 0.4 × 0.283 = 0.54

      E w22 = ( e1,1 + e2,1 ) w21 + ( e1,2 + e2,2 ) w22 + ... + ( e1,10 + e2,10 ) w2,10 = 0.081
      w22 = w22 - η E w22 = 0.87 - 0.4 × 0.081 = 0.84

      Optimisation

      Nous avons exploré les principes fondamentaux du modèle Skip-gram. Néanmoins, incorporer des optimisations est impératif pour garantir que la complexité computationnelle du modèle demeure viable et pragmatique pour les applications du monde réel. Cliquez ici pour continuer à lire.

      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写