Уважаемые слушатели, сегодня мы рассмотрим очередную тему, которая связана с довольно интересным классом задач, который называется «Задача маркетинговой корзины». И смысл этой задачи довольно простой, у нас имеется, например, множество чеков в этих чеках у нас представлены купленные нашими покупателями, какие-то товары. Возникает вопрос. Исходя из этой информации, какие товары наиболее часто продаются совместно? Зачем? На такие товары можно определить, например, одинаковые цены, на такие товары можно определить общую цену и сделать из них, какие-то товарные наборы. Такие товары можно, с помощью дополнительных всяких методов превратить в сопутствующие и использовать их для рекомендательных систем. То есть, есть так называемые товары-«якоря», которые продаются наиболее часто, которые привлекают, собственно, покупателя и к этим «якорям» покупают сопутствующие товары. Вот задача такие сопутствующие товары найти, может быть решена в том числе с помощью анализа рыночной корзины или «market basket analysis» задачи. Как эта задача решается? Методов довольно много, но почти все эти методы так или иначе основана на понятии частых наборов. Что такое частый набор? По сути говоря, это и есть набор из наших продуктов, которые наиболее часто встречаются во всех наших чеках. Вопрос основной, как эти товары выделить? Существует алгоритм, который был введен в 90-х годах, в начале и от этого алгоритма уже появилась, собственно, и задача, как таковая, и появились ответвления самих методов более оптимальных, которые используются в настоящее время. Алгоритм этот называется «априори», и этот априори, по сути говоря, занимается полным перебором всех возможных комбинаций наших продуктов и поиском их частот, но при этом используя определенный нюанс, который позволяет все-таки полный перебор сократить немножко и таким образом вычислительную сложность алгоритма снизить. Тем не менее все дальнейшие алгоритмы, все дальнейшие работы основаны именно вот на этом подходе. Теперь давайте немножко погорим, собственно, о частых наборах, частотах и что именно вообще имеет смысл здесь собирать, мерить и так далее. Итак, первое понятие, о чем идет речь, — это чек или транзакция. Транзакция, исходя из самой задачи, это по сути покупка, у которой есть какой-то идентификатор, иногда есть еще и временной фактор, для того чтобы последовательность покупок отслеживать, но предположим, что сейчас нам это не очень важно. Итак, есть у транзакции идентификатор и в этой транзакции у нас присутствуют какие-то товары из доступного нам списка. Первое, что нужно в целом для этой задачи определить, это сами наборы. Наборы можно определить просто путем комбинаций всех товаров со всеми, а дальше поиском этих товаров в том, что у нас имеется. Для того чтобы оценить качество такого частотного набора, набора из продуктов А, В, С, из серии водка, селедка и жвачка. Что качество из себя представляет? Первое. Если мы рассмотрим все наши транзакции, допустим, их N, и наш этот набор встречается в этих транзакциях М — раз, то М к N называется «поддержкой» или «support». Поддержка — это первая метрика, которую имеет смысл считать, насколько часто наша транзакция, конкретная, конкретный набор частый, вообще распространен среди всех наших транзакций. Понятно, что если это событие редкое, то такие транзакции рассматривать особо и нет смысла. Да, предположим, что эти транзакции являются устойчивыми, но при этом они появляются всего лишь в одном или пол- проценте всех случаев, которые у нас есть. Понятно, что какой-то рыночный эффект использования такой ассоциации не особенно будет велик, поэтому конечно же надо искать, в первую очередь довольно часто встречающиеся комбинации. При этом есть другая проблема, которая с этим связана, связана она с тем, что мы можем получить просто какие-то банальные или тривиальные вещи, которые и без всякого анализа и так мы знаем. Допусти, покупка хлеба и масла, покупка молока и творога, и в целом продуктовая корзина сейчас, конечно, именно с точки зрения продуктов, как продуктов сельскохозяйственных, тоже хорошо довольно изучена, уже с точки зрения эксперта. Тем не менее, даже при всем при этом, когда товара действительно много, сотни, тысячи, десятки тысяч элементов, сотни тысяч, то в ручную, конечно, такие наборы формировать довольно сложно. Поэтому, для автоматизации мы их должны в первую очередь скомбинировать, дальше, как-отсеять, от наиболее частых и наиболее редких ассоциаций так, чтобы остались только наиболее подходящие к нам для дальнейшего анализа. Значит, что означает дальнейший анализ? Вот предположим, мы нашли какой-то набор устойчивый, А, В, С-товары, и эти А, В, С-товары одновременно встречаются в 20 % всех наши транзакциях. Казалось бы, это уже хороший результат, но возникает вопрос дальше. А что из этих товаров является основным, что является подчиненным? Следует ли из того, что куплен товар — А, покупка товаров — В и С или наоборот? Вот для того чтобы это понять, существует дальнейшая метрика, которая называется конфиденс или уверенность, или достоверность. В чем ее смысл? Значит, соответственно, достоверность, — это, по сути, число транзакций, которые содержат комбинацию товаров наших А, В и С, по сравнению числом транзакций, которые содержат только товар А. То есть, а на сколько часто в транзакции, где был товар А встречаются товары А, В, С, D одновременно? Если довольно большой процент, близкий к единице, то означает, что наличие товара А, сразу же, автоматически означат и наличие товаров В, С, D и так далее. То есть по сути, мы уже приходим к понятию не просто комбинаций частотного набора, а к понятию ассоциативного правила «если...,то....». Если — соответственно, посылка, то — следствие. Если был товар А, то будет и присутствовать товар В. Какова вероятность этой комбинации? Это и есть достоверность. Дальше, если окажется, что наше правило является одновременно частым и достоверным, то в принципе уже анализ можно было бы уже заканчивать, но есть и другие метрики, которые позволяют немножко точнее раскрыть эту тему. Дальше, если мы рассмотрим такое понятие как лифт, то можно попытаться определить еще один момент. Например, если рассмотреть товар А в отдельности, то он продается в 10 % случаях, если рассмотреть товар А вместе с товаром В, то такая комбинация продается в 20 % случаях. То есть получается, товар А вместе с В продается в два раза чаще, чем сам по себе. Таким образом, мы приходим к понятию лифта, то есть, во сколько раз совместные продажи каких-то товаров чаще происходят по сравнению с продажей отдельного товара из этого набора. Или можно лифт определить, как отношение поддержки и достоверности, и, собственно говоря, лифт — это и есть наиболее частая, именно экономическая метрика, которая позволяет понять, что является сопутствующим товаром, а что является основным. Если лифт больше, чем единица, то что это означает? Да, конкретный товар имеет смысл предлагать всегда в наборе с чем-то. Если он предлагается в наборе, значит он по умолчанию является сопутствующим, а не основным. То есть он не является товаром-«якорем». И уже даже нахождение такой комбинации представляет собой определенную экономическую выгоду, потому что мы понимаем, да, этот товар, если он продается с чем-то можно на него цену образовывать не так, как на товары-«якоря». То есть, допустим, товар-«якорь» стоит 10 000, а второй товар продается всегда с этим «якорем», значит на этот второй товар можно цену поднять, а на «якорь» опустить. Таким образом, мы экономически скорей всего получим больше прибыль,если бы мы цены образовывали на «якоре» на сопутствующие товары от цены в отдельности. Это, что касается некоторых метрик.