Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Besoin d'améliorer votre visibilité?

Votre site internet ne décolle pas, ou vous souhaitez obtenir des conseils d'optimisation, notre expert vous répond gratuitement du lundi au samedi et de 9h à 19h:

Envoyer un message

La liste des tâches de référencement ahurissantes qui peuvent être automatisées continue de s’allonger et je suis impatient de voir plus d’applications d’automatisation partagées dans la communauté.

Impliquez-vous !

Compte tenu de l’accueil positif de ma rubrique d’introduction pratique à Python et de l’importance croissante des compétences en apprentissage automatique, j’ai décidé d’écrire cet article sur l’apprentissage automatique, que j’ai essayé de rendre très facile à suivre.

J’ai codé un bloc-notes Google Colab simple à suivre que vous pouvez utiliser pour produire un ensemble de données d’entraînement personnalisé. Cet ensemble de données nous aidera à construire un modèle prédictif de CTR.

Cependant, au lieu d’utiliser notre modèle pour prédire le CTR, nous l’utiliserons pour savoir si l’ajout de mots-clés aux balises de titre prédit le succès.

J’envisage de réussir si nos pages obtiennent plus de clics de recherche organiques.

Les données d’entraînement proviendront de la console de recherche Google et les balises de titre (et les méta descriptions) du grattage des pages.

Voici notre plan technique pour générer l’ensemble de données d’entraînement :

Publicité

Continuer la lecture ci-dessous

  1. Extrait: Notre code se connectera à Google Search Console et extraira nos données d’entraînement initiales.
  2. Transformer: Ensuite, nous allons récupérer les titres des pages et les méta descriptions et calculer si les requêtes sont dans les titres.
  3. Charger: Enfin, nous allons exporter notre ensemble de données avec toutes les fonctionnalités et l’importer dans le système ML.

Dans la plupart des projets d’apprentissage automatique, vous passerez la plupart de votre temps à simplement rassembler l’ensemble de données d’entraînement.

Le travail réel d’apprentissage automatique demande beaucoup moins d’efforts, mais nécessite une compréhension claire des principes fondamentaux.

Afin de garder la partie apprentissage automatique très simple, nous prendrons nos données et les connecterons à BigML, un ensemble d’outils d’apprentissage automatique « faites-le pour vous ».

C’est ce que j’ai appris lorsque j’ai terminé ce didacticiel en utilisant les données d’un de mes clients (les vôtres peuvent être différentes).

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Après la position du mot-clé et les impressions de recherche, la présence de la requête dans le titre joue un rôle prédictif lorsque l’on essaie d’augmenter les clics de recherche organique.

Publicité

Continuer la lecture ci-dessous

Voyons comment j’ai effectué cette analyse à l’aide de l’apprentissage automatique.

Extraire, transformer et charger

Un processus très courant dans le pipeline d’apprentissage automatique s’appelle extraire, transformer, charger.

Traditionnellement, c’était l’idée de déplacer des données d’une base de données à une autre, mais en apprentissage automatique, vous avez rarement les données d’entraînement source dans le format attendu par les modèles.

De nombreuses tâches liées à l’apprentissage automatique sont automatisées, mais je m’attends à ce que l’expertise du domaine sur le type de données permettant de bonnes prédictions reste une compétence précieuse.

En tant que référenceurs, apprendre à créer des ensembles de données de formation personnalisés est probablement la première chose dont vous avez besoin pour investir du temps dans l’apprentissage et la maîtrise.

Les sources de données publiques et génériques ne sont pas aussi bonnes que celles que vous pouvez créer et gérer vous-même.

Exécuter le bloc-notes Colab

Tout d’abord, faites une copie du bloc-notes et créez une feuille de calcul vide que nous utiliserons pour remplir l’ensemble de données d’entraînement.

Vous devez fournir trois éléments :

  • Le nom de la feuille de calcul.
  • L’URL du site Web dans la Search Console.
  • Un fichier d’autorisation nommé id_client.json.

Permettez-moi de décrire les étapes que vous devez suivre pour produire le id_client.json déposer.

Tout d’abord, il existe une configuration pour télécharger un fichier client_id.json que notre code Python peut utiliser pour se connecter en toute sécurité à la console de recherche Google.

Tout d’abord, assurez-vous d’exécuter la cellule avec le formulaire contenant les valeurs d’entrée dans le bloc-notes.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Le code suivant dans le bloc-notes vous invitera à télécharger le fichier client_id.json à partir de votre ordinateur.

Publicité

Continuer la lecture ci-dessous

#Next, we need to upload the file

from google.colab import files

files.upload()

Vous pouvez cliquer sur Exécution > Exécuter après dans la ligne après avoir téléchargé le fichier client_id.json (n’oubliez pas d’exécuter le formulaire en haut en premier, afin que les valeurs d’entrée soient capturées).

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Vous serez invité à autoriser l’accès à la Search Console.

Veuillez copier et coller le code d’autorisation dans le bloc-notes.

Il y aura une deuxième invite, elle nous donnera accès à la feuille de calcul vierge.

Publicité

Continuer la lecture ci-dessous

Après avoir exécuté toutes les cellules, vous devriez vous retrouver avec un ensemble de données d’entraînement personnalisé dans la feuille de calcul vierge comme celle-ci.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Prenons notre ensemble de données d’entraînement sur BigML et voyons ce que nous allons apprendre.

Nous passerons en revue une partie du code du bloc-notes après la partie BigML.

Entraîner le modèle prédictif

BigML rend la création de modèles prédictifs très simple. Vous devez passer par trois phases :

Publicité

Continuer la lecture ci-dessous

  • Importez le fichier de données source (notre feuille Google.)
  • Créez un ensemble de données qui fonctionnera pour l’apprentissage automatique. Cela inclut la suppression de certaines colonnes et la sélection de la colonne d’objectif que nous essaierons de prédire.
  • Sélectionnez un modèle prédictif pour vous entraîner (nous utiliserons un réseau neuronal profond).

Essayons d’abord une session d’entraînement simple et naïve en utilisant toutes les colonnes de notre ensemble de données.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Ici, nous importons la feuille Google que nous avons produite avec le bloc-notes.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Ensuite, nous créons une source de données et sélectionnons le CTR comme cible.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Remarquez les points d’exclamation. Ils mettent en évidence les colonnes qui ne sont pas utiles pour la prédiction.

Nous sélectionnons Deepnet comme modèle à construire et voyons quelles fonctionnalités sont les plus importantes.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Une chose particulièrement intéressante est que le CTR affiche la requête, la page et la position comme les caractéristiques les plus importantes.

Publicité

Continuer la lecture ci-dessous

Cela ne nous dit rien que nous ne savions déjà. Il est préférable de supprimer ces colonnes et de réessayer.

Cependant, il existe un autre problème, plus nuancé. Nous incluons le CTR, les clics et les impressions.

Si vous y réfléchissez, le CTR correspond aux clics divisés par les impressions, il est donc logique que le modèle trouve cette connexion simple.

Nous devons également exclure le CTR de l’ensemble d’entraînement.

Fonctionnalités indépendantes ou dépendantes

Nous devons inclure uniquement des fonctionnalités indépendantes respectives à notre métrique d’objectif dans notre ensemble d’entraînement.

Voici pourquoi.

Une façon trop simplifiée de penser à un modèle d’apprentissage automatique consiste à imaginer une fonction de régression linéaire dans Excel/Sheets.

Une introduction pratique à l’apprentissage automatique pour les professionnels du référencement

Les valeurs de nos colonnes sont converties en nombres et le but du processus d’entraînement est d’estimer une fonction qui, étant donné une valeur, peut faire une prédiction précise.

Publicité

Continuer la lecture ci-dessous

Nous essayons de prédire les valeurs Y, étant donné les valeurs X, et un ensemble de valeurs Y, X précédemment connues.

X est une variable indépendante et Y est une variable dépendante. Cela dépend des valeurs de X.

Mélanger négligemment les variables indépendantes et dépendantes (comme nous l’avons fait ci-dessus) conduit à des modèles inutiles.

Nous pouvons corriger cela en modifiant la métrique de l’objectif en clics et en supprimant la colonne CTR de notre ensemble de données.

Les clics sont indépendants des impressions, car vous avez également besoin du CTR, que nous avons supprimé.

Nous avons également supprimé les colonnes de page et de requête car elles ne sont pas informatives.

Augmenter l’ensemble de formation avec de nouvelles fonctionnalités

Souvent, les fonctionnalités auxquelles vous avez accès ne sont pas suffisamment informatives et vous devez en créer de nouvelles.

C’est là que votre expertise du domaine et vos connaissances Python peuvent faire une grande différence.

Un data scientist travaillant sur un modèle prédictif de CTR n’a peut-être pas l’expertise SEO pour savoir que les mots-clés dans les balises de titre peuvent faire la différence.

Publicité

Continuer la lecture ci-dessous

Dans le cahier, nous avons ajouté du code pour créer une nouvelle colonne, query_in_title, qui donne un score de 0 à 100 si le titre inclut la requête recherchée.

Lorsque nous l’avons inclus dans l’ensemble de formation et examiné son importance dans le modèle prédictif (comme le montre l’image ci-dessus), nous avons appris quelque chose de nouveau et de précieux.

Nous pourrions suivre un processus similaire et vérifier l’impact des requêtes dans la méta description, ou le sentiment émotionnel dans le titre et la méta description, etc.

Je trouve que ce type d’exercice est un avantage sous-estimé de la formation de modèles d’apprentissage automatique.

Les machines sont vraiment douées pour trouver des modèles invisibles dans les données tant que vous avez l’expertise du domaine pour poser les bonnes questions.

Passons en revue le code que j’ai utilisé pour générer cette nouvelle colonne.

Ajout de nouvelles fonctionnalités informatives

Vérifier si une requête apparaît dans un titre semble simple, mais c’est vraiment nuancé.

Il est possible que la requête ne soit que partiellement incluse.

Publicité

Continuer la lecture ci-dessous

Nous pouvons effectuer une correspondance partielle en effectuant une recherche floue. Nous le faisons en Python en utilisant la bibliothèque floue.

Voici le code pour cela.

!pip install fuzzywuzzy[speedup]

from fuzzywuzzy import fuzz

#remove empty rows from the data frame

df = df.dropna()
df["query_in_title"] = df.apply(lambda row: fuzz.partial_ratio(row["query"], row["title"]), axis=1)

df[["page", "query", "country", "device", "clicks", "impressions", "position", "query_in_title" ]].to_excel("client.xlsx", index=False)

from google import files

files.download("client.xlsx")

Le titre et les méta descriptions ne sont pas inclus dans l’ensemble de données de la console de recherche Google. Nous les avons ajoutés à l’aide de cet extrait de code.

from requests_html import HTMLSession

def get_title_meta_description(page):

  session = HTMLSession()

  try:

    r = session.get(page)

    if r.status_code == 200:

      title = r.html.xpath('//title/text()')

      meta_description = r.html.xpath("//meta[@name="description"]/@content")

      #Inner utility function

      def get_first(result):

        if len(result) == 0:

          return None

        else:

          return result[0]

      return {"title": get_first(title), "meta_description": get_first(meta_description)}

    else:

      print(f"Failed to fetch page: {page} with status code {r.status_code}")

  except:

    print(f"Failed to fetch page: {page}")

    return None

Ensuite, nous pouvons l’exécuter sur toutes les URL de la Search Console.

# let's get all of them

titles_and_meta_descriptions=dict()
import time

for page in pages: 

  print(f"Fetching page: {page}")

  titles_and_meta_descriptions[page] = get_title_meta_description(page)

  #add delay between requests

  time.sleep(1)

Nous avons du code dans le bloc-notes qui le convertit en un bloc de données. Ensuite, nous pouvons fusionner deux blocs de données pour créer notre ensemble d’apprentissage initial.

merged_df=pd.merge(df, new_df, how="left", on="page")

Assurez-vous de vérifier le code que j’ai utilisé pour remplir la feuille Google. J’ai trouvé une bibliothèque qui peut synchroniser un bloc de données avec Google Sheets. J’ai soumis un correctif pour simplifier le processus d’authentification dans Google Colab.

# Save DataFrame to worksheet 'Client', create it first if it doesn't exist

spread.df_to_sheet(df, index=False, sheet="Client", start="A1", replace=True)

Ressources pour en savoir plus

Il y a plus de code Python à revoir, mais comme j’ai documenté le bloc-notes Colab, il vaut mieux y lire et jouer avec.

Assurez-vous de vérifier le code qui accède à la console de recherche Google.

Une partie particulièrement excitante pour moi était que la bibliothèque ne prenait pas en charge l’accès à partir de Google Colab.

Publicité

Continuer la lecture ci-dessous

J’ai examiné le code et identifié les modifications de code nécessaires pour prendre en charge cela.

J’ai apporté des modifications, vu qu’elles fonctionnaient et les ai partagées avec le développeur de la bibliothèque.

Il les a acceptés et maintenant ils font partie de la bibliothèque et quiconque l’utilisera bénéficiera de ma petite contribution.

J’ai hâte de voir combien d’autres SEO Python dans la communauté apporteront des contributions open source aux bibliothèques et au code que nous utilisons tous.

L’apprentissage automatique est plus facile à apprendre visuellement.

Voici quelques liens sympas pour l’apprendre sans mathématiques compliquées.

Plus de ressources:

Publicité

Continuer la lecture ci-dessous


Crédits image

Toutes les captures d’écran prises par l’auteur, mai 2020

if( typeof sopp !== "undefined" && sopp === 'yes' ){ fbq('dataProcessingOptions', ['LDU'], 1, 1000); }else{ fbq('dataProcessingOptions', []); }

fbq('init', '1321385257908563');

fbq('track', 'PageView');

fbq('trackSingle', '1321385257908563', 'ViewContent', { content_name: 'machine-learning-practical-introduction-seo-professionals', content_category: 'seo ' });


Article traduis depuis:
Source link