Введение
Последовательности просмотров и добавлений в корзину позволяют описывать путь к покупке подробнее, чем частоты отдельных событий. Однако часто встречающийся шаблон может исчезнуть на следующем временном интервале или не содержать информации сверх самого факта добавления товара в корзину. Для поиска последовательностей разработаны GSP, PrefixSpan, SPADE/CM-SPADE и BIDE [2, с. 40-52; 3, с. 3569-3573; 4, с. 215-224; 7, с. 3-17; 8, с. 79-90; 10, с. 31-60]; связь этапов пользовательского маршрута с покупкой исследована в [6, с. 306-323].
Цель работы – сравнить алгоритмы по затратам и компактности результата, проверить устойчивость шаблонов и оценить их дополнительную связь с покупкой относительно одиночных действий. Объект – журналы событий электронной коммерции; предмет – частые последовательности, их вычислительные характеристики, переносимость во времени и статистические ассоциации с конверсией. Новым результатом является совместная оценка указанных критериев на одном журнале с независимым временным тестом.
Материалы и методы
Использован Retailrocket [5]: 2756101 событие за 3 мая – 18 сентября 2015 г. Сессии одного посетителя разделяли при паузе свыше 30 минут; токеном служила пара «view/addtocart:категория», восстановленная по известному к моменту события свойству товара. Категория определена для 76,1% кандидатных действий. Покупку исключили из последовательности и использовали как целевую метку; история покупающих сессий обрывается строго до первой transaction. Оставлены сессии минимум с двумя пригодными действиями. Набор распространялся как CC BY-NC-SA 4.0.
Всего сформировано 1761675 сессий, пригодных для анализа – 298523, включая 9821 покупку (3,29% только среди отобранных сессий). Хронологически выделены TRAIN: 206976 сессий, 6839 покупок (3,30%), и TEST: 91525 сессий, 2979 покупок (3,25%); 22 пограничные сессии исключены. Словарь TRAIN содержит 1736 токенов; невиданные ранее токены TEST получают отдельный код, без удаления сессий.
Шаблон P является упорядоченной, не обязательно смежной подпоследовательностью сессии s. Относительная поддержка sup(P;D) – доля сессий D, содержащих P хотя бы раз. Шаблон частый при sup ≥ σ, σ ∈ {1%; 0,5%; 0,1%}. Замкнутый шаблон не имеет строгой надпоследовательности с той же абсолютной поддержкой [8, с. 79-90]. Строгая временная устойчивость определена как sup(P;TEST) ≥ σ и sup(P;TEST) ≥ 0,7·sup(P;TRAIN). Коэффициент 0,7 – заранее выбранный исследовательский критерий, а не универсальный стандарт.
Для шаблона рассчитывались confidence = Pr(покупка | P) и lift = confidence / Pr(покупка). Оба показателя характеризуют ассоциации, но не причинность. Среди шаблонов с поддержкой TRAIN ≥ 0,1% и не менее чем 20 покупками выбраны 20 по нижней границе 95%-го интервала Уилсона для confidence (затем по lift и поддержке). На TEST полные последовательности сравнивали с непересекающимися группами с одиночным addtocart без P и с теми же действиями без заданного порядка. Разности оценены кластерным bootstrap по visitorid (1000 повторов, seed 42), p-value – перецентрированным bootstrap и поправкой Бенджамини–Хохберга (BH) для семейств из 10 и 9 сравнений [1, с. 289-300; 10, с. 31-60]. После обнаружения малых контролей дополнительно введён исследовательский критерий ≥ 20 контрольных сессий и ≥ 5 покупок; он не был заранее установленным критерием подтверждения.
GSP, PrefixSpan, CM-SPADE и BIDE+ запускали в SPMF 2.67a [3, с. 3569-3573] на Intel Core i5-11400H, Windows 11, Temurin Java 25, JVM -Xmx8g. При σ = 1% и 0,5% проводили по пять отдельных измерений после прогрева; приведены медианы времени полного процесса и пиковой резидентной памяти (RSS). При 0,1% выполнены лишь отдельные пилотные запуски PrefixSpan и BIDE+. Алгоритмы полного поиска дали одинаковые наборы и абсолютные поддержки на первых двух порогах; 785 шаблонов при 0,1% проверены независимым подсчётом.
Результаты и обсуждение
Таблица 1
Время полного процесса (с) / пиковая память RSS (МБ)
Алгоритм | 1% | 0,5% | 0,1%* |
GSP | 0,868 / 245,6 | 0,915 / 254,9 | – |
PrefixSpan | 0,770 / 118,3 | 0,615 / 118,5 | 0,566 / 119,1 |
CM-SPADE | 4,631 / 4678,3 | 4,558 / 4757,3 | – |
BIDE+ | 0,772 / 119,7 | 0,715 / 121,2 | 0,878 / 126,0 |
Примечание: при 1% и 0,5% – медианы пяти запусков; *при 0,1% – одиночные пилотные запуски, GSP и CM-SPADE не исследованы. Внутреннее время CM-SPADE в SPMF (0,208 и 0,213 с) меньше полного времени запуска Java.
GSP, PrefixSpan и CM-SPADE нашли по 31 шаблону при 1% и по 102 при 0,5%. PrefixSpan и BIDE+ нашли по 785 при 0,1%; количество замкнутых во всех случаях совпало с полным набором (сокращение BIDE+ – 0%). Максимальная длина последовательностей возросла с 3 до 5 и 10. Результаты не свидетельствуют об универсальном преимуществе одного метода: тестировались один набор и одна вычислительная среда.

Рис. Число шаблонов в зависимости от минимальной поддержки
Таблица 2
Устойчивость шаблонов на последующем временном интервале
MinSup | Шаблонов TRAIN | Часты в TEST | Строго устойчивы | Доля, % |
1% | 31 | 22 | 21 | 67,7 |
0,5% | 102 | 82 | 77 | 75,5 |
0,1% | 785 | 629 | 565 | 72,0 |
На пороге 0,1% 565 из 785 шаблонов сохранили относительную поддержку в пределах заданного критерия; восемь в TEST отсутствовали. Медианное отношение поддержки TEST/TRAIN составило 0,980. Частота в TRAIN, таким образом, не гарантирует временной устойчивости.
Из 785 шаблонов для 777 определены тестовые confidence и lift (восемь имели нулевую поддержку). После BH на основе сессионных таблиц сопряжённости обнаружены 115 значимых положительных и 42 отрицательные ассоциации при α = 0,05; остальные 620 незначимы. Эти тесты не полностью учитывают повторные сессии посетителя. Например, view:1542 – addtocart:1542 на TEST наблюдался в 104 сессиях, 39 завершились покупкой (confidence 37,5%, lift 11,5; 95%-й интервал Уилсона 28,8–47,1%). Для view:1051 – view:1051 lift на TEST составил 0,47.
Сравнение полного маршрута с одиночным addtocart оцениваемо для 10 из 20 выбранных по TRAIN шаблонов (остальные 10 – одиночные addtocart). После BH три разности значимы: view:959 – addtocart:959 (p = 0,014985), view:1051 – addtocart:1051 (p = 0,009990) и view:5 – addtocart:5 (p = 0,049950). Последнее сравнение исключено дополнительным порогом: в контроле 21 сессия и только две покупки. Ниже показаны два оставшихся исследовательских контраста.
Таблица 3
Сопоставление полной последовательности с одиночным addtocart (TEST)
Шаблон | P: сессии/покупки | Контроль: сессии/покупки | Δ, п.п. (95% ДИ) | p после BH |
view:959 – addtocart:959 | 235/70 | 49/6 | 17,54 (6,74–28,41) | 0,014985 |
view:1051 – addtocart:1051 | 290/72 | 64/5 | 17,02 (7,22–25,30) | 0,009990 |
Примечание: группы не пересекаются; Δ – разность долей покупок. Контроль второго шаблона содержит ровно пять покупок. Значимость по BH здесь не означает подтверждения, предопределённого до анализа: фильтр малых групп введён после их просмотра.
Четыре из девяти сравнений именно порядка действий прошли BH, но их контрольные группы содержали 0–2 покупки: соответственно 9/0, 22/1, 17/1 и 40/2. Ни одно не удовлетворило дополнительному порогу надёжности. Проверка по первым K = 5 действиям также не выявила ни одного положительного контраста, интервал которого целиком выше нуля (в TRAIN при K = 5 – 32682 сессии, 2168 покупок). Это показывает чувствительность ассоциаций к горизонту наблюдения, а не доказанный эффект порядка.
Заключение
Число найденных последовательностей увеличилось с 31 до 785 при снижении порога поддержки от 1% до 0,1%; строго устойчивыми оказались 565 шаблонов. BIDE+ на данном журнале не сократил набор, а PrefixSpan использовал существенно меньше памяти, чем CM-SPADE на измеренных порогах. Значительная часть шаблонов связана с покупкой, но только два из десяти сравнений с одиночным addtocart прошли одновременно BH и введённый после анализа порог размера контроля; независимый вклад порядка не подтверждён. Интервалы положительных разностей не воспроизведены при K = 5. Ограничения: один журнал 2015 года, фильтрация коротких сессий и отсутствующих категорий, зависимость сессий и различная длина истории до покупки. Причинные выводы не делаются.
.png&w=384&q=75)
.png&w=640&q=75)