An diesem Nebenprojekt arbeite ich, um eine Lösung für das folgende Problem zu finden.
Ich habe zwei Gruppen von Menschen (Kunden). Die Gruppe A
beabsichtigt zu kaufen und die Gruppe B
beabsichtigt, ein bestimmtes Produkt zu verkaufen X
. Das Produkt weist eine Reihe von Attributen auf x_i
, und mein Ziel ist es, die Transaktion zwischen A
und B
durch Abgleichen ihrer Präferenzen zu erleichtern . Die Hauptidee besteht darin, jedes Mitglied A
eines Korrespondenten darauf hinzuweisen, B
dessen Produkt seinen Bedürfnissen besser entspricht, und umgekehrt.
Einige komplizierende Aspekte des Problems:
Die Liste der Attribute ist nicht endlich. Der Käufer ist möglicherweise an einer bestimmten Eigenschaft oder einem bestimmten Design interessiert, was in der Bevölkerung selten vorkommt und ich nicht vorhersagen kann. Zuvor konnten nicht alle Attribute aufgelistet werden.
Attribute können stetig, binär oder nicht quantifizierbar sein (z. B. Preis, Funktionalität, Design).
Haben Sie Vorschläge, wie Sie dieses Problem lösen und automatisieren können?
Ich würde mich auch über Hinweise auf andere ähnliche Probleme freuen, wenn dies möglich ist.
Tolle Vorschläge! Viele Ähnlichkeiten in der Art und Weise, wie ich daran denke, das Problem anzugehen.
Das Hauptproblem bei der Zuordnung der Attribute ist, dass der Detaillierungsgrad, bis zu dem das Produkt beschrieben werden soll, von jedem Käufer abhängt. Nehmen wir ein Beispiel eines Autos. Das Produkt "Auto" hat viele, viele Eigenschaften, die von seiner Leistung, mechanischen Struktur, Preis usw. reichen.
Angenommen, ich möchte nur ein billiges Auto oder ein Elektroauto. Ok, das ist einfach abzubilden, da sie die Hauptmerkmale dieses Produkts darstellen. Nehmen wir zum Beispiel an, ich möchte ein Auto mit Doppelkupplungsgetriebe oder Xenon-Scheinwerfern. Die Datenbank enthält möglicherweise viele Autos mit diesen Attributen, aber ich würde den Verkäufer nicht bitten, diese Detailstufe für sein Produkt einzugeben, bevor die Information vorliegt, dass jemand nach ihnen sucht. Für ein solches Verfahren müsste jeder Verkäufer ein komplexes, sehr detailliertes Formular ausfüllen und nur versuchen, sein Auto auf der Plattform zu verkaufen. Würde einfach nicht funktionieren.
Meine Herausforderung besteht jedoch darin, bei der Suche so detailliert wie möglich zu sein, um eine gute Übereinstimmung zu erzielen. Die Art und Weise, wie ich denke, besteht darin, die Hauptaspekte des Produkts abzubilden, die wahrscheinlich für alle relevant sind, um die Gruppe der potenziellen Verkäufer einzugrenzen.
Der nächste Schritt wäre eine "verfeinerte Suche". Um zu vermeiden, dass ein zu detailliertes Formular erstellt wird, könnte ich Käufer und Verkäufer bitten, einen freien Text ihrer Spezifikation zu verfassen. Verwenden Sie dann einen Wortvergleichsalgorithmus, um mögliche Übereinstimmungen zu finden. Obwohl ich verstehe, dass dies keine richtige Lösung für das Problem ist, weil der Verkäufer nicht „erraten“ kann, was der Käufer braucht. Könnte mich aber näher bringen.
Das vorgeschlagene Gewichtungskriterium ist großartig. Es ermöglicht mir, das Niveau zu quantifizieren, zu dem der Verkäufer den Bedürfnissen des Käufers entspricht. Der Skalierungsteil kann jedoch ein Problem darstellen, da die Wichtigkeit der einzelnen Attribute von Client zu Client unterschiedlich ist. Ich denke darüber nach, eine Art Mustererkennung zu verwenden oder nur den Käufer zu bitten, den Grad der Wichtigkeit jedes Attributs einzugeben.
Wie vorgeschlagen, wild zu werden . Korrigieren Sie mich zuerst, wenn ich falsch liege:
In diesem Fall kann die Erstellung einer vollständigen Produktmerkmaltabelle rechenintensiv sein. Und die endgültige Datentabelle wäre äußerst spärlich.
Der erste Schritt besteht darin, die Liste der Kunden (Produkte) für den Abgleich einzuschränken. Bauen wir ein zweigliedriges Diagramm auf, in dem Verkäufer Knoten vom Typ 1 und Käufer Knoten vom Typ 2 sind. Erstellen Sie jedes Mal eine Kante zwischen Verkäufern und Käufern, wenn sie auf ein ähnliches Produktmerkmal verweisen, wie in der folgenden Skizze dargestellt:
Unter Verwendung der obigen Grafik, für jedes Produkt einzigartige Verkäufer Sie nur Käufer auswählen können , die in Funktionen interessiert sind, die das Produkt passen (es möglich ist , auf Filter mindestens ein gemeinsames Merkmal, entsprechen den vollständigen Satz von Funktionen oder einen Schwellenwert festgelegt). Aber das ist sicher nicht genug. Der nächste Schritt ist der Vergleich der Merkmalswerte, wie vom Verkäufer und Käufer beschrieben. Es gibt viele Varianten (zB k-Nearest-Neighbours). Aber warum nicht versuchen, diese Frage mit dem vorhandenen Diagramm zu lösen? Fügen wir den Kanten Gewichte hinzu:
für fortlaufende Funktionen (z. B. Preis):
für binäre und nicht quantifizierbare Merkmale - nur logisch bedingt:
Die Hauptidee hierbei ist, jedes Merkmal auf das Intervall zu skalieren
[0, 1]
. Zusätzlich können wir Merkmalskoeffizienten verwenden, um die wichtigsten Merkmale zu bestimmen. Zum Beispiel ist die Annahme, dass der Preis doppelt so wichtig ist wie die Verfügbarkeit einer seltenen Funktion:Einer der letzten Schritte besteht darin, die Diagrammstruktur zu vereinfachen und viele Kanten auf eine Kante zu reduzieren, deren Gewicht der Summe der zuvor berechneten Gewichte der einzelnen Features entspricht. Mit solch einer reduzierten Struktur könnte jedes Kunden- / Produktpaar nur eine Kante haben (keine parallelen Kanten). Um das beste Angebot für den genauen Verkäufer zu finden, müssen Sie nur verbundene Käufer mit maximal gewichteten Kanten auswählen.
Zukünftige Herausforderung: Einführung einer billigen Methode zum Gewichten von Kanten im ersten Schritt :)
quelle