1 Цель работы
Одной из наиболее распространённых задач анализа данных является определение часто встречающихся наборов объектов в большом множестве наборов. Впервые эта задача была предложена как поиск ассоциативных правил для нахождения типичных шаблонов покупок, совершаемых в супермаркетах, поэтому иногда ее еще называют анализом рыночной корзины (market basket analysis).
Решение задачи поиска ассоциативных правил, как и любой задачи, сводится к обработке исходных данных и получению результатов. Результаты, получаемые при решении данной задачи принято представлять в виде ассоциативных правил. В связи с этим в их поиске выделяют два этапа:
нахождение всех частых наборов объектов.
генерация ассоциативных правил из найденных частых наборов объектов.
Пусть E
= {e1,
e2,
e3,
...
en}
– множество (набор) товаров, называемых
элементами. Пусть D
– множество
транзакций,
где каждая транзакция T
– это набор элементов из E,
T
E.
Каждая транзакция
представляет собой бинарный вектор,
где t[k]=1, если ik элемент
присутствует в транзакции, иначе t[k]=0.
Таким образом транзакция
T
содержит X,
некоторый набор элементов из Е,
если X
T.
Ассоциативным правилом называется
импликация X
Y,
где X
Е,
Y
Е
и X
Y=
.
Правило X
Y
имеет поддержку s (support), если s% транзакций
из D,
содержат X
Y,
supp(X
Y)
= supp(X
Y). Достоверность
правила
показывает какова вероятность того,
что из X
следует Y.
Правило X
Y
справедливо с достоверностью (confidence)
c, если c% транзакций из D,
содержащих X,
также содержат Y,
conf(X
Y)
= supp(X
Y)/supp(X
).
В данной работе предлагается использовать алгоритм Apriori, ставший первым эффективным алгоритмом поиска частых множеств признаков, с учетом также принадлежности пользователя к заранее определенной группе. Алгоритм Apriori является поуровневым, использует стратегию поиска в ширину и осуществляет его снизу–вверх. В алгоритме используются две структуры данных: Ci – для хранения множества кандидатов в частые множества признаков длины i и Fi – для хранения частых множеств признаков длины i. Каждая структура имеет два поля – itemset, сохраняющее множество признаков, и support, которое хранит величину поддержки этого множества признаков.
В данном случае необходимо учесть возможность отслеживания потребительских привычек всех покупателей и использовать собранную информацию, чтобы предложить товары, которые их могут заинтересовать. К примеру, предложить фильмы, которые потребителю, возможно, понравятся, хотя раньше он покупал только книги. Аналогично некоторые сайты по продаже билетов на концерты анализируют, что пользователи посещали раньше, и анонсируют предстоящие концерты, которые могут быть им интересны.
Таким образом, выявление закономерностей с использованием ассоциативных правил для генерации рекомендаций пользователям информационного портала является достаточно актуальной задачей, что также подтверждается экспериментальными исследованиями.
2 Анализ алгоритмов ассоциативных правил для создания рекомендаций пользователям информационного портала и постановка задачи
2.1 Анализ алгоритмов ассоциативных правил
Многие предприятия накапливают большие объемы данных из повседневных операций. Например, огромным количеством данных, собираемых ежедневно в кассах, является информация о покупках клиентов. Таблица 2.1 показывает пример таких данных, известный как анализ рыночной корзины. Каждая строка в таблице соответствует транзакции, которая содержит уникальный идентификатор TID и набор элементов купленных данным клиентом. Продавцы заинтересованы в анализе данных, чтобы узнать о покупательском поведении своих клиентов. Такая ценная информация может быть использована для поддержки различных бизнес–приложений, таких как рыночное развитие, управление товаром и взаимоотношение с клиентами. Это всё называется анализ ассоциаций, которые позволяют обнаруживать интересные отношения, скрытые в больших по объёму выборках данных. Обнаруженные отношения могут быть представлены в виде ассоциативных правил или наборов часто используемых элементов. Например, следующее правило может быть извлечено из набора данных, показанных в таблице 2.1
Таблица 2.1 – Пример транзакций рыночной корзины:
TID |
Приобретенные покупки |
1 |
Хлеб, молоко, печенье |
2 |
Молоко, сметана |
3 |
Молоко, хлеб, сметана, печенье |
4 |
Хлеб, молоко, сметана |
Правило {} Молоко → {} хлеб поясняет, что существует тесная связь между продажей молока и хлеба, многие клиенты, которые покупают молоко, также покупают и хлеб. Продавец может использовать этот тип правил для определения новых возможностей в продаже своей продукции потребителям.
Помимо данных потребительской корзины, ассоциативный анализ применим также к другим областям, как биоинформатика, медицинская диагностика, Web–mining и научный анализ данных. При анализе данных Земли, например, ассоциация модели, может выявить интересные связи между океаном, землёй, и атмосферными процессами. Такая информация может помочь ученым добиться лучшего понимания того, как различные элементы Земли взаимодействуют друг с другом. Хотя такие методы, представленные здесь, как правило, применяются на более широком спектре наборов данных, в иллюстративных целях.
Есть два ключевых вопроса, которые необходимо учитывать при применении ассоциации анализа данных потребительской корзины. Во-первых, обнаружение моделей из большого набора данных транзакций может занять много времени на вычисления. Во-вторых, некоторые из обнаруженных закономерностей потенциально ложные, поскольку они могут происходить случайным образом. Далее рассмотрим разъяснение основных принципов объединения анализа и алгоритмов, используемых для эффективного поиска таких закономерностей. А также оценим обнаружение закономерностей с целью предотвращения образования ложных результатов.
Ассоциативное правило – это выражение вида ab, где a и b – множества значений атрибутов базы даннях. Ассоциативные правила имеют следующий вид: если (условие), то (результат), где условие – обычно не логическое выражение, а набор объектов из множества I, с которым связаны (ассоциированы) объекты, включенные в результат данного правила. Например, ассоциативное правило: «если (молоко, масло), то (хлеб)» означает, что если потребитель покупает молоко и масло, то он покупает и хлеб. Основным достоинством ассоциативных правил является их лёгкое восприятие человеком и простая интерпретация языками программирования. Однако, они не всегда полезны. Выделяют три вида правил:
– полезные правила – содержат действительную информацию, которая ранее была неизвестна, но имеет логическое объяснение. Такие правила могут быть использованы для принятия решений, приносящих выгоду;
– тривиальные правила – содержат действительную и легко объяснимую информацию, которая уже известна. Такие правила не могут принести пользу, потому что отражают или известные законы в исследуемой области, или результаты прошлой деятельности. Иногда такие правила могут использоваться для проверки выполнения решений, принятых на основании предыдущего анализа;
– непонятные правила – содержат информацию, которая не может быть объяснена. Такие правила могут быть получены на основе аномальных значений, или сугубо скрытых знаний. Напрямую такие правила нельзя использовать для принятия решений, их необъяснимость может привести к непредсказуемым результатам. Для лучшего понимания требуется дополнительный анализ.
Ассоциативные правила строятся на основе частых наборов. Так правила, построенные на основании набора F, являются возможными комбинациями объектов, входящих в него. Например, для набора {масло, вода, орехи}, могут быть построены следующие правила:
если (масло), то (вода); если (масло), то (орехи); если (масло), то (вода, орехи);
если (вода), то (масло); если (вода), то (орехи); если (вода), то (масло, орехи);
Таким образом, количество ассоциативных правил может быть очень большим и трудновоспринимаемым для человека. К тому же, не все из построенных правил несут в себе полезную информацию. Для оценки их полезности вводятся следующие величины.
Поддержка (support) – показывает, какой процент транзакций поддерживает данное правило. Так как правило строится на основании набора, то, значит, правило X=>Y имеет поддержку, равную поддержке набора F, который составляют X и Y:
(2.1)
Очевидно, что правила, построенные на основании одного и того же набора, имеют одинаковую поддержку, например, поддержка Supp(если (вода, масло), то (орехи) = Supp(вода, масло, орехи) = 0,5.
Достоверность (confidence) – показывает вероятность того, что из наличия в транзакции набора X следует наличие в ней набора Y. Достоверностью правила X=>Y является отношение числа транзакций, содержащих X и Y, к числу транзакций, содержащих набор Х:
(2.2)
Чем больше достоверность, тем правило лучше, причем у правил, построенных на основании одного и того же набора, достоверность будет разная, например:
Conf(если (вода), то (орехи)) = 2/3;
Conf(если (орехи), то (вода)) = 2/3;
Conf(если (вода, масло), то (орехи)) = 1;
Conf(если (вода), то (орехи, масло)) = 2/3.
Достоверность не позволяет определить полезность правила. Если процент наличия в транзакциях набора Y при условии наличия в нем набора Х меньше, чем процент безусловного наличия набора Y:
(2.3)
Вероятность случайно угадать наличие в транзакции набора Y больше, чем предсказать это с помощью правила X=>Y. Для исправления такой ситуации вводится мера – улучшение.
Улучшение (improvement) – показывает, полезнее ли правило случайного угадывания. Улучшение правила является отношением числа транзакций, содержащих наборы X и Y, к произведению количества транзакций, содержащих набор Х, и количества транзакций, содержащих набор Y:
(2.4)
Например, impr(если (вода, масло), то (орехи) = 0,5/(0,5*0,5) = 2. Если улучшение больше единицы, то это значит, что с помощью правила предсказать наличие набора Y вероятнее, чем случайное угадывание, если меньше единицы, то наоборот.
В последнем случае можно использовать отрицательное правило, правило, которое предсказывает отсутствие набор Y: X => не Y.
2.1.1 Алгоритм Apriori
Современные базы данных имеют очень большие размеры, достигающие гига- и терабайтов, и тенденцию к дальнейшему увеличению. И поэтому, для нахождения ассоциативных правил требуются эффективные масштабируемые алгоритмы, позволяющие решить задачу за приемлемое время. Одним из таких алгоритмов является алгоритм Apriori.
Для того, чтобы было возможно применить алгоритм, необходимо провести предобработку данных: во–первых, привести все данные к бинарному виду; во–вторых, изменить структуру данных. Обычный вид базы данных транзакций изображён в таблице 2.2:
Таблица 2.2 – Пример базы даннях транзакций
Номер транзакции |
Наименование элемента |
Количество |
1001 |
А |
2 |
1001 |
D |
3 |
1001 |
E |
1 |
1002 |
А |
2 |
1002 |
F |
1 |
1003 |
B |
2 |
1003 |
A |
2 |
1003 |
C |
2 |
Нормализованный вид изображён в таблице 2.3.
Таблица 2.3 – База данных после нормализации
TID |
A |
B |
C |
D |
E |
F |
G |
H |
I |
K |
1001 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1002 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1003 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
Количество столбцов в таблице равно количеству элементов, присутствующих в множестве транзакций D. Каждая запись соответствует транзакции, где в соответствующем столбце стоит 1, если элемент присутствует в транзакции, и 0 в противном случае. Заметим, что исходный вид таблицы может быть отличным от приведенного в таблице 2.3. Главное, чтобы данные были преобразованы к нормализованному виду, иначе алгоритм не применим. Кроме того, все элементы должны быть упорядочены в алфавитном порядке (если это числа, они должны быть упорядочены в числовом порядке).
Алгоритм Apriori работает в два этапа: на первом шаге необходимо найти часто встречающиеся наборы элементов, а затем, на втором, извлечь из них правила. Количество элементов в наборе будем называть размером набора, а набор, состоящий из k элементов, – k-элементным набором. На первом шаге алгоритма подсчитываются 1-элементные часто встречающиеся наборы. Для этого необходимо пройтись по всему набору данных и подсчитать для них поддержку, т.е. сколько раз встречается в базе. Следующие шаги будут состоять из двух частей: генерации потенциально часто встречающихся наборов элементов (их называют кандидатами) и подсчета поддержки для кандидатов.
Описанный выше алгоритм можно записать в виде следующего псевдокода:
1. F1 = {часто встречающиеся 1–элементные наборы}
2. для (k=2; Fk–1 <> ; k++) {
3. Ck = Apriorigen(Fk–1) // генерация кандидатов
4.
для всех транзакций t
T
{
5. Ct = subset(Ck, t) // удаление избыточных правил
6. для всех кандидатов c Ct
7. c.count ++
8. }
9. Fk = { c Ck | c.count >= minsupport} // отбор кандидатов
10. Результат U Fk
Опишем функцию генерации кандидатов. На это раз нет никакой необходимости вновь обращаться к базе данных. Для того, чтобы получить k-элементные наборы, воспользуемся (k–1)-элементными наборами, которые были определены на предыдущем шаге и являются часто встречающимися.
Исходный набор хранится в упорядоченном виде. Генерация кандидатов также будет состоять из двух шагов:
– объединение. Каждый кандидат Ck будет формироваться путем расширения часто встречающегося набора размера (k–1) добавлением элемента из другого (k–1)-элементного набора. Приведем алгоритм этой функции Apriorigen в виде небольшого SQL-подобного запроса:
INSERT into Ck SELECT p.item1, p.item2, …, p.itemk–1, q.itemk–1 FROM Fk–1 p, Fk–1 q
WHERE p.item1= q.item1, p.item2 = q.item2, … , p.itemk–2 = q.itemk–2, p.itemk–1 < q.itemk–1;
– удаление
избыточных правил. На основании свойства
антимонотонности, следует удалить все
наборы c
Ck
если хотя бы одно из его (k–1) подмножеств
не является часто встречающимся.
После генерации кандидатов следующей задачей является подсчет поддержки для каждого кандидата. Очевидно, что количество кандидатов может быть очень большим и нужен эффективный способ подсчета. Самый тривиальный способ – сравнить каждую транзакцию с каждым кандидатом. Но это далеко не лучшее решение. Гораздо быстрее и эффективнее использовать подход, основанный на хранении кандидатов в хэш–дереве. Внутренние узлы дерева содержат хэш–таблицы с указателями на потомков, а листья – на кандидатов. Это дерево нам пригодится для быстрого подсчета поддержки для кандидатов.
Хэш–дерево строится каждый раз, когда формируются кандидаты. Первоначально дерево состоит только из корня, который является листом, и не содержит никаких кандидатов-наборов. Каждый раз, когда формируется новый кандидат, он заносится в корень дерева и так до тех пор, пока количество кандидатов в корне-листе не превысит некоего порога. Как только количество кандидатов становится больше порога, корень преобразуется в хэш–таблицу, становится внутренним узлом, и для него создаются потомки-листья. И все примеры распределяются по узлам-потомкам согласно хэш-значениям элементов, входящих в набор, и т.д. Каждый новый кандидат хэшируется на внутренних узлах, пока он не достигнет первого узла-листа, где он и будет храниться, пока количество наборов опять же не превысит порога.
Хэш–дерево с кандидатами-наборами построено, теперь, используя хэш–дерево, легко подсчитать поддержку для каждого кандидата. Для этого нужно 'пропустить' каждую транзакцию через дерево и увеличить счетчики для тех кандидатов, чьи элементы также содержатся и в транзакции, т.е. Ck Ti = Ck. На корневом уровне хэш-функция применяется к каждому элементу из транзакции. Далее, на втором уровне, хэш-функция применяется ко вторым элементам. На k-уровне хэшируется k-элемент. И так до тех пор, пока не достигнем листа. Если кандидат, хранящийся в листе, является подмножеством рассматриваемой транзакции, тогда увеличиваем счетчик поддержки этого кандидата на единицу.
После того, как каждая транзакция из исходного набора данных 'пропущена' через дерево, можно проверить удовлетворяют ли значения поддержки кандидатов минимальному порогу. Кандидаты, для которых это условие выполняется, переносятся в разряд часто встречающихся. Кроме того, следует запомнить и поддержку набора, она нам пригодится при извлечении правил. Эти же действия применяются для нахождения (k+1)-элементных наборов и т.д. После того как найдены все часто встречающиеся наборы элементов, можно приступить непосредственно к генерации правил.
Извлечение правил – менее трудоемкая задача. Во-первых, для подсчета достоверности правила достаточно знать поддержку самого набора и множества, лежащего в условии правила. Например, имеется часто встречающийся набор {A, B, C} и требуется подсчитать достоверность для правила AB C. Поддержка самого набора известна, но и его множество {A, B}, лежащее в условии правила, также является часто встречающимся в силу свойства антимонотонности, и значит его поддержка нам известна. Тогда легко можно подсчитать достоверность. Это избавляет от нежелательного просмотра базы транзакций, который потребовался в том случае, если бы это поддержка была неизвестна.
Чтобы извлечь правило из часто встречающегося набора F, следует найти все его непустые подмножества. И для каждого подмножества s можно сформулировать правило s (F – s) в том случае, если достоверность правила conf(s (F – s)) = supp(F)/supp(s) не меньше порога minconf.
Заметим, что числитель остается постоянным. Тогда достоверность имеет минимальное значение, если знаменатель имеет максимальное значение, а это происходит в том случае, когда в условии правила имеется набор, состоящий из одного элемента. Все супермножества данного множества имеют меньшую или равную поддержку и, соответственно, большее значение достоверности. Это свойство может быть использовано при извлечении правил. Если начнем извлекать правила, рассматривая сначала только один элемент в условии правила, и это правило имеет необходимую поддержку, тогда все правила, где в условии стоят супермножества этого элемента, также имеют значение достоверности выше заданного порога. Например, если правило A BCDE удовлетворяет минимальному порогу достоверности minconf, тогда AB CDE также удовлетворяет. Для того, чтобы извлечь все правила используется рекурсивная процедура. Важное замечание: любое правило, составленное из часто встречающегося набора, должно содержать все элементы набора. Например, если набор состоит из элементов {A, B, C}, то правило A B не должно рассматриваться.
2.1.2 Алгоритм AIS
Первый алгоритм поиска ассоциативных правил, называвшийся AIS [6], (предложенный Agrawal, Imielinski and Swami) был разработан сотрудниками исследовательского центра IBM Almaden в 1993 году. С этой работы начался интерес к ассоциативным правилам.
Узким местом в алгоритме apriori является процесс генерации кандидатов в популярные предметные наборы. Например, если база данных (БД) транзакций содержит 100 предметов, то потребуется сгенерировать 2100~1030sup> кандидатов. Таким образом, вычислительные и временные затраты, которые нужны на их обработку, могут быть неприемлемыми. Кроме этого, алгоритм apriori требует многократного сканирования базы данных транзакций, а именно столько раз, сколько предметов содержит самый длинный предметный набор. Поэтому был предложен ряд алгоритмов, которые позволяют избежать генерации кандидатов и сократить требуемое число сканирований набора данных.
В алгоритме AIS кандидаты множества наборов генерируются и подсчитываются «на лету», во время сканирования базы данных.
2.1.3 Алгоритм SETM
Создание этого алгоритма было мотивировано желанием использовать язык SQL для вычисления часто встречающихся наборов товаров. Как и алгоритм AIS, SETM также формирует кандидатов «на лету», основываясь на преобразованиях базы данных. Чтобы использовать стандартную операцию объединения языка SQL для формирования кандидата, SETM отделяет формирование кандидата от их подсчета.
Недостаток алгоритмов AIS и SETM – излишнее генерирование и подсчет слишком многих кандидатов, которые в результате не оказываются часто встречающимися. Для улучшения их работы был предложен алгоритм Apriori.
Работа данного алгоритма состоит из нескольких этапов, каждый из этапов состоит из следующих шагов:
– формирование кандидатов;
– подсчет кандидатов.
Формирование кандидатов (candidate generation) – этап, на котором алгоритм, сканируя базу данных, создает множество i-элементных кандидатов (i – номер этапа). На этом этапе поддержка кандидатов не рассчитывается.
Подсчет кандидатов (candidate counting) – этап, на котором вычисляется поддержка каждого i-элементного кандидата. Здесь же осуществляется отсечение кандидатов, поддержка которых меньше минимума, установленного пользователем (min_sup). Оставшиеся i-элементные наборы называем часто встречающимися.
Рассмотрим работу алгоритма Apriori на примере базы данных D. Иллюстрация работы алгоритма приведена на рисунке 2.1. Минимальный уровень поддержки равен 3.
Рисунок 2.1 – Работа алгоритма SITM
На первом этапе происходит формирование одноэлементных кандидатов. Далее алгоритм подсчитывает поддержку одноэлементных наборов. Наборы с уровнем поддержки меньше установленного, то есть 3, отсекаются. В нашем примере это наборы e и f, которые имеют поддержку, равную 1. Оставшиеся наборы товаров считаются часто встречающимися одноэлементными наборами товаров: это наборы a, b, c, d. Далее происходит формирование двухэлементных кандидатов, подсчет их поддержки и отсечение наборов с уровнем поддержки, меньшим 3. Оставшиеся двухэлементные наборы товаров, считающиеся часто встречающимися двухэлементными наборами ab, ac, bd, принимают участие в дальнейшей работе алгоритма. Если смотреть на работу алгоритма прямолинейно, на последнем этапе алгоритм формирует трехэлементные наборы товаров: abc, abd, bcd, acd, подсчитывает их поддержку и отсекает наборы с уровнем поддержки, меньшим 3. Набор товаров abc может быть назван часто встречающимся. Однако алгоритм Apriori уменьшает количество кандидатов, отсекая, которые заведомо не могут стать часто встречающимися, на основе информации об отсеченных кандидатах на предыдущих этапах работы алгоритма.
Отсечение кандидатов происходит на основе предположения о том, что у часто встречающегося набора товаров все подмножества должны быть часто встречающимися. Если в наборе находится подмножество, которое на предыдущем этапе было определено как нечасто встречающееся, этот кандидат уже не включается в формирование и подсчет кандидатов.Так наборы товаров ad, bc, cd были отброшены как нечасто встречающиеся, алгоритм не рассматривал набор товаров abd, bcd, acd.
При рассмотрении этих наборов формирование трехэлементных кандидатов происходило бы по схеме, приведенной в верхнем пунктирном прямоугольнике. Поскольку алгоритм априори отбросил заведомо нечасто встречающиеся наборы, последний этап алгоритма сразу определил набор abc как единственный трехэлементный часто встречающийся набор (этап приведен в нижнем пунктирном прямоугольнике).
Алгоритм Apriori рассчитывает также поддержку наборов, которые не могут быть отсечены априори. Это так называемая негативная область (negative border), к ней принадлежат наборы–кандидаты, которые встречаются редко, их самих нельзя отнести к часто встречающимся, но все подмножества данных наборов являются часто встречающимися.
2.2 Анализ алгоритмов рекомендаций
На сегодняшний день системы рекомендаций завоевывают все большую популярность, помогая пользователям из всего обилия информационных ресурсов выбирать действительно нужные и интересные. Они являются альтернативой существующим поисковым системам, так как предоставляют пользователю возможность обнаружить объекты, которые не могут быть найдены с помощью традиционных поисковых алгоритмов.
Много современных веб–сайтов используют веб–рекомендации для увеличения удобства пользования, удовлетворенности потребителя и коммерческой прибыли. Много алгоритмов были разработаны для генерации рекомендаций, применяя различные подходы статистического анализа данных к некоторой доступной им информации, например на характеристиках текущей страницы, продукта, веб–пользователя. Однако, до сих пор никакой алгоритм не использует преимущества всех доступных источников знаний и никакой алгоритм не имеет превосходства над всеми другими. Поэтому, потребность в гибридных подходах, которые комбинируют преимущества разных алгоритмов очевидна.
Для получения рекомендаций пользователю необходимо создать свой профиль предпочтений в рекомендательной системе путем оценки ряда объектов. В дальнейшем система сравнивает однотипные данные в профилях пользователей и автоматически предоставляет набор потенциально интересных ресурсов для каждого участника сети.
Рисунок 2.2 – Рекомендательный сервис
2.2.1 Алгоритм рекомендаций Фурье–анализа
Алгоритм рекомендаций, основывается на сравнении профилей пользователей рекомендательных систем с помощью Фурье–анализа. В общем случае профиль предпочтений пользователя можно представить в виде изображения, которое формируется на основе интегральных пользовательских оценок объектов, соответствующих определенным интересам. Графически профиль пользователя можно представить следующим образом:
Рисунок 3.2 – Профиль пользователя
Лучи L1, L2,…,Ln обозначают однозначно определенные интересы пользователя, а M(L1), M(L2), …, M(Ln) – интегральные оценки всех объектов, относящихся к определенному интересу. Данное изображение может быть описано некоторой функцией g. Аналогичным образом можно описать профиль другого пользователя – обозначим его как h.
Для сравнения и выявления степени похожести профилей целесообразно воспользоваться прямым и обратным преобразованием Фурье.
В данном случае изображение представляет собой двумерный сигнал, спектром которого также будет являться двумерный сигнал.
На основе степени похожести профилей предпочтений целесообразно предоставить каждому конкретному пользователю определенный набор рекомендательных групп. Группа, члены которой имеют наиболее схожие профили предпочтений с профилем конкретного пользователя, будет являться первоочередной при формировании рекомендаций. Группа экспертов, чьи рекомендации будут учитываться во вторую очередь, будет отличаться меньшей степенью похожести профилей участников на профиль конкретного пользователя. Соответственно, при переходе к группе экспертов, степень похожести профилей предпочтений которых будет наименьшей по сравнению с другими рекомендательными группами, значимость предоставляемых рекомендаций также будет наименьшей. При составлении списка рекомендаций учитывается значимость каждой рекомендации на основании того, от участника какой группы экспертов она получена – от более значимой к менее значимой.
Поскольку оцениваемое пользователем суммарное количество объектов будет постепенно увеличиваться, будет меняться профиль предпочтений и, соответственно, его изображение. Поэтому необходимо обеспечить возможность их повторного сравнения, как только будет изменен профиль пользователя или профиль входящего в одну из групп эксперта. Таким образом, возможны изменения составов групп рекомендателей и получаемых рекомендаций. Механизм работы алгоритма рекомендаций представлен на рисунке 2.3
Рисунок 2.3 – Механизм работы алгоритма рекомендаций
2.2.2 Алгоритм рекомендаций, использованный в дипломе
В этом разделе представлен новый подход, объединяющий многие проанализированные алгоритмы. Подход использует центральную базу данных рекомендаций для того, чтобы сохранить рекомендации, получаемые из различных алгоритмов, и применяет методы обучения, чтобы непрерывно оптимизировать сохраненные рекомендации.
Оптимизация рекомендаций основана на том, насколько они полезны пользователям и веб-сайту, то есть, как охотно пользователи щелкают по ним, или сколько прибыли они приносят. Необходимостью для оптимизационного подхода является то, что популярность и уместность отдельных рекомендаций не всегда хорошо предсказывается системами рекомендаций. Информация о веб-сайте и пользователях представляется в базе данных рекомендаций в форме графов онтологии. Это позволяет семантически обогащать рекомендации и вводить знание из дополнительных источников. Это также помогает для адаптации системы к различным типам веб-сайтов.
Рисунок 2.4 – Архитектура системы рекомендаций.
На рисунке 2.4 изображена архитектура системы рекомендаций. Веб-сайт взаимодействует с веб-пользователем, предоставляет рекомендации и учитывает ответную реакцию. Веб-хранилище данных хранит информацию о контенте веб–сайта (например, продукты и каталог продукции), пользователях и журналах использования, сгенерированных веб-сервером или сервером приложений. Это служит источником информации для системы рекомендации алгоритмов, генераторов онтологии и позволяет оценивать OLAP данные использования и эффективности рекомендаций. База данных рекомендации хранит семантическую информацию в форме трех направленных нециклических графиков онтологии (для контента веб-сайта, веб-пользователей и времени) и рекомендации в форме правил. Набор генераторов онтологии ответственен за генерирование графов онтологии. Набор алгоритмов генерирует рекомендации, используя данные от веб-хранилища данных.
Графы онтологии и правила рекомендации могут также быть созданы и отредактированы вручную. Оптимизатор совершенствует базу данных рекомендации, основанную на обратной связи, полученной от веб–сайта, используя обучение. В нашей системе рекомендации отличаем цикл генерации и цикл оптимизации. Цикл генерации выполняется равномерно. Это включает генерирование/обновление онтологии и правил рекомендации, использующих информацию о контенте и недавнюю информацию об использовании от веб-хранилища данных. Цикл оптимизации выполняется непрерывно, выбирает и представляет рекомендации из базы данных. Кроме того, учитывается обратная связь, то есть пользовательские реакции на представленные рекомендации. Оптимизатор использует эту информацию, чтобы совершенствовать рекомендации в базе данных и влиять на выбор будущих рекомендаций.
2.3 Постановка задачи
В данной работе рассматривается процесс выявления закономерностей с использованием ассоциативных правил для генерации рекомендаций пользователям информационного портала. В данной работе предлагается использовать алгоритм Apriori, ставший первым эффективным алгоритмом поиска частых множеств признаков, с учетом также принадлежности пользователя к заранее определенной группе.
Постановка задачи формулируется следующим образом: необходимо разработать метод определения закономерностей с использованием ассоциативных правил для генерации рекомендаций пользователям информационного портала.
Таким образом, для решения поставленной задачи необходимо:
проанализировать существующие подходы для генерации ассоциативных правил;
проанализировать методы генерации рекомендаций;
разработать метод определения закономерностей с использованием ассоциативных правил для генерации рекомендаций пользователям информационного портала.
