Beginnen wir mit dem einfachsten Weg - versuchen wir, mit unseren Händen zu fischen. Wir öffnen eine Datenbank mit Waren aus Einkäufen und suchen nach einem ähnlichen Produkt. Die Chancen stehen gut, dass wir bis zum Abend nichts fangen.
Versuchen wir, die Warenbasis aus den Einkäufen herauszufiltern. Jedem Artikel in Einkäufen wird ein OKPD2-Code zugewiesen. Der Allrussische Klassifikator von Produkten nach wirtschaftlicher Aktivität ist ein Code, der Informationen zu einem Produkt enthält.
Zum Beispiel:
Jetzt haben wir eine Angelrute, die etwas besser geworden ist, aber aus irgendeinem Grund möchte der Fisch nicht am Haken hängen.
Reg dich nicht auf, wir benutzen den Köder. Wir müssen einen Weg finden, ähnliche Produkte innerhalb eines OKPD2 automatisch zu identifizieren. Dazu müssen Sie die semantische Bedeutung der Produktbeschreibung in Form eines Tensors darstellen. Um Informationen zu verarbeiten, müssen Sie sie in ein Zahlenformat konvertieren. Zu diesem Zweck verwenden wir einen speziellen Mechanismus zum Übersetzen von Wörtern in den Vektorraum Word2Vec, der ein Wort in eine Folge von Zahlen einer bestimmten Größe übersetzt, die als Vektor oder Tensor bezeichnet wird. Word2Vec ist ein Modell, das speziell darauf trainiert ist, die semantische Bedeutung eines Wortes zu verstehen. Produkte aus der Datenbank mit demselben OKPD2 müssen in Tensoren konvertiert werden. Großartig, wir haben jetzt eines unserer Tensorprodukte und eine Reihe anderer Produkttensoren.
Wir werden nach dem nächstgelegenen Produkt nach Kosinusabstand suchen. Je ähnlicher das Produkt aus der Datenbank unserer ist, desto geringer ist der Kosinusabstand. Wir wählen ein Produkt mit einem minimalen Kosinusabstand und dies wird unser gewünschter Fisch sein.
Lassen Sie uns die beschriebene Methode in der Praxis analysieren. Beginnen wir mit der Umwandlung der Produktbeschreibung in einen Tensor. Zunächst wird die Produktbeschreibung mit einem Token versehen, dh sie wird in separate Wörter aufgeteilt. Um Wörter in ihre semantische Bedeutung umzuwandeln, wurde ein vorab trainiertes Word2Vec mit einer Dimension von 100 verwendet (dh ein Wort wird durch eine Menge von 100 Zahlen dargestellt).
Wir haben eine Reihe von Einbettungen. Um den Kosinusabstand zu berechnen, muss die Vektordarstellung des gesamten Textes mit der Produktbeschreibung berechnet werden. Der einfachste Weg, dies zu implementieren, besteht darin, den Durchschnitt zwischen allen Einbettungen von Beschreibungswörtern zu ermitteln, während die semantische Bedeutung des Produkts verzerrt wird. Dies ist jedoch für die Lösung dieses Problems nicht kritisch.
Nachdem wir unser Produkt und alle Produkte mit demselben OKPD in Einbettungen übersetzt haben, besteht der nächste Schritt darin, den Kosinusabstand zwischen ihnen zu berechnen.
Wie Sie in der folgenden Abbildung sehen können, sind die Produkte „Salmon riesig“ und „Zolotaya Rybka“ dem Produkt „Big Fish“ am nächsten.
Man kann also davon ausgehen, dass der Preis eines großen Fisches im Bereich zwischen den Preisen eines Goldfisches und eines riesigen Lachses liegt. Die folgenden Ergebnisse wurden mit realen Daten erhalten:
Manchmal funktioniert dieser Ansatz möglicherweise nicht gut. In der Produktdatenbank gibt es beispielsweise kein ähnliches Produkt wie wir. Dann ist der gefangene Fisch zu klein und das Modul gibt einen leeren Bereich zurück.
Die letzte Methode, die wir uns ansehen werden, ist das Netzfischen. Yandex wird als Netzwerk verwendet. Aus der Produktbeschreibung wird eine Anfrage gebildet, und die ersten 20 Antworten werden zur weiteren Analyse ausgewählt. Es macht keinen Sinn, die folgenden Antworten zu nehmen, da ihre Relevanz fraglich ist. Die Texte der ersten 20 Antworten werden an den Preissucher gesendet. Das Modell wählt Preise aus Antworten aus und bildet daraus eine Preisspanne. Viele verschiedene Fische gelangen in das Fischernetz, daher ist die Preisspanne sehr laut. Lassen Sie uns zum Filtern Ausreißer fallen. Wenn die erzielten Preise normal verteilt sind, können nur 68 Prozent der Preise einbehalten werden. Lassen Sie also die Preise im Bereich zwischen der Differenz zwischen dem Durchschnitt aller Preise und der Standardabweichung und der Summe aus Mittelwert und Standardabweichung. So sehen die Produktpreisspannen in Yandex aus:
Alle betrachteten Fangmethoden haben ihre Vor- und Nachteile. Die Wahl, welche Option vorzuziehen ist, wird von jedem Fischer gemäß seinen Anforderungen an Genauigkeit und Zeit getroffen. Glücklicher Fang!