Utilisateur:Emslvrch/Modélisation des Réseaux (M1 SIREN, 2022)/Activité F


Donnée

modifier

On va considérer l'union des rapports orientés entre items décrits dans toutes nos activités C. Chaque phrase <item A> <propriété X> <item B> correspondra à un lien de <item A>vers <item B>, peu importe la propriété qui les lie. On constate qu'il y a deux types de nœuds dans ce réseau:

  • les participants du cours, en tant que sujets des phrases
  • les items de nos récits, en tant qu'objets des phrases

On représente le réseau sous la forme d'une double liste d'adjacence. C'est-à-dire, dans une première section, dite sortante, le document liste pour chaque nœud les nœuds auxquels il se connecte ; dans une deuxième section, dite entrante, le document liste pour chaque nœud les nœuds qui se connectent à lui. Comme dans notre réseau tous les liens vont d'une personne à un item de son récit, la première section aura seulement une liste par personne, et la deuxième section seulement une liste pour chaque item qui apparaît dans l'un des récits.

Voici nos réseaux consolidés en un seul document :

Réseau harmonisé et consolidé, sans propriétés, en forme de double liste d'adjacence

Note: Comme on verra, ce format facilitera notre exécution de l'algorithme. On a vu au long du cours que le choix de format peux rendre plus facile ou difficile certaines opérations.


Voici la liste de mes items :


<https://www.wikidata.org/wiki/Q702662> 0


<https://www.wikidata.org/wiki/Q213105> 0


<https://www.wikidata.org/wiki/Q876624>

Utilisateur:Daniel_Lacasta


<https://www.wikidata.org/wiki/Q850130> 0


<https://www.wikidata.org/wiki/Q927352> 0


<https://www.wikidata.org/wiki/Q79838> 0


<https://www.wikidata.org/wiki/Q6607>

Utilisateur:Agathemornon

Utilisateur:Alice Joie Dauphine

Utilisateur:Alina Viatkina

Utilisateur:Anna_Simonn

Utilisateur:Chloé_Sangiorgio

Utilisateur:Daniel_Lacasta

Utilisateur:Emslvrch

Utilisateur:Ewen_Marguet

Utilisateur:Mathildecomte603

Utilisateur:Solstag

Utilisateur:ValentinBernadou

Utilisateur:Victoria_Kubisa


<https://www.wikidata.org/wiki/Q272460>

Utilisateur:Alexercices

Utilisateur:Emslvrch

Utilisateur:Margaux Tournois

Utilisateur:Ninaloufresnil


<https://www.wikidata.org/wiki/Q2922870> 0

Enrichir la donnée si nécessaire

modifier

Avant de commencer le calcul, vous allez regarder si parmi vos objets il y a au moins trois dont vous partagez avec un collègue. Cela se fait facilement avec le document du réseau consolidé : allez dans la liste sortante qui vous correspond, puis pour chaque objet allez regarder s'il y a d'autres personnes dans la liste entrante que lui correspond. Si vous ne comptez pas trois objets partagées avec d'autres :

  • Trouvez un item dans la liste entrante qui n'est pas dans votre liste mais correspond à un item dans votre liste dans un niveau plus élevé d'abstraction - c'est-à-dire, ils appartiennent au même genre de musique, ou au même pays etc. Vous allez alors travailler comme si ces deux items étaient le même.
  • Répétez jusqu'à ce que vous aurez au moins trois objets que vous partagez avec au moins un collègue.

Emma Le Vourch (moi) est le participant p de cette activité.

Les autres élèves sont les participants q de cette activité.

Nous allons voir les similarités : s(p, q) des différents items présents


ici je vais remplacer :

https://www.wikidata.org/wiki/Q131582 (tiramisu) par <https://www.wikidata.org/wiki/Q876624> (carbonara)

https://www.wikidata.org/wiki/Q21167188 (guitare classique) par <https://www.wikidata.org/wiki/Q6607> (guitare)


Il n'y a pas beaucoup d'activités que je partage avec les autres élèves. Afin d'élargir le champ des possibles je considère que Margaux aime la guitare (à la place de guitare classique) et aime les pâtes carbonara (à la place de tiramisu en considérant qu'ils font tous deux partie de la catégorie cuisine italienne)

q : nom des participants concernés les items concernés nombre de similarités : s(p, q)
Utilisateur:Daniel_Lacasta <https://www.wikidata.org/wiki/Q876624>

<https://www.wikidata.org/wiki/Q6607>

2
Utilisateur:Agathemornon <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Alice Joie Dauphine <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Alina Viatkina <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Anna_Simonn <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Chloé_Sangiorgio <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Ewen_Marguet <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Mathildecomte603 <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Solstag <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:ValentinBernadou <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Victoria_Kubisa <https://www.wikidata.org/wiki/Q6607> 1
Utilisateur:Alexercices <https://www.wikidata.org/wiki/Q272460> 1
Utilisateur:Margaux Tournois <https://www.wikidata.org/wiki/Q272460>

<https://www.wikidata.org/wiki/Q876624> <https://www.wikidata.org/wiki/Q6607>

3
Utilisateur:Ninaloufresnil <https://www.wikidata.org/wiki/Q272460> 1

Algorithme

modifier

On a vu dans le cours que les algorithmes de recommandation, qu'on appelle aussi du « filtrage collaboratif », partent d'une similarité entre personnes établie par leur rapport aux items de récit à recommander, items auxquels on appellera « activités ». Cette similarité est en suite utilisé pour construire un score entre la personne et chaque activité possible de recommander. L'algorithme qu'on va suivre ici réduit à l'essentiel cette démarche pour qu'on puisse l'exécuter manuellement.

Pour un participant p du cours :

  1. Pour chacun des autres participants q, calculer la similarité s(p, q):
    • La similarité s(p, q) est le nombre de voisins communs entre p et q - c'est-à-dire, le nombre de voisins de p qui sont aussi voisins de q.
  2. Pour chaque activité a, calculer le score r(p, a):
    • Pour expédier le travail, on va considérer uniquement les activités liées au participant à plus haute similarité de p, tirant au sort le participant en cas d'égalité.
    • On ne veut pas recommander des activités déjà connues de p, donc pas besoin de calculer le score pour chaque activité a à laquelle le participant p se trouve déjà lié.
    • Le score r(p, a), pour recommander au participant p une activité a, est la somme de la similarité s(p, q) pour chacun des voisins entrants q de a.
  3. Choisir l'activité à recommander:
    1. Exclure les activités déjà liées au participant p.
    2. Trouver les activités avec le plus haut score r(p, a).
      • Si il n'y a qu'une seule activité avec le plus haut score:
        • Recommander cette activité.
      • S'il y a plusieurs activités avec le plus haut score:
        • Parmi ces activités à plus haut score, trouver celles avec le plus haut nombre de voisins entrants.
          • Si il n'y a qu'une seule activité trouvée:
            • Recommander cette activité.
          • S'il y a plusieurs activités trouvées:
            • Recommander une parmi elles, au hasard.


Pour Margaux :

On a exclue les activités qu'elle avait en lien avec moi.

  • <https://www.wikidata.org/wiki/Q2071053>
  • <https://www.wikidata.org/wiki/Q41425>
  • <https://www.wikidata.org/wiki/Q487338>
  • <https://www.wikidata.org/wiki/Q847>
  • <https://www.wikidata.org/wiki/Q917361>
les activités concernés Participants liés dont s(p,q)>0 Similarités s(p,q) r(p, a)
<https://www.wikidata.org/wiki/Q2071053> Utilisateur:Margaux Tournois 3 3
<https://www.wikidata.org/wiki/Q41425> Utilisateur:Margaux TournoisUtilisateur:Capucinechappe 3

+0

3
<https://www.wikidata.org/wiki/Q487338> Utilisateur:Margaux Tournois 3 3
<https://www.wikidata.org/wiki/Q847> Utilisateur:Agathemornon

Utilisateur:Capucinechappey Utilisateur:Chloé_Sangiorgio Utilisateur:Daniel_Lacasta Utilisateur:Hannah roux-brion Utilisateur:Leafournier31 Utilisateur:Margaux Tournois Utilisateur:Sarahhalphen Utilisateur:Shouissa98 Utilisateur:TomBourgeoisDauphine

+1

+0 +1 +2 +0 +1 +3 +0 +0 +0

8
<https://www.wikidata.org/wiki/Q917361> Utilisateur:Margaux Tournois 3 3


Ainsi il semblerait que l'activité à essayer pour moi serait le tennis ! Toutefois je n'apporte qu'un intérêt très limité à ce sport que je trouve assez peu amusant à regarder ou à jouer (excepté sur la wii avec wii sport !!), mais je changerais peut-être d'avis un jour qui sait !