Одна из фундаментальных проблем современных методов машинного обучения.

Вы можете прочитать эту статью в моем блоге, если вы предпочитаете средний уровень.

Предположим, вы работаете с новой компанией и хотите выяснить, стоит ли размещать новую статью на первой странице (назовем эту статью «А»). Как специалист по данным, вы хотите выяснить, следует ли размещать A на первой странице, размещать A на первой странице только для определенных людей или никогда не отображать A на первой странице.

Для простоты предположим, что показатели, которые мы используем для оценки качества статьи, - это количество людей, прочитавших статью.

Допустим, мы проводим эксперимент и случайным образом помещаем A на первую страницу 1000 раз. Отсюда мы получаем следующие числа:

  • 120 человек, увидевших букву А на первой странице, прочитали ее.
  • 860 человек, увидевших букву А на первой странице, не прочитали ее.

Коэффициент чтения 12%.

В тот же день мы 10 000 раз разместили на первой странице кучу разных статей. Мы получаем следующие числа:

  • 1000 человек, которые видели другую статью на первой странице, закончили ее читать.
  • 9000 человек, которые видели другую статью на первой странице, не прочитали ее.

Коэффициент чтения 10%.

Таким образом, новая статья явно лучше; он в 1,2 раза лучше, чем другие статьи, заставляет людей читать его, мы должны чаще размещать его на первой странице.

Повторяющиеся читатели

Но подождите, одна из переменных, которые мы могли ранее получить от пользователей, посещающих первую страницу, - это то, какие статьи они ранее читали.

Вооружившись этой новой переменной, мы могли бы попытаться найти более новую, более точную схему того, для кого показывать A на первой странице. Предположим, мы хотим увидеть, заинтересованы ли люди, которые уже прочитали А, прочитать его дважды.

Посетители, которые никогда не читали A:

  • 60 увидел А на первой странице и дочитал до конца.
  • 740 увидел букву А на первой странице и не прочитал ее.

Коэффициент чтения равен 7,5%.

  • 720 увидел еще одну статью на первой странице и дочитал ее.
  • 8280 увидел другую статью на первой странице и не прочитал ее

Коэффициент чтения равен 8%.

Посетители, которые уже прочитали A:

  • 40 увидел А на первой странице и дочитал до конца.
  • 160 увидел А на первой странице и не прочитал его

Коэффициент чтения равен 20%.

  • 280 увидел еще одну статью на первой странице и дочитал ее.
  • 1000 увидел другую статью на первой странице и не прочитал ее

Коэффициент чтения 28%.

Итак, отображение А хуже всего как для постоянных читателей, так и для новых читателей, но лучше в совокупности? Когда мы так говорим, в этом нет никакого смысла.

Что ж, мы сможем понять это, если внимательно рассмотрим данные.

Мы заметим, что люди, которые уже читали А, в целом, как правило, читали статьи намного чаще. То, что мы здесь сделали, представляет собой избыточную выборку для той группы тех, кто уже прочитал А при размещении А на первой странице (20% посетителей при размещении А против 10% при размещении других статей).

Таким образом, мы неосознанно внесли в свой анализ потенциальную помеху - предвзятую доставку А предыдущим читателям А.

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

Проблема в том, что нам нужно повторить эксперимент. Таким образом, потенциально А может отображаться слишком много (если это плохая статья) или слишком мало (если это качественная статья).

Даже если мы повторно запустим эксперимент или удалим некоторые из наблюдений, чтобы устранить систематическую ошибку в наших данных, мы все равно останемся со странным явлением. Люди, которые читают А, похоже, читают больше статей.

Вот две гипотезы, которые мы легко можем придумать об этом, казалось бы, странном происшествии:

  • а) Чтение А каким-то образом увеличивает коэффициент прочтения всех последующих статей, возможно, потому, что качество статьи побуждает наших посетителей читать другие статьи. Эта тенденция менее усугубляется для самого А, потому что эти посетители уже прочитали его.
  • б) Посетители, которые уже прочитали один раз, являются «заядлыми читателями», которые, как правило, читают намного больше статей, чем наша обычная аудитория.

В действительности очень вероятно, что ни гипотеза B, ни гипотеза A не верны на 100%.

Конечно, мы могли бы изменить наш анализ и отбирать только тех, кто читал впервые или тех, кто активно читает. Но тогда мы просто обмениваем одно искажающее представление на другое.

Чтобы понять, стоит ли нам использовать A, нам нужно изучить еще несколько проблем, например:

  • Приводит ли чтение A к тому, что пользователи читают больше статей, чем читают другие статьи?
  • Являются ли люди из нашей второй когорты (перечитывающие А) более склонными к «заядлым читателям» и насколько?
  • Люди, которые в первую очередь читают А, как правило, чаще возвращаются на наш сайт?

Обратите внимание, что любые результаты этих исследований могут иметь собственные противоречия, для выяснения которых могут потребоваться дальнейшие эксперименты и исследования.

Проблемы с моделями машинного обучения и конфаундерами

Это краткое изложение двух фундаментальных проблем многих прикладных задач науки о данных. А именно, неосознанно предвзятые наборы данных и проведение наблюдения (в данном случае отображение A пользователю и проверка, читает он его или нет), приводящие к изменениям в дальнейших наблюдениях.

Часто нам нужно собрать данные, чтобы построить модель, но эксперименты, которые мы проводим для проверки указанной модели, сами по себе изменят данные.

Более того, как только мы развернем модель, основанную на ранее собранных данных, эта модель изменит любые дальнейшие данные, что затруднит определение того, работает ли модель так, как задумано.

Тем не менее, как люди, мы можем делать простые выводы, подобные приведенным выше. С другой стороны, модели машинного обучения может быть сложно определить, что набор данных смещен. Конечно, будет невозможно определить, привел ли эксперимент, который мы использовали для сбора этих данных, эту систематическую ошибку.

Проблема здесь, опять же, двоякая.

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

Во-вторых, даже если мы проведем анализ данных перед их передачей в модель и обнаружим некоторые причинно-следственные связи между данными, мы не сможем сообщить об этом модели.

Большинство современных моделей машинного обучения не имеют возможности интерпретировать простые входные данные, такие как столбец X, а Z может влиять на столбец Y примерно через это уравнение.

Нам нужно попытаться настроить наши данные, чтобы отразить эти предыдущие гипотезы, вместо того, чтобы сообщать о них самой модели.

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

Модели машинного обучения плохо выявляют причинно-следственные связи, потому что для этого им необходимо знать информацию, которой нет в самих данных. Возможно, хорошее начало для решения проблемы - создание моделей, в которые мы можем вводить различные гипотезы о возможных способах взаимодействия наших данных. Некоторые такие модели уже существуют, но когда дело доходит до моделей глубокого обучения, по этой теме не так много исследований, возможно потому, что это легче сказать, чем сделать.

Но, надеюсь, этот пример - способ лучше проиллюстрировать эту проблему людям, которые могли не знать о ней или которые раньше не понимали ее с этой причинной точки зрения.

Если вам понравилась эта статья, вам также могут понравиться: