Совместная фильтрация ( CF ) – это метод, используемый рекомендательными системами . [1] Совместная фильтрация имеет два смысла: узкий и более общий. [2]
В более новом, более узком смысле совместная фильтрация — это метод автоматического прогнозирования ( фильтрации) интересов пользователя путем сбора информации о предпочтениях или вкусах от многих пользователей (сотрудничающих). Основное предположение подхода совместной фильтрации заключается в том, что если человек А имеет то же мнение, что и человек Б , по какому-либо вопросу, то у А с большей вероятностью будет мнение Б по другому вопросу, чем мнение случайно выбранного человека. Например, система рекомендаций по совместной фильтрации предпочтений в телевизионных программах может делать прогнозы о том, какое телешоу должно понравиться пользователю, учитывая неполный список вкусов этого пользователя (нравится или не нравится). [3] Эти прогнозы специфичны для пользователя, но используют информацию, полученную от многих пользователей. Это отличается от более простого подхода, при котором выставляется средний (неконкретный) балл по каждому интересующему вопросу, например, на основе количества голосов .
В более общем смысле совместная фильтрация — это процесс фильтрации информации или шаблонов с использованием методов, включающих сотрудничество между несколькими агентами, точками зрения, источниками данных и т. д. [2] Приложения совместной фильтрации обычно включают очень большие наборы данных. Методы совместной фильтрации применялись ко многим различным видам данных, включая: данные зондирования и мониторинга, например, при разведке полезных ископаемых, зондировании окружающей среды на больших территориях или с использованием нескольких датчиков; финансовые данные, такие как учреждения финансовых услуг, которые объединяют множество финансовых источников; или в электронной коммерции и веб-приложениях, где основное внимание уделяется пользовательским данным и т. д. Оставшаяся часть этого обсуждения посвящена совместной фильтрации пользовательских данных, хотя некоторые методы и подходы могут применяться и к другим основным приложениям.
Рост Интернета значительно усложнил эффективное извлечение полезной информации из всей доступной онлайн-информации . [ по мнению кого? ] Огромный объем данных требует механизмов эффективной фильтрации информации . [ по мнению кого? ] Совместная фильтрация — один из методов, используемых для решения этой проблемы.
Мотивация совместной фильтрации исходит из идеи, что люди часто получают лучшие рекомендации от кого-то, чьи вкусы схожи с ними. [ нужна цитация ] Совместная фильтрация включает в себя методы подбора людей со схожими интересами и выдачи рекомендаций на этой основе.
Алгоритмы совместной фильтрации часто требуют (1) активного участия пользователей, (2) простого способа представления интересов пользователей и (3) алгоритмов, способных находить людей со схожими интересами.
Обычно рабочий процесс системы совместной фильтрации выглядит следующим образом:
Ключевая проблема совместной фильтрации заключается в том, как объединить и взвесить предпочтения соседей пользователей. Иногда пользователи могут сразу оценить рекомендованные товары. В результате система со временем получает все более точное представление о предпочтениях пользователя.
Системы совместной фильтрации имеют множество форм, но многие распространенные системы можно свести к двум этапам:
Это подпадает под категорию совместной фильтрации на основе пользователей. Конкретным применением этого является пользовательский алгоритм ближайшего соседа .
Альтернативно, совместная фильтрация на основе элементов (пользователи, которые купили x, также купили y), осуществляется по принципу, ориентированному на элементы:
См., например, семейство совместной фильтрации на основе элементов Slope One .
Другая форма совместной фильтрации может быть основана на неявных наблюдениях за нормальным поведением пользователей (в отличие от искусственного поведения, налагаемого рейтинговой задачей). Эти системы наблюдают за тем, что сделал пользователь, а также за тем, что сделали все пользователи (какую музыку они слушали, какие товары покупали) и используют эти данные для прогнозирования поведения пользователя в будущем или для прогнозирования того, что пользователю может понравиться. вести себя, если есть возможность. Эти прогнозы затем необходимо отфильтровать с помощью бизнес-логики , чтобы определить, как они могут повлиять на действия бизнес-системы. Например, бесполезно предлагать кому-либо продать определенный музыкальный альбом, если он уже продемонстрировал, что владеет этой музыкой.
Использование системы оценок или рейтингов, которая усредняется по всем пользователям, игнорирует конкретные требования пользователя и особенно неэффективна в задачах, где существует большая разница в интересах (например, в рекомендациях музыки). Однако существуют и другие методы борьбы с информационным взрывом, такие как веб- поиск и кластеризация данных .
Подход на основе памяти использует данные рейтинга пользователей для вычисления сходства между пользователями или элементами. Типичными примерами этого подхода являются CF на основе района и рекомендации Top-N на основе элементов/пользователей. Например, в подходах, основанных на пользователях, ценность оценок, которые пользователь u дает элементу i , рассчитывается как совокупность оценок некоторых аналогичных пользователей этого элемента:
где U обозначает набор из N лучших пользователей, наиболее похожих на пользователя u , поставившего оценку элементу i . Некоторые примеры функции агрегирования включают в себя:
где k — нормирующий коэффициент, определяемый как , и
где средний рейтинг пользователя u для всех элементов, которым вы оценили u .
Алгоритм на основе соседства вычисляет сходство между двумя пользователями или элементами и выдает прогноз для пользователя, взяв средневзвешенное значение всех оценок. Вычисление сходства между элементами или пользователями является важной частью этого подхода. Для этого используются многочисленные меры, такие как корреляция Пирсона и сходство на основе векторного косинуса .
Сходство корреляции Пирсона двух пользователей x , y определяется как
где I xy — набор элементов, оцененных пользователем x и пользователем y .
Подход на основе косинуса определяет косинусное сходство между двумя пользователями x и y как: [4]
Алгоритм рекомендаций Top-N на основе пользователей использует векторную модель на основе сходства для идентификации k пользователей , наиболее похожих на активного пользователя. После того, как найдены k наиболее похожих пользователей, соответствующие им матрицы элементов пользователей агрегируются для определения набора элементов, которые следует рекомендовать. Популярным методом поиска похожих пользователей является хеширование с учетом местоположения , которое реализует механизм поиска ближайшего соседа за линейное время.
Преимущества этого подхода включают: объяснимость результатов, что является важным аспектом рекомендательных систем; простота создания и использования; простота получения новых данных; независимость от содержания рекомендуемых товаров; хорошее масштабирование с элементами с одинаковым рейтингом.
У этого подхода также есть несколько недостатков. Его производительность снижается, когда данные становятся разреженными , что часто происходит с элементами, связанными с Интернетом. Это препятствует масштабируемости этого подхода и создает проблемы с большими наборами данных. Хотя он может эффективно обрабатывать новых пользователей, поскольку опирается на структуру данных , добавление новых элементов становится более сложным, поскольку это представление обычно опирается на определенное векторное пространство . Добавление новых элементов требует включения нового элемента и повторной вставки всех элементов в структуру.
В этом подходе модели разрабатываются с использованием различных алгоритмов интеллектуального анализа данных и машинного обучения для прогнозирования рейтинга пользователей элементов без рейтинга. Существует множество алгоритмов CF, основанных на моделях. Байесовские сети , модели кластеризации , скрытые семантические модели , такие как разложение по сингулярным значениям , вероятностный скрытый семантический анализ , множественный мультипликативный коэффициент, скрытое распределение Дирихле и модели, основанные на марковском процессе принятия решений . [5]
Благодаря этому подходу методы уменьшения размерности в основном используются в качестве дополнительного метода для повышения надежности и точности подхода, основанного на памяти. В этом смысле такие методы, как разложение по сингулярным значениям и анализ главных компонентов , известные как модели скрытых факторов, сжимают матрицу пользовательских элементов в низкоразмерное представление с точки зрения скрытых факторов. Одним из преимуществ использования этого подхода является то, что вместо матрицы большой размерности, содержащей большое количество пропущенных значений, мы будем иметь дело с матрицей гораздо меньшего размера в пространстве меньшей размерности. Сокращенное представление можно использовать для алгоритмов соседства, основанных на пользователях или элементах, которые представлены в предыдущем разделе. У этой парадигмы есть несколько преимуществ. Он справляется с разреженностью исходной матрицы лучше, чем матрицы, основанные на памяти. Кроме того, сравнение сходства полученной матрицы гораздо более масштабируемо, особенно при работе с большими разреженными наборами данных. [6]
Ряд приложений сочетают в себе алгоритмы CF на основе памяти и модели. Они преодолевают ограничения собственных подходов CF и улучшают качество прогнозирования. Важно отметить, что они преодолевают проблемы CF, такие как разреженность и потеря информации. Однако они имеют повышенную сложность и дороги в реализации. [7] Обычно большинство коммерческих рекомендательных систем являются гибридными, например, рекомендательная система новостей Google. [8]
В последние годы был предложен ряд методов нейронного и глубокого обучения. Некоторые обобщают традиционные алгоритмы матричной факторизации с помощью нелинейной нейронной архитектуры [9] или используют новые типы моделей, такие как вариационные автоэнкодеры . [10] Хотя глубокое обучение применялось во многих различных сценариях: с учетом контекста, с учетом последовательности, социальными тегами и т. д., его реальная эффективность при использовании в простом сценарии совместных рекомендаций была поставлена под сомнение. Систематический анализ публикаций, применяющих методы глубокого обучения или нейронных методов для решения проблемы рекомендаций Top-k, опубликованных на ведущих конференциях (SIGIR, KDD, WWW, RecSys), показал, что в среднем менее 40% статей воспроизводимы с минимальными затратами. как 14% на некоторых конференциях. Всего в исследовании выявлено 18 статей, только 7 из них можно воспроизвести, а 6 из них могут превзойти гораздо более старые и простые, правильно настроенные базовые показатели. В статье также подчеркивается ряд потенциальных проблем в сегодняшних научных исследованиях и содержится призыв к совершенствованию научной практики в этой области. [11] Подобные проблемы были замечены другими [12] , а также в рекомендательных системах с учетом последовательности. [13]
Многие рекомендательные системы просто игнорируют другую контекстную информацию, существующую наряду с рейтингом пользователя, при предоставлении рекомендаций по товару. [14] Однако из-за повсеместной доступности контекстной информации, такой как время, местоположение, социальная информация и тип устройства, которое использует пользователь, становится более важным, чем когда-либо, для успешной рекомендательной системы предоставлять контекстно-зависимые рекомендации. По словам Чару Аггравала, «контекстно-зависимые рекомендательные системы адаптируют свои рекомендации к дополнительной информации, которая определяет конкретную ситуацию, в которой даются рекомендации. Эта дополнительная информация называется контекстом». [6]
Принимая во внимание контекстную информацию, у нас появится дополнительное измерение к существующей матрице рейтингов элементов пользователя. В качестве примера предположим, что система музыкальных рекомендаций дает разные рекомендации в зависимости от времени суток. В этом случае возможно, что в разное время суток у пользователя разные предпочтения в отношении музыки. Таким образом, вместо использования матрицы элементов пользователя мы можем использовать тензор порядка 3 (или выше для рассмотрения других контекстов) для представления контекстно-зависимых предпочтений пользователей. [15] [16] [17]
Чтобы воспользоваться преимуществами совместной фильтрации и, в частности, методов , основанных на соседстве, подходы могут быть расширены из двумерной рейтинговой матрицы в тензор более высокого порядка . Для этой цели подход состоит в том, чтобы найти пользователей, наиболее похожих/единомышленников на целевого пользователя; можно извлечь и вычислить сходство срезов (например, матрицы элемента-времени), соответствующих каждому пользователю. В отличие от контекстно-независимого случая, для которого вычисляется сходство двух рейтинговых векторов, в контекстно-зависимых подходах сходство рейтинговых матриц, соответствующих каждому пользователю, рассчитывается с использованием коэффициентов Пирсона . [6] После того, как наиболее единомышленники найдены, их соответствующие рейтинги агрегируются, чтобы определить набор элементов, которые будут рекомендованы целевому пользователю.
Самым важным недостатком использования контекста в модели рекомендаций является необходимость иметь дело с более крупным набором данных, который содержит гораздо больше пропущенных значений по сравнению с матрицей рейтингов пользовательских элементов . Таким образом, подобно методам матричной факторизации , методы тензорной факторизации могут использоваться для уменьшения размерности исходных данных перед использованием любых методов, основанных на соседстве .
В отличие от традиционной модели основных СМИ, в которой мало редакторов, которые устанавливают правила, в социальных сетях с совместной фильтрацией может быть очень большое количество редакторов, а контент улучшается по мере увеличения числа участников. Такие сервисы, как Reddit , YouTube и Last.fm , являются типичными примерами мультимедиа на основе совместной фильтрации. [18]
Одним из сценариев применения совместной фильтрации является рекомендация интересной или популярной информации по мнению сообщества. Типичный пример: истории появляются на первой странице Reddit , поскольку за них «голосует» (положительно) сообщество. По мере того, как сообщество становится больше и разнообразнее, продвигаемые истории могут лучше отражать средний интерес членов сообщества.
Википедия — еще одно приложение совместной фильтрации. Добровольцы вносят свой вклад в энциклопедию, отделяя факты от лжи. [19]
Еще одним аспектом систем совместной фильтрации является способность генерировать более персонализированные рекомендации путем анализа информации о прошлой активности конкретного пользователя или истории других пользователей, которые, как считается, имеют схожие вкусы с данным пользователем. Эти ресурсы используются для профилирования пользователей и помогают сайту рекомендовать контент для каждого пользователя. Чем больше пользователь использует систему, тем лучше становятся рекомендации, поскольку система получает данные для улучшения своей модели этого пользователя.
Совместная система фильтрации не обязательно автоматически сопоставляет контент с предпочтениями. Если платформа не достигнет необычайно большого разнообразия и независимости мнений, одна точка зрения всегда будет доминировать над другой в конкретном сообществе. Как и в сценарии персонализированных рекомендаций, введение новых пользователей или новых элементов может вызвать проблему холодного запуска , поскольку в этих новых записях будет недостаточно данных для точной совместной фильтрации. Чтобы дать соответствующие рекомендации новому пользователю, система должна сначала изучить предпочтения пользователя, проанализировав прошлые действия по голосованию или рейтингу. Система совместной фильтрации требует, чтобы значительное количество пользователей оценило новый элемент, прежде чем его можно будет рекомендовать.
На практике многие коммерческие рекомендательные системы основаны на больших наборах данных. В результате матрица элементов пользователя, используемая для совместной фильтрации, может быть чрезвычайно большой и разреженной, что приводит к проблемам с выполнением рекомендаций.
Одной из типичных проблем, вызванных разреженностью данных, является проблема холодного запуска . Поскольку методы совместной фильтрации рекомендуют элементы на основе прошлых предпочтений пользователей, новым пользователям необходимо будет оценить достаточное количество элементов, чтобы система могла точно уловить их предпочтения и, таким образом, предоставить надежные рекомендации.
Аналогично, новинки также имеют ту же проблему. Когда в систему добавляются новые товары, они должны быть оценены значительным количеством пользователей, прежде чем их можно будет рекомендовать пользователям, вкусы которых совпадают с вкусами тех, кто их оценил. Проблема с новым элементом не влияет на рекомендации, основанные на содержании , поскольку рекомендация элемента основана на его дискретном наборе описательных качеств, а не на его рейтингах.
По мере роста числа пользователей и объектов традиционные алгоритмы CF будут испытывать серьезные проблемы с масштабируемостью . Например, при десятках миллионов клиентов и миллионах товаров алгоритм CF со сложностью уже слишком велик. Кроме того, многим системам необходимо немедленно реагировать на онлайн-требования и давать рекомендации всем пользователям, независимо от миллионов пользователей, при этом большинство вычислений происходит на машинах с очень большой памятью. [20]
Синонимы относятся к тенденции ряда одинаковых или очень похожих объектов иметь разные названия или записи. Большинство рекомендательных систем не способны обнаружить эту скрытую связь и поэтому относятся к этим продуктам по-разному.
Например, казалось бы, разные элементы «детский фильм» и «детский фильм» на самом деле относятся к одному и тому же элементу. Действительно, степень изменчивости в использовании описательных терминов выше, чем обычно предполагалось. [ нужна цитата ] Распространенность синонимов снижает эффективность рекомендаций систем CF. Тематическое моделирование (например, метод скрытого распределения Дирихле ) может решить эту проблему путем группировки разных слов, принадлежащих к одной и той же теме. [ нужна цитата ]
«Серая овца» относится к пользователям, чьи мнения не всегда совпадают или не совпадают с мнением какой-либо группы людей и, следовательно, не получают выгоды от совместной фильтрации. Паршивые овцы — это группа, чьи идиосинкразические вкусы делают рекомендации практически невозможными. Хотя это и является недостатком рекомендательной системы, неэлектронные рекомендатели также имеют большие проблемы в этих случаях, поэтому наличие паршивой овцы является приемлемым провалом. [ оспаривается ]
В системе рекомендаций, где каждый может давать оценки, люди могут давать много положительных оценок своим товарам и отрицательных оценок своим конкурентам. Часто системам совместной фильтрации необходимо принимать меры предосторожности, чтобы препятствовать таким манипуляциям.
Ожидается, что совместные фильтры увеличат разнообразие, поскольку они помогают нам открывать новые продукты. Однако некоторые алгоритмы могут непреднамеренно поступать наоборот. Поскольку совместные фильтры рекомендуют продукты на основе прошлых продаж или рейтингов, они обычно не могут рекомендовать продукты с ограниченными историческими данными. Это может создать для популярных продуктов эффект «богатейте еще богаче», аналогичный положительным отзывам . Эта предвзятость к популярности может помешать тому, что в противном случае было бы лучшим соответствием потребительских товаров. Исследование Wharton подробно описывает это явление, а также несколько идей, которые могут способствовать разнообразию и « длинному хвосту ». [21] Несколько алгоритмов совместной фильтрации были разработаны для содействия разнообразию и « длинному хвосту » [22] путем рекомендации новых, [23] неожиданных, [24] и случайных элементов. [25]
Матрица элементов пользователя является базовой основой традиционных методов совместной фильтрации и страдает от проблемы разреженности данных (т.е. холодного запуска ). Как следствие, за исключением матрицы «пользователь-элемент», исследователи пытаются собрать больше вспомогательной информации, чтобы повысить эффективность рекомендаций и разработать персонализированные рекомендательные системы. [28] Обычно существует две популярные вспомогательные информации: информация об атрибутах и информация о взаимодействии. Информация об атрибутах описывает свойства пользователя или элемента. Например, атрибут пользователя может включать общий профиль (например, пол и возраст) и социальные контакты (например, подписчиков или друзей в социальных сетях ); Атрибут товара означает такие свойства, как категория, бренд или контент. Кроме того, информация о взаимодействии относится к неявным данным, показывающим, как пользователи взаимодействуют с элементом. Широко используемая информация о взаимодействии содержит теги, комментарии или обзоры, историю просмотров и т. д. Вспомогательная информация играет важную роль в различных аспектах. Явные социальные связи, как надежный представитель доверия или дружбы, всегда используются при расчете сходства, чтобы найти похожих людей, которые разделяют интересы с целевым пользователем. [29] [30] Информация, связанная с взаимодействием — теги — рассматривается как третье измерение (в дополнение к пользователю и элементу) в расширенной совместной фильтрации для построения трехмерной тензорной структуры для изучения рекомендаций. [31]