Welche Empfehlungs-Engine für eine Situation, in der Benutzer nur einen Bruchteil aller Elemente sehen können?

9

Ich möchte einem Dokumentenverwaltungssystem eine Empfehlungsfunktion hinzufügen . Es ist ein Server, auf dem die meisten Unternehmensdokumente gespeichert sind. Die Mitarbeiter durchsuchen die Weboberfläche und klicken, um die gewünschten Dokumente herunterzuladen (oder online zu lesen).
Jeder Mitarbeiter hat nur Zugriff auf eine Teilmenge aller Dokumente:

Mitarbeiter haben nur Zugriff auf eine Teilmenge aller Dokumente

Mein Ziel : Empfehlen Sie einem Mitarbeiter die Dokumente, die kürzlich von seinen Teamkollegen geöffnet wurden, oder die Tabelle, die als Anhang zu dem gerade geöffneten Dokument dient, oder alles, was er lesen möchte.

Es gibt viele Empfehlungs-Engines für öffentlich verfügbare Daten (alle Netflix-Benutzer können alle Filme sehen), aber die Situation hier ist besonders: Jeder Mitarbeiter hat nur die Berechtigung für einen Bruchteil aller Dokumente, während in Netflix jeder Benutzer Zugriff auf alle Filme hat.

Beispiel : Mitarbeiter1 kann DocumentA lesen, nicht jedoch DocumentB. Mitarbeiter2 kann beide lesen und Mitarbeiter3 kann keine lesen.

Natürlich darf ich einem Mitarbeiter keine Dokumente empfehlen, auf die er keinen Zugriff hat. Darüber hinaus sollte ich die Popularität eines Dokuments wohl nur im Kontext der Mitarbeiter berücksichtigen, die Zugriff darauf haben. Um die Sache noch komplizierter zu machen, wechseln Mitarbeiter manchmal von einem Projekt zu einem anderen, was sich auf die Dokumente auswirkt, auf die sie Zugriff haben.

  • Gibt es einen Namen für diese Art von Problem?
  • Kann es ohne Präzisions- / Effizienzverlust auf ein häufigeres Problem reduziert werden?
  • Wenn nicht, welcher Ansatz würde für diese Art von Problem gut funktionieren?

Hinweis: Eine Netflix-ähnliche Empfehlungs-Engine ist nicht gut genug. Ein Dokument mit 50 Ansichten sollte prominent sein, wenn nur 10 Mitarbeiter (einschließlich mir) Zugriff darauf haben, aber nicht prominent, wenn 100000 Mitarbeiter Zugriff darauf haben.

Falls erforderlich, hier einige Datenspezifikationen: Das durchschnittliche Unternehmen hat 1000 Mitarbeiter, ungefähr 10000 Dokumente, ein Mitarbeiter klickt ungefähr 5 Dokumente pro Tag. Jedes Projekt hat durchschnittlich 10 Mitarbeiter, die Zugriff darauf haben, und verfügt über etwa 100 Dokumente. Jeder Mitarbeiter arbeitet durchschnittlich 5 Projekte parallel.

Nicolas Raoul
quelle

Antworten:

1

Ich bin der Meinung, dass Sie zwei Dinge getrennt ansprechen müssen.

Zunächst benötigen Sie eine Zugriffskontrolle für die Benutzer in Ihrem System. Sie können Zugriffstoken an jeden Benutzer und jede Datei anhängen. Filtern Sie die Dateidatenbank, bevor Sie sie verarbeiten.

Zweitens würde die Rangfolge der Dokumente, die ich vorschlagen würde, ein gewisses Gewicht für ein Dokumentgewicht und ein Benutzergewicht haben, die relativ zum aktuellen Benutzer des Browsers sind.

Zum Beispiel kann ich mir das Dokumentgewicht und das Benutzergewicht wie folgt vorstellen, aber sie können je nach System viel komplexer sein.

DocumentWeight = Number of Views/ Number of Users can Access
UserWeight = ## Relative to browsing user- Users in similar project will have higher weights

DocumentScore = Sum over all viewed users{DocumentWeight x UserWeight}

Sie können die Dokumente bewerten. Dadurch werden die benötigten Dokumente statistisch aufgerufen. Ich hoffe, das wird etwas helfen.

EngineeredBrain
quelle
0

Aus Ihrer Beschreibung würde ich vorschlagen, dass Sie sich mit Methoden befassen, die als kollaboratives Filtern bezeichnet werden . Grundsätzlich können Sie jede Ansicht / jeden Download eines Dokuments als positives Feedback für einen Artikel behandeln und diese Artikel dann Benutzern empfehlen, die sich mit ähnlichen Dokumenten befassen.

Das Filtern versteckter Ergebnisse sollte auf Benutzerbasis erfolgen (Sie finden alle möglichen Vorschläge, geben jedoch nur diejenigen aus, die der Benutzer sehen kann).

Chewpakabra
quelle
Ich denke nicht, dass eine solche generische Methode ausreichen würde: Ein Dokument mit 50 Ansichten sollte prominent sein, wenn nur 10 Mitarbeiter (einschließlich mir) Zugriff darauf haben, aber nicht prominent, wenn 100000 Mitarbeiter Zugriff darauf haben.
Nicolas Raoul
Ich habe nicht die Methode beschrieben, sondern die allgemeine Idee. Die kollaborative Filterung ist komplizierter und der von mir bereitgestellte Link ist ein guter Einstiegspunkt. Sie können nach verschiedenen Implementierungen und Ansätzen suchen und die für Ihre speziellen Datenspezifikationen am besten geeigneten finden.
Chewpakabra
Habe ich meine Datenspezifikationen in meiner Frage klar genug beschrieben? Wenn nicht, fragen Sie bitte nach den erforderlichen Informationen, bevor ein bestimmter Ansatz empfohlen werden kann. Vielen Dank :-)
Nicolas Raoul
Was ich verwirrend finde, ist das Fehlen einer klaren Vorstellung, warum ein Dokument mit 10000 Ansichten nicht als Empfehlung angezeigt werden sollte und eines mit 50 Ansichten in Ordnung ist. Was ist mit 100? Oder 51? Wenn Sie einen bestimmten Prozentsatz der Zielgruppe haben, der die Anzahl der Aufrufe irrelevant macht, können Sie solche Fälle einfach aus dem Trainingssatz ausschließen und trotzdem an kollaborativen Ansätzen festhalten. Wenn nicht, haben Sie möglicherweise ein Klassifizierungs- oder Clusterisierungsproblem, das ein viel umfassenderes Thema darstellt.
Chewpakabra
Woher kommt die 10000-Zahl? Wenn Sie 100000 gemeint haben, dann war mir nicht klar genug: "Zugriff darauf haben" bedeutet nicht "habe es angesehen", es bedeutet "die Erlaubnis haben, darauf zuzugreifen, wenn sie es wünschen". Mit anderen Worten, das erste Dokument wurde durchschnittlich 10 Mal von jeder Person angezeigt, die die Berechtigung zum Anzeigen hat, aber das zweite Dokument wurde von jeder Person, die die Berechtigung zum Anzeigen hat, durchschnittlich nur 0,0005 Mal angezeigt.
Nicolas Raoul
0

Werfen Sie einen Blick auf das Mining massiver Datensätze auf S. 328, das Sie schließlich zu SVD führt, die üblicherweise in Empfehlungssystemen verwendet wird.

Drey
quelle
Auf der von Ihnen erwähnten Seite werden verschiedene allgemeine Informationen zur Dimensionsreduzierung vorgestellt. Würde es Ihnen etwas ausmachen, zusammenzufassen, was für die obige Frage gilt? Vielen Dank!
Nicolas Raoul
Ja; es zeigt, wie man SVD für Empfehlung verwendet
Drey