Який рекомендаційний механізм для ситуації, коли користувачі можуть бачити лише частину всіх елементів?


9

Я хочу додати рекомендаційну функцію до системи управління документами . Це сервер, на якому зберігається більшість документів компанії. Співробітники переглядають веб-інтерфейс і натискають, щоб завантажити (або прочитати в Інтернеті) потрібні документи.
Кожен працівник має лише доступ до підмножини всіх документів:

Працівники мають доступ лише до підмножини всіх документів

Моя мета : рекомендувати працівникові документи, які нещодавно відкрили їхні товариші по команді, або електронну таблицю, яка слугує додатком до документа, який вони щойно відкрили, або будь-що, що вони могли б прочитати.

Існує багато рекомендаційних механізмів для публічно доступних даних (усі користувачі Netflix можуть переглядати всі фільми), але ситуація тут особлива: кожен працівник має лише дозвіл на частину всіх документів, тоді як у Netflix будь-який користувач має доступ до всіх фільмів.

Приклад : Співробітник1 може читати DocumentA, але не DocumentB. Employee2 може читати і те, і Employee3 не може читати жодне.

Звичайно, я не повинен рекомендувати працівникові документи, до яких він / він не має доступу. Більше того, я думаю, я повинен розглянути популярність документа лише в контексті працівників, які мають доступ до нього. Щоб зробити речі ще складнішими, працівники іноді переходять від проекту до іншого, що впливає на документи, до яких вони мають доступ.

  • Чи є назва такої проблеми?
  • Чи можна її зменшити без точності / втрати ефективності до більш поширеного виду проблеми?
  • Якщо ні, то який би підхід спрацював для цієї проблеми?

Примітка. Рекомендаційний механізм, схожий на Netflix, недостатньо хороший. Документ із 50 переглядами повинен бути видатним, якщо лише 10 працівників (включаючи мене) мають доступ до нього, але не видно, якщо 100000 співробітників мають доступ до нього.

У випадку, якщо це потрібно, ось кілька конкретних даних: Середня компанія має 1000 співробітників, близько 10000 документів, працівник клацає близько 5 документів на день. Кожен проект має в середньому 10 працівників, які мають доступ до нього, і має близько 100 документів. Кожен працівник працює в середньому 5 проектів паралельно.

Відповіді:


1

Я відчуваю, що потрібно вирішувати дві речі окремо.

По-перше, потрібно мати контроль доступу для користувачів у вашій системі. Ви можете мати маркери доступу, додані до кожного користувача та файлу. Фільтруйте базу даних файлів перед обробкою.

По-друге, класифікація документів, які я б запропонувала, має деяку вагу для ваги документа та ваги користувача, що стосується поточного користувача, який переглядає.

Наприклад, я можу визначити вагу документа та вагу користувача наступним чином, але вони можуть бути набагато складнішими відповідно до вашої системи,

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}

Ви можете класифікувати документи, це статистично підтягне потрібні документи. Я сподіваюся, що це допоможе.


0

З вашого опису я б запропонував поглянути на методи, що називаються спільною фільтрацією . В основному, ви можете ставитися до будь-якого перегляду / завантаження документа як позитивного відгуку щодо якогось елемента, а потім рекомендувати такі елементи для користувачів, які заглядають у подібні документи.

Фільтрування прихованих результатів слід проводити на основі кожного користувача (ви знайдете всі можливі пропозиції, але виведіть лише ті, на які користувач може бачити права).


Я не думаю, що такого загального методу було б достатньо: Документ із 50 переглядами повинен бути видатним, якщо лише 10 працівників (включаючи мене) мають доступ до нього, але не видатні, якщо 100000 працівників мають доступ до нього.
Ніколя Рауль

Я описав не метод, а загальну думку. Спільна фільтрація є складнішою, і надане мною посилання є гарною точкою входу, тоді як ви можете шукати різні реалізації та підходи та знаходити найбільш підходящі для вашої конкретної інформації.
chewpakabra

Чи досить чітко я описав свої дані у своєму запитанні? Якщо ні, будь ласка, не соромтеся запитати будь-яку інформацію, необхідну до того, як конкретний підхід може бути рекомендований. Велике спасибі :-)
Ніколас Рауль

Мені бентежить відсутність чіткого уявлення про те, чому документ із 10000 переглядами не варто показувати як рекомендацію, а документ із 50 переглядом - це нормально. А що з 100? Або 51? Якщо у вас є певний відсоток аудиторії, що робить кількість переглядів неважливою, ви можете просто виключити такі випадки з навчального набору і все ще дотримуватися спільних підходів. Якщо ні, то у вас може виникнути якась проблема класифікації чи кластеризації, яка є значно ширшою темою.
chewpakabra

Звідки береться цифра 10000? Якщо ви мали на увазі 100000, то мені було недостатньо зрозуміло: "мати доступ до нього" не означає "переглянули його", це означає "мати дозвіл на доступ до нього, якщо вони хочуть". Іншими словами, перший документ переглядав в середньому 10 разів кожна людина, яка має дозвіл на його перегляд, але другий документ переглядав лише в середньому 0,0005 разів кожна людина, яка має дозвіл на його перегляд.
Ніколя Рауль

0

Погляньте на видобуток наборів масивних даних, стор. 328, які в кінцевому підсумку приведуть вас до SVD, який зазвичай використовується в системах рекомендування.


Сторінка, яку ви згадуєте, представляє різні загальні риси щодо зменшення розмірності. Чи проти зауважити, що стосується вищезазначеного питання? Дуже дякую!
Ніколя Рауль

так; він показує, як використовувати SVD для рекомендації
Drey
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.