-2

У меня есть набор данных, содержащий 200 000 пользователей, 25000 наименований и 5 миллионов баллов. Я должен вычислить оценку подобия (используя либо косинус, либо корреляцию pearson) всех возможных пар пользователей. У меня есть код, написанный в C#, и когда я его запускаю, я получаю ошибку переполнения памяти. Я пробовал почти все решения (приложение x64, увеличенная память кучи и т. Д.). Конфигурация моего ПК (ядро-i7 3,4 ГГц, 12 ГБ DDR3, 2 ТБ HDD). Есть ли какой-либо ресурс, который может помочь мне выполнить эту задачу?Оценка схожести компьютеров для всех пар пользователей

ответ

0

... сказал, что я попытаюсь ответить на то, что вы на самом деле спросили. Вы не смогли предоставить свой код или сообщение об ошибке, поэтому я делаю снимок с реальной проблемой.

Число возможных пар N пользователей - N (N-1)/2; для больших значений N это эффективно N^2/2. Для пользователей 2E5 это выходит на 2E10 возможных пар: 20 миллиардов пар. Я бы сказал, что ваше минимальное хранилище - это идентификаторы пользователей по 32 бита, плюс 4 байта для измерения подобия. Это 12 байт на пару, что дает нам 240 ГБ памяти.

Вы не сказали ни слова о своем алгоритме, вашем подходе к данным или используемом вами языке. Если вы пытаетесь сделать все эти вычисления в ОЗУ, курс вы продуваете свой лимит памяти!

Вы находитесь в диапазоне «больших данных». Начните поиск с этих инструментов. Я не знаю ваших ресурсов для проекта, а рекомендации по инструментам находятся далеко за пределами StackOverflow.

Конечно, если вы будете осторожны с алгоритмом, вы сможете справиться с этим. Вы сохраняете только информацию о голых пользователях в памяти, возможно, рейтинги, введенные с помощью идентификатора пользователя. Когда вы вычисляете сходство, вы буферизируете его для записи на диск.

Есть ли еще обработка, которую вы должны выполнить после вычисления сходства, или задача завершена написанием файла? Если вам нужно сделать больше, вам, вероятно, понадобится набор инструментов больших данных с хорошей поддержкой ETL и возможностями доступа к данным, чтобы соответствовать всем фасеткам проекта, которые вы не описали.

Смежные вопросы