Mesin rekomendasi apa untuk situasi di mana pengguna hanya dapat melihat sebagian kecil dari semua item?

9

Saya ingin menambahkan fitur rekomendasi ke sistem manajemen dokumen . Ini adalah server tempat sebagian besar dokumen perusahaan disimpan. Karyawan menelusuri antarmuka web dan klik untuk mengunduh (atau membaca online) dokumen yang mereka inginkan.
Setiap karyawan hanya memiliki akses ke subset dari semua dokumen:

Karyawan hanya memiliki akses ke subset dari semua dokumen

Tujuan saya : Rekomendasikan kepada karyawan dokumen yang baru saja dibuka oleh rekan satu tim mereka, atau spreadsheet yang berfungsi sebagai lampiran pada dokumen yang baru saja mereka buka, atau apa pun yang mungkin ingin mereka baca.

Ada banyak mesin rekomendasi untuk data yang tersedia untuk umum (semua pengguna Netflix dapat melihat semua film), tetapi situasinya di sini istimewa: Setiap karyawan hanya memiliki izin untuk sebagian kecil dari semua dokumen, sedangkan di Netflix setiap pengguna memiliki akses ke semua film.

Contoh : Karyawan1 dapat membaca DocumentA tetapi bukan DocumentB. Employee2 dapat membaca keduanya dan Employee3 tidak dapat membaca apapun.

Tentu saja, saya tidak boleh merekomendasikan kepada karyawan dokumen yang dia tidak punya akses. Selanjutnya, saya kira saya harus mempertimbangkan popularitas dokumen hanya dalam konteks karyawan yang memiliki akses ke sana. Untuk membuat hal-hal menjadi lebih rumit, karyawan terkadang berpindah dari satu proyek ke proyek lain, yang berdampak pada dokumen yang mereka akses.

  • Apakah ada nama untuk masalah seperti ini?
  • Apakah bisa dikurangi tanpa kehilangan presisi / efisiensi karena masalah yang lebih umum?
  • Jika tidak, pendekatan apa yang akan bekerja dengan baik untuk masalah seperti ini?

Catatan: Mesin rekomendasi seperti Netflix tidak cukup baik. Dokumen dengan 50 tampilan harus menonjol jika hanya 10 karyawan (termasuk saya) yang memiliki akses ke sana, tetapi tidak menonjol jika 100000 karyawan memiliki akses ke sana.

Jika diperlukan, berikut adalah beberapa data spesifik: Perusahaan rata-rata memiliki 1000 karyawan, sekitar 10.000 dokumen, seorang karyawan mengklik sekitar 5 dokumen per hari. Setiap proyek memiliki rata-rata 10 karyawan yang memiliki akses ke sana, dan memiliki sekitar 100 dokumen. Setiap karyawan bekerja pada rata-rata 5 proyek secara paralel.

Nicolas Raoul
sumber

Jawaban:

1

Saya merasa Anda perlu membahas dua hal secara terpisah.

Pertama, Anda harus memiliki kontrol akses untuk pengguna di sistem Anda. Anda dapat memiliki token akses yang dilampirkan ke setiap pengguna dan file. Saring basis data file sebelum Anda memproses.

Kedua, memberi peringkat pada dokumen yang saya sarankan memiliki bobot untuk bobot dokumen dan bobot pengguna yang relatif terhadap pengguna penelusuran saat ini.

Sebagai contoh saya dapat memikirkan berat dokumen dan berat pengguna sebagai berikut tetapi mereka bisa jauh lebih kompleks sesuai sistem Anda-

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}

Anda dapat menentukan peringkat dokumen, ini akan menarik secara statistik dokumen yang Anda butuhkan. Saya harap ini akan membantu.

EngineeredBrain
sumber
0

Dari uraian Anda, saya sarankan agar Anda mencari metode yang disebut pemfilteran kolaboratif . Pada dasarnya, Anda dapat memperlakukan setiap tampilan / unduhan dokumen sebagai umpan balik positif untuk beberapa item dan kemudian merekomendasikan item tersebut untuk pengguna yang mencari dokumen yang serupa.

Pemfilteran hasil tersembunyi harus dilakukan berdasarkan per pengguna (Anda menemukan semua saran yang mungkin, tetapi hanya menghasilkan saran yang dapat dilihat pengguna).

chewpakabra
sumber
Saya tidak berpikir metode generik seperti itu sudah cukup: Sebuah dokumen dengan 50 tampilan harus menonjol jika hanya 10 karyawan (termasuk saya) yang memiliki akses ke sana, tetapi tidak menonjol jika 100000 karyawan memiliki akses ke sana.
Nicolas Raoul
Saya menjelaskan bukan metode, tetapi gagasan umum. Pemfilteran kolaboratif lebih rumit dan tautan yang saya berikan adalah titik masuk yang baik, sementara Anda dapat mencari berbagai implementasi dan pendekatan dan menemukan yang paling cocok untuk data spesifik Anda.
chewpakabra
Apakah saya menggambarkan data spesifik saya dengan cukup jelas dalam pertanyaan saya? Jika tidak, jangan ragu untuk meminta informasi apa pun yang diperlukan sebelum pendekatan tertentu dapat direkomendasikan. Terima kasih banyak :-)
Nicolas Raoul
Yang saya anggap membingungkan adalah tidak adanya gagasan yang jelas mengapa dokumen dengan 10000 view tidak layak ditampilkan sebagai rekomendasi, dan satu dengan 50 view OK. Bagaimana dengan 100? Atau 51? Jika Anda memiliki persentase audiens yang pasti yang membuat jumlah tampilan tidak relevan, Anda bisa mengecualikan kasus-kasus seperti itu dari perangkat pelatihan dan masih menggunakan pendekatan kolaboratif. Jika tidak, Anda mungkin memiliki masalah klasifikasi atau klasterisasi, yang merupakan topik yang lebih luas.
chewpakabra
Dari mana datangnya angka 10.000? Jika Anda maksud 100000, maka saya tidak cukup jelas: "memiliki akses ke sana" tidak berarti "telah melihatnya", itu berarti "memiliki izin untuk mengaksesnya jika mereka mau". Dengan kata lain, dokumen pertama telah dilihat rata-rata 10 kali oleh setiap orang yang memiliki izin untuk melihatnya, tetapi dokumen kedua hanya dilihat rata-rata 0,0005 kali oleh setiap orang yang memiliki izin untuk melihatnya.
Nicolas Raoul
0

Lihatlah Penambangan Kumpulan Data Masif hlm. 328 yang pada akhirnya akan membawa Anda ke SVD yang biasanya digunakan dalam sistem rekomendasi.

Sarang tupai
sumber
Halaman yang Anda sebutkan memperkenalkan berbagai generalisasi tentang pengurangan dimensi. Maukah Anda menyimpulkan apa yang berlaku untuk pertanyaan di atas? Terima kasih banyak!
Nicolas Raoul
Iya; itu menunjukkan cara menggunakan SVD untuk rekomendasi
Drey