Во время президентских выборов в США в 2016 году российские агентства смогли наводнить Instagram и Facebook политической рекламой, которая разделила американских избирателей с точки зрения расы, религии и оружия, и это лишь некоторые из них.

Конгресс выпустил эти объявления здесь.

Как человека, работающего в традиционной рекламной экосистеме, меня всегда интересовало пересечение данных и рекламы.

Я воспользовался этой возможностью, чтобы оценить эффективность рекламы (клики) путем создания алгоритма машинного обучения.

Цель этого проекта состояла в том, чтобы проанализировать российскую рекламу в Facebook и выяснить, какие факторы (то есть особенности рекламы) привели к наибольшему количеству отказов. кликов по этим объявлениям.

Поскольку Конгресс опубликовал эти 2600 объявлений Facebook в виде PDF, я написал скрипт на Python для извлечения данных из PDF и преобразовал их в CSV. Каждая строка — это запущенная реклама. Столбцы соответствуют атрибутам объявления: параметрам таргетинга, времени показа, потраченной сумме и так далее.

Подготовка данных

Прежде чем углубиться в любую модель машинного обучения, я сначала очистил и подготовил данные.

Очистка данных

● Удалены все пробелы и заменены на 0 (например, в столбце «токсичный» некоторые строки были пустыми)
● Удалены все ненужные столбцы, которые не использовались при моделировании, чтобы окончательный набор данных можно было прочитать в форме CSV.

Выбор функций

Я использовал следующие предикторы, которые уже были доступны в наборе данных: ""sexexp","flirt","a_author","a_commentor","incoh",",inflam","непристойный","target_count"

● Примечание. Многие из перечисленных выше полей определены в API перспективы Google.

Новые функции

Я создал две новые функции на основе «текста» объявления, основываясь на своей гипотезе о том, что раса и владение оружием сейчас вызывают серьезные разногласия в США и могут влиять на то, как люди реагируют на политическую рекламу.

● norp_count: нет. раз в тексте объявления упоминаются слова, связанные с NORP — «национальностью, религиозными или политическими группами», чтобы увидеть влияние расы на клики.
○ Раса и религия разделяют Америку (и многие другие страны мира), поэтому я подумал, что этот параметр важен.
● gun_count: нет. раз в тексте объявления есть слова, связанные с оружием (например, ["оружие", "стрелять", "стрельба", "выстрел"]), чтобы увидеть влияние фокуса на огнестрельное оружие на клики.
○ Оружие также были фактором, вызывающим разногласия в американском обществе, поскольку рост массовых расстрелов усилил общественный резонанс по поводу контроля над оружием.

Моделирование

Прежде чем выбрать какую-либо модель машинного обучения, я построил базовую корреляцию и график разброса между кликами и функциями.

Для сравнения я попробовал следующие модели: ElasticNetCV, LinearRegression, LassoCV и LassoLarsCV.

Глядя на их коэффициенты и баллы, я решил выбрать LassoLarsCV», так как он имеет лучший балл (по сравнению с другими), а также не слишком высокие и не слишком много ненулевых коэффициентов, что позволяет мне сделать выбор функции.

Примечание. Я не использовал базовую модель линейной регрессии, даже если у нее был самый высокий балл удержания (0,54), потому что коэффициенты были слишком высокими, что указывало на переобученность этой модели.

Разделение набора данных

Набор данных был разбит на следующие разделы. 70% набора данных для обучения, 20% для тестирования и 10% для удержания.

Оценка данных

R — Squared:
ПРИМЕЧАНИЕ. При расчете окончательной выбранной модели (LassoLarsCV) используется результат score() модели (а не cross_val_predict()), чтобы избежать вложенной перекрестной проверки.

Окончательный r-квадрат по типу набора данных для модели LassoLarsCV: {‘train’: 0,4611364456863407, ‘test’: 0,4747624527836395, ‘holdout’: 0,5334391452779166}

Проверка r2 = 0,46; перекрестная проверка r2 = 0,47; Удержание r2 = 0,53

Я также нарисовал диаграммы разброса прогноза и фактического результата для набора данных с задержкой, используя LassoLarsCV.

Статистика

Анализируя эти объявления, я понял, что наибольшую вовлеченность привлекли следующие факторы:
● Объявления с текстом «Содержит ссылки на половые акты, части тела или другой непристойный контент»: sexexp (коэффициент: 1098,12)< br /> ● Объявления с текстом «Непристойные или вульгарные выражения, такие как ругательства»: непристойные (коэффициент: 644,44)
● Объявления с текстом «Нападки на автора статьи или публикации».: a_author (коэффициент: 537,23)
● Объявления с текстом с высоким значением NORP (например, национальности, религиозные или политические группы) и словами: norp_count (коэффициент: 43,17)
● Объявления с высоким значением target_count (коэффициент: 38,79).

Рекомендации

Работа над этим проектом помогла мне с помощью вычислений понять, что приводит к кликам в цифровой рекламе, и для будущих объявлений я дам следующие рекомендации:
● Знайте, кто ваша целевая аудитория, и очень четко определите ее интересы
● Соблюдайте баланс между параметрами таргетинга — слишком много параметров таргетинга делает размер аудитории очень узким
● Важно содержание — реклама с разделяющим текстом была более эффективной, как видно из наших коэффициентов выше. Это доказывает тот факт, что независимо от того, сколько вы тратите, вам нужен хороший контент, чтобы привлечь внимание. Он должен быть и интересным, и актуальным одновременно. Для этого действительно нужно погрузиться в жизнь целевой аудитории и выйти за рамки демографии и интересов. Это действительно трудно сделать, и поэтому я думаю, что творчество никогда не может быть автоматизировано.
● Последовательность. Необходимо следить за тем, чтобы история бренда согласовывалась с руководящими принципами бренда, чтобы поддерживать последовательность в повествовании и повышать доверие.

Если вы хотите увидеть весь проект, вы можете получить к нему доступ в моем Github здесь.