Контекстная реклама бьет ключом. Часть1.
Разбираемся с количеством ключевых фраз для рекламных кампаний
Эта статья является развитием – или, как модно говорить, «спин-оффом» - одной из тем, затронутых ранее в других публикациях и посвященных в целом системе контекстной рекламы (доступны здесь, здесь и здесь). Теперь же мы займемся решением частной, но весьма важной проблемы – а именно, определения оптимального количества так называемых «ключевых фраз» для кампаний в рамках контекстной рекламы.
Собственно, о понятии «ключевых фраз» слышал всякий, кто так или иначе создавал или администрировал эти самые кампании. При этом интерфейс рекламных сервисов (а это Директ от Яндекса и забанивший всех россиян Ads от Гугл) предоставляет очень широкие возможности для упражнений во «фразотворчестве», вводя рекламодателей в искушение: то ли написать одну-единственную фразу, то ли скопировать вообще весь перечень из всех возможных коллекторов, включая Вордстат. Отметим, что в доступных (многочисленных) публикациях по системам контекстной рекламы – и обучающих, и проблемно-исследовательских – проблема количества ключевых фраз в общем виде не обсуждается и не ставится. Мы решили заполнить пробел и подойти к решению этой проблемы по возможности системно. Имея в виду не столько теорию, сколько практические следствия – оптимизацию усилий обычных рекламодателей по разработке этих самых фраз.
И два технических замечания: примеры будем приводить исключительно из собственной практики – транспортной контейнерной логистики – для того, чтобы не изобретать искусственные условные конструкции типа «купить пластиковые окна в Москве».
Второе: в текстах примеров две косых черты // будут означать конец собственно примера, а также отделять комментарий от примера.
Вместо введения: фактические запросы и обработка
Исходная модель: ключевые фразы и человеко-машина
Запросы-функции: оценка полноты и точности
Вместо введения: фактические запросы и обработка
Принцип функционирования контекстной рекламы (рекламы на поиске), вероятно, всем известен, но ради связности напомним его. Введенный пользователем некий произвольный поисковый запрос инициирует показ рекламной машиной (далее: РМ, под которой подразумеваются Яндекс Директ и (или) Google Ads) объявления, которое содержит предложение товара или услуги и которое, возможно, может заинтересовать этого пользователя. Этот принцип имеет несколько очень важных следствий, о которых нужно сразу же сказать.
Во-первых, в отличие от чистого информационного поиска, в рамках поисковой рекламы объявление демонстрируется не в ответ на запрос, а в связи c ним. Дело в том, что рекламодателя интересует не столько то, что именно ищет пользователь, сколько то, зачем ему это нужно – а именно, не стоит ли за произвольным информационным запросом некая потребность, которую и может удовлетворить предложение (товар или услуга) этого рекламодателя. Более подробно о намерениях и запросах смотрите в этой статье.
Соответственно, в общем случае связь между предложением (исходящим от рекламодателя) и запросом (исходящим от пользователя) может быть весьма условной и далекой. Выражается это главным образом в том, что на языковом содержательном уровне запрос и предложение могут значительно друг от друга отличаться. Кстати, в теории информационного поиска понятия, используемые в запросе и в предложении, принято называть «лексемами» (англ.”tokens”, которые выражаются самыми разными частями речи: существительными, глаголами, прилагательными и наречиями)// Более подробно в отличной книге, изданной в том числе и при содействии Яндекса: К. Маннинг, П.Рагхаван, Х.Шютце «Введение в информационный поиск».
Так вот, лексемы, входящие в запрос и в предложение, в общем случае не обязаны совпадать. Пусть, к примеру, пользователь вводит запрос «расстояние от Владивостока до Магадана». Вполне можно допустить, что он интересуется этим потому, что планирует рассчитать маршрут или стоимость доставки груза из одного города в другой. И если оценивать (или каким-то образом знать) его намерения, то будет разумным показать ему объявление «доставка грузов в контейнерах по морю», хотя ни одна из лексем из запроса не встречается в предложении.
Однако заметим, что по целому ряду причин обработка подобных «несовпадающих» (условных, широких) запросов для рекламных машин представляет собой очень сложную задачу, и РМ ориентируется прежде всего на совпадение лексем. Поэтому в ответ на попытку обычного рекламодателя явно задать условия для показов по «несовпадающим» запросам РМ, скорее всего, выдаст предупреждение о нерелевантности (отсутствии содержательной связи). Тем не менее, в Яндекс Директ возможность несовпадающего «показа» отчасти реализована при помощи опции «автотаргетинга», когда рекламодатель доверяет самой системе отбирать запросы, руководствуясь некоторыми собственными неоглашаемыми критериями. В скобках заметим, что эффективность обработки несовпадающих запросов варьируется от отрасли к отрасли, а решение о применении этой опции принимает конкретный рекламодатель.
Во-вторых, весь массив фактических поисковых запросов, связанных с нужной тематической областью, к примеру, контейнерной логистикой, простому смертному рекламодателю не доступен. Этот массив аккумулируют собственно поисковые машины, с которыми и связаны машины рекламные.
Но здесь может возникнуть вопрос – а зачем вообще простому смертному рекламодателю собирать и анализировать эти фактические запросы - к тому же если ему доступна в лучшем случае их небольшая часть?
Во-первых, именно эти фактические запросы служат в качестве исходных («первичных») данных для формирования (а вообще говоря, «разработки») массива вторичных запросов, тех самых ключевых фраз, которым и посвящена эта статья. Иначе говоря, в идеальном случае в качестве исходного шага рекламодатель должен обращаться именно к массиву фактических запросов, а уж только потом – к многочисленным сервисам-коллекторам.
Во-вторых, только анализ фактических запросов позволяет соотнести намерение (потребность) и способ ее выражения, проще говоря, оценить потенциального клиента. Сформулируем это в более парадоксальной форме: анализ и работа с вторичными запросами (ключевыми фразами) практически не имеет отношения к поведению людей, а представляет собой этап в программировании РМ. Забегая вперед, любой вторичный запрос – это инструкция или функция для РМ, которая представляет собой всего лишь алгоритм, не имеющий никаких намерений.
В-третьих, хотя это и является несколько более узкой задачей, анализ первичных запросов позволяет точнее понять потенциального клиента. Если в рамках первой задачи рекламодатель может оценить, зачем клиент делает тот или иной запрос, то в данном случае есть возможность понять, как он фактически описывает (или называет) что именно ему нужно. Например, в рамках контейнерной логистики вовсе нетривиальным будет вопрос – а что нужно сделать: перевезти контейнер, доставить контейнер или отправить? А контейнер или контейнер с грузом? Уверены, что и в любой другой отрасли найдутся подобные примеры.
Тем не менее, поведенческий анализ фактических запросов предметом этой статьи не является, и для дальнейшего мы будем предполагать, что некоторый репрезентативный массив фактических запросов <для любой произвольной отрасли> уже сформирован.
Исходная модель: ключевые фразы и человеко-машина
Как часто делается в работах по информатике в целом и информационному поиску в частности, для начала максимально упростим ситуацию и построим предельно «человеко-подобную» модель. Ее, кстати, вполне можно назвать и аналоговой.
Итак, пусть показами рекламных объявлений физически управляет некий человек, который и выполняет функцию РМ. Управляет самым непосредственным образом: видит введенный очередным пользователем фактический запрос и, нажимая на кнопку, показывает соответствующее рекламное объявление (ну почти как барышня-телефонистка в начале века осуществляла ручное коммутирование).
Очевидно, что главная здесь категория «соответствующее». Иначе говоря, человек РМ должен получить от рекламодателя исчерпывающие инструкции, касающиеся условий показа. В самом простейшем случае инструкция могла бы выглядеть так:
Пример 1.
Фактический запрос Действие
<точная формулировка запроса 1> - показать <объявление 1>;
<точная формулировка запроса 2> - показать <объявление 1>;
<точная формулировка запроса 3> - показать <объявление 2>;
И т.д.//
Иными словами, для организации показа рекламодатель должен составить перечень фактических запросов и потребовать, что показ осуществляется тогда и только тогда, когда фактический запрос точно совпадает с тем, что находится в перечне. Соответственно, человек-РМ сверяет фактический запрос с имеющимся в перечне и в случае совпадения показывает то или иное объявление. Конечно, в описанном виде работа РМ выглядит несколько курьезно, хотя строго обоснованно и реалистично. Но существенно здесь совсем иное – а именно, чрезмерная усложненность и неэффективность работы такой РМ. И дело не в том, что кнопочки нажимает какой-то несчастный (вероятно, как гласит мем: за ЖРАТ), а в самом алгоритме.
С одной стороны, этот алгоритм чрезвычайно сложен, поскольку требует от рекламодателя составления исчерпывающего перечня всех запросов. При этом в перечне должны оказаться не только фактические (то есть, уже когда-то введенные) запросы, но и возможные – такие, которые еще будут использованы.
С другой - он неэффективен, поскольку вынуждает РМ игнорировать запросы, которые в других условиях могли бы инициировать показы. В самом деле, стоит пользователю переставить слова и вместо «отправить груз в контейнере» ввести «груз в контейнере отправить», и запрос будет отвергнут как нерелевантный, поскольку алгоритм требует точного совпадения. То же самое произойдет и в случае пропуска предлогов, отсутствия согласования по родам или падежам и т.д.
При этом указанные алгоритм упускает из виду очевидную вещь: в любой тематической области обязательно найдется некоторое количество запросов, выражающих примерно одно и то же – такие множества схожих по смыслу запросов можно называть «кластерами». Применительно к контейнерной логистике кажется весьма логичным предположение о том, что запросы, представленные ниже, имеют одинаковый смысл (или как говорят в информатике «эквивалентную интерпретацию»):
Пример 2
(а)отправить груз в контейнере;
(б) отправить грузовой контейнер;
(в) отправить контейнер с грузом;
(г) отправить контейнер//
Очевидно, что если не вдаваться в возможные психолого-лингвистические тонкости, то речь идет о том, чтобы «отправить»+»груз»+»контейнер». Таким образом, все эти 4 высказывания можно представить (репрезентировать) всего лишь одним обобщающим высказыванием, которое является комбинацией лексем (вопрос о том, что в любом естественном языке люди выражают свои мысли при помощи предложений или словосочетаний, а не комбинаций лексем, пока оставим без рассмотрения).
В практическом плане это означает, что мы можем существенно упростить инструкцию для нашего человека-РМ, которая в общем виде теперь выглядит так: если в фактическом запросе присутствуют три указанные лексемы, то показываем объявление. Следовательно, у нас в распоряжении появляется новый тип запросов, которые мы выше мельком обозначили как «вторичные». Эти запросы служат исключительно для обработки фактических запросов (то есть, являются «техническими») и – в зависимости от результата такой обработки – обусловливают осуществление того или иного действия. Эта конструкция является ничем иным как реализацией идеи «функции» - так, как ее понимают в математике и информатике: фактический запрос – независимая переменная или аргумент – возвращает значение показать=1 или не показывать=0. А в терминологии рекламных машин такие вторичные запросы-обработчики-функции как раз и называются «ключевыми фразами» (далее везде мы будем использовать обе этих категории).
Пример 3
Фактический запрос Ключевая фраза (запрос-функция) Действие//
Достоинства этого нового алгоритма очевидны.
Во-первых, мы существенно сократили время обработки: намного быстрее «выхватить» несколько лексем (в данном случае, три), нежели осуществлять пословное сравнение.
Во-вторых, и это самое главное – мы избавились от необходимости формировать исчерпывающие перечни всех фактических запросов, включая возможные. Однако вместе с тем возникает та проблема, обсуждению которой и посвящена наша статья: каково возможное количество этих запросов-функций и каким оно должно быть. Подчеркнем, что в случае реализации первого алгоритма такой проблемы не возникает – там, напротив, требуется максимально полный перечень и в этом, вероятно, единственное сомнительное преимущество этого алгоритма.
Запросы-функции: оценка полноты и точности
Вопрос о возможном количестве запросов-функций предполагает обсуждение полноты их возможного перечня, тогда как о должном их количестве – сортировки или «выбраковки» отдельных запросов.
1) Полнота перечня
Приближенный (и общий) ответ на первый вопрос можно получить, если учесть цели разработки запросов-функций: их может быть ровно столько, сколько существует отдельных групп близких по смыслу фактических запросов (кластеров), поскольку каждый кластер должен репрезентироваться как минимум одним запросом-функцией. При этом сказать заранее, сколько фактически таких кластеров возникнет невозможно, поскольку отрасли значительно различаются. Однако независимо от отрасли, кластеры должны формироваться корректно, так, чтобы выполнялось главное условие: объединение близких по смыслу запросов таким образом, чтобы каждый фактический запрос вошел только в один кластер.
Таким образом, проблема сводится к рассмотрению количества способов (процедур), при помощи которых можно эти самые кластеры конструировать. Отметим, что эти процедуры применимы как для случая обработки уже имеющегося массива фактических запросов, так и для разработки гипотетически возможных фактических запросов. По-видимому, имеют место четыре основные корректные порождающие процедуры, две из которых можно назвать прямыми или непосредственными, а две – косвенными или опосредованными.
1.1.Словоформы
Эта процедура наиболее проста, поскольку сводится к объединению в один кластер запросов с одинаковыми лексемами и примерно одинаковой длиной. Причем лексемы здесь берутся, так сказать, в качестве корней, безотносительно ко всевозможным аффиксам – приставкам, суффиксам и т.д. Порядок слов здесь также не учитывается. Для расширения уже существующего массива также выделяются базовые лексемы, а затем они превращаются в другие части речи (например, из существительных в прилагательные) и (или) меняется их порядок в высказываниях.
Пример 4.
Отправить груз в контейнере – Отправить грузовой контейнер
Отправить груз в контейнере – Отправить контейнер с грузом
Единственное, здесь предполагается, что служебные частицы (типа предлогов) не изменяют смысл конкретного высказывания. И очевидно, что для определенных категорий запросов игнорирование служебных частиц приведет к ошибкам в обработке, как например, в случае с запросом «отправить контейнер Уфа».
1.2. Нулевые (подразумеваемые) лексемы
Речевая активность широко задействует сокращение высказываний, когда некоторые лексемы опускаются, поскольку их наличие в определенном контексте избыточно. Такой контекст лингвисты еще называют «узусом». Проще говоря, в повседневной речи не уточняют то, что «и так понятно». Таким образом, в один кластер можно объединить запросы разной длины и даже содержащие дополнительные лексемы, при условии, что эти лексемы можно «исключить» без потери смысла.
Пример 5.
Отправить контейнер – отправить грузовой контейнер//В данном случае можно утверждать, что в контексте транспортной логистики «контейнер» всегда означает «грузовой контейнер», хотя, конечно, в жизни бывают и другие контейнеры, например, мусорные.
Пример 6.
Доставить груз – доставить груз на авто//Менее очевидный пример, но на практике доставляют груз по умолчанию именно автотранспортом, а вот если необходим какой-то иной вид доставки, то его указывают явно.
Сокращение запросов за счет исключения нулевых лексем в конечном счете упрощает процесс, но здесь важно корректно использовать контекст.
Завершая обзор этих процедур, важно отметить, почему они являются «непосредственными». Все дело в том, что в кластеры объединяются запросы на основе их фактического содержания (фактически входящих в их состав лексем), а также за счет сокращения опять-таки уже имеющихся лексем.
1.3.Синонимические запросы
Как следует из названия, при помощи этой процедуры формируются кластеры, которые содержат разные базовые лексемы, но имеющие схожий смысл. Кроме того, сюда же относится и случай, когда базовая лексема может выражаться целым высказыванием (внутри высказывания-запроса). Для пополнения коллекции возможных запросов таким способом стоит вооружиться любым словарем синонимов.
Пример 7.
Отправить груз в контейнере – Отправить товар в контейнере//Для перевозчика или экспедитора, словом, для логиста, все, что перевозится, является «грузом», тогда как для прочих смертных это может быть и «имуществом», и «материальными ценностями» и т.д.
Пример 8.
Цена отправки контейнера – Сколько стоит отправить контейнер//
1.4. Запросы, содержащие роды и виды
В один кластер можно объединять также запросы, содержащие лексемы, которые между собой соотносятся как «род» и «вид». В принципе, их можно считать «синонимами», поскольку почти все, что относится к виду, относится и к роду. И в иных отраслях или ситуациях этим различием можно пренебречь.
Пример 9.
Отправить сыпучий груз – Отправить песок//Как известно, песок – это сыпучий груз, поэтому если, скажем, кто-то осуществляет доставку земли, то он легко справится и с песком, следовательно, без какого-либо колебания он может рекламировать свои услуги для доставки любого вида сыпучего груза.
Рассматривая эти процедуры, стоит указать на одну фундаментальную проблему. С одной стороны, с точки зрения содержания эти процедуры весьма эффективны, поскольку приводят к формированию кластеров близких запросов. Но с технической точки создание кластеров с их помощью значительно усложняет в дальнейшем разработку инструкций для РМ. Как говорилось ранее, благодаря запросам-функциям нет необходимости создавать полный перечень всех фактических запросов. А теперь в дополнение к списку запросов-функций нужно еще создавать и словарь синонимов и родовых понятий.
Пример 10.
Фактический запрос Запрос-функция Действие
Отправить груз в контейнере отправить груз контейнер показать //кластеры без синонимов
Отправить товар отправить груз (товар, имущество etc.)//кластер с синонимами
2) Точность интерпретации
Итак, будем считать, что искомые кластеры сформированы, отметив между делом, что каждый фактический запрос входит только в один такой кластер. Здесь возникают следующие вопросы: сколько запросов – функций может репрезентировать каждый кластер, сколько их должно быть и что делать, если таких запросов больше, чем один.
Для начала следует заметить, что если кластеры сформированы корректно – с использованием одной из описанных выше процедур – то можно без ограничения считать, что любой запрос, отнесенный к данному кластеру, будет выражать почти тоже самое, что и любой другой. В этом, кстати, основное преимущество использования корректно сформированных кластеров: любой фактический запрос может быть использован в качестве запроса-функции. Кроме того, вхождение каждого фактического запроса только в один кластер обусловливает выполнение условия «один кластер – один запрос-функция», что в дальнейшем минимизирует время обработки.
В порядке теоретического отступления заметим, что существует еще один способ разработать запрос-функцию, кроме как выбрать один из имеющегося массива фактических. Такой запрос можно еще и сконструировать, сделав его максимально удобным для машинной обработки (в нашей модели, напомним, фигурирует гипотетический человек). В этом случае запрос-функция будет представлять собой искусственную языковую конструкцию, состоящую по существу из чистых лексем и построенную по определенным правилам (эти правила описываются категориями «стемминга» и лемматизации). К обсуждению этих «неестественных» запросов мы вернемся в следующем разделе, где будут обсуждаться уже реальные цифровые машины на примере Яндекс.Директа.
Подведем итоги.
1. Ключевая фраза – это технический запрос-функция, улучшающий алгоритм работы рекламных машин.
2. Такой запрос представляет группу близких по смыслу фактических запросов, объединенных в одну группу (кластер). Он имеет примерно тот же смысл, что и любой другой запрос из кластера.
3. Количество запросов-функций различно для каждой предметной области, но подчиняется правилу «один запрос-один кластер».
4. Каждый фактический запрос должен входить только в один кластер, а сами кластеры должны быть корректно определены (на основе логически корректных процедур).
Окончание следует