Kurze antwort, Instagram benutzt AI.
Mir ist nicht bekannt ob IG ein paper oder so rausgebracht hat wie sie es machen (youtube z.B. hat vor ein paar jahren mal eins rausgebracht), aber ich denke das wird ungefähr so laufen:
Jedem bild ist ein feature vector zugewiesen, der enthält informationen über den inhalt des bildes, sowie metadaten (beschreibung, nutzer, location, etc.). IG benutzt dann für die generierung der Startseite eine AI die darauf trainiert wird interaktionen zu maximieren. Das heißt, die AI wird mit denen browsing daten gegen eine Reward funktion trainiert, also um den reward zu maximieren. Der Reward kann aus verschiedenen sachen bestehen, z.b. viewtime (also zeit die du in der app verbringst) oder interaktionen (likes, etc.).
Z.B. Reward := Viewtime in sekunden + 10 für nen like.
Die AI wird dann mit gradient ascent dazu trainiert diesen reward zu maximieren. An dieser stelle kann man noch anmerken das es für den Designer der AI scheiß egal ist wie die AI das letzendlich macht / wonach sie entscheidet. Als designer legst du eigentlich nur die Rewardfunktion fest, sowie ein paar meta parameter für die AI und schaust obs läuft, if not, spielst du ein bisschen an den parametern und der Rewardfunktion rum.
Am ende hast du dann eine AI die dir aus den featurevectoren einen score berechnen kann, die in konstanter zeit einen eintrag gewichten kann, nennen wir diese funktion mal score. Alles was du dann machen musst wenn der user sich einloggt ist dann alle bilder nach ihrem wert der score funktion zu sortieren, und in dieser sortierung auszugeben.
Wenn IG richtig fancy ist, weisen sie jedem nutzer auch noch einen feature vector zu, der deine interessen encoded, somit können sie dann die AI trainieren nutzern sachen vorzuschlagen die ähnlichen nutzern gefallen, und somit ihren trainingspool erweitern, da sie nicht mehr spezifisch für dich suchen müssen sondern nur für nutzer wie dich
Ob dir das was für dein projekt bringt, keine ahnung. Im grunde is der ganze AI kram nicht so kompliziert. Du kannst natürlich auch einen klassischen approach nehmen wie hier vorgestellt (von meinen vorpostern)
Quote:
Danke euch für die tollen Antworten. Aber ich arbeite mit MySQL und mit keiner Realtime Datenbank, wie führe ich dann ein Skript aus das es jede Stunde 5 Punkte verliert? Wie ich das Programmiere mit den Punkten ist nicht das Problem, muss das Skript aber ja iwie jede Stunde ausführen
|
Das ist ne lineare funktion, keine komplizierte differentialgleichung. Speicher einfach den letzen besuch und wenn du den score abrufen willst berechne ihn einfach als Socre - ((now - lastVisited) in stunden * 5). Das kannst du sogar als SQL query schreiben