Применение глубокого обучения в оценке CTR

глубокое обучение
Применение глубокого обучения в оценке CTR

Автор: Синь Цзюньбо | Исследователь приложений Tencent

Введение

Глубокое обучение совершило прорыв во многих областях, таких как НЛП, изображения и речь, благодаря своей мощной выразительной способности и гибкой сетевой структуре. В области рекламы в последние годы также было проведено много исследований по глубокому обучению в области прогнозирования рейтинга кликов (CTR), и за последние два года появилось не менее 20 методов. В этой статье исследуются классические академические методы в области прогнозирования CTR в последние годы и сравниваются первоначальные намерения каждого дизайна модели, а также их соответствующие преимущества и недостатки. Путем сравнения десяти различных глубоких моделей CTR можно сделать вывод, что разные модели могут состоять из основных низкоуровневых компонентов.

Определения переменных, которые появляются в этой статье:

n: количество функций, общий размер «горячего» подключения всех функций.

f: количество полей функций, указывающее, сколько существует категорий функций.

k: размер встраиваемого слоя, который является скрытым векторным размером в FM.

H1: количество узлов в первом скрытом слое глубокой сети, H2 во втором слое и так далее.

2. Модель глубокого обучения

1. Факторизатор-машина (FM)

Модель FM можно рассматривать как LR линейной части, а нелинейная комбинация признаков xixj пересекается, что выражается следующим образом:

где vi — скрытый вектор признака i-го измерения длины k

Рисунок 1 Структура модели FM

FM = LR+ embedding

Параметры, которые необходимо изучить, следующие:

(1) часть LR: 1+n

(2) Встраиваемая часть: n*k

FM будет служить основным компонентом различных сетевых моделей в следующих

2. Deep Neural Network(DNN)

На рис. 2 показана классическая сеть DNN, которая по своей структуре представляет собой традиционный многослойный персептрон (MLP). В сети MLP входом является исходное n-мерное пространство признаков, при условии, что количество узлов скрытого слоя в первом слое равно H1, во втором слое — H2 и так далее. На первом уровне сети параметр, который необходимо изучить, равен n*H1. Для большинства моделей CTR система признаков чрезвычайно велика и разрежена. Типичная величина признака n колеблется от миллионов до десятков миллионов, сотен миллионов или даже выше. Такое крупномасштабное n используется в качестве входных данных сети в отрасли оценка ctr неприемлема в мировых сценариях. Большинство структур сети CTR глубокого обучения, упомянутых ниже, вращаются вокруг того, как преобразовать многомерный дискретный вход DNN в низкоразмерный плотный вход через слой внедрения.

Рис. 2 Структура модели DNN

Изучаемые параметры DNN: n*H1+H1*H2+H2*H3+H3*o (o — размер выходного слоя, равный 1 в оценке ctr)

DNN (далее MLP) также будет служить одним из основных компонентов различных моделей ниже.

3. Factorisation-machine supported Neural Networks (FNN)

В приведенной выше DNN исходным входом сети являются все исходные функции, размерность которых равна n, обычно более одного миллиона. Однако, несмотря на то, что размерность признака n огромна, если он принадлежит к полю (размерность f), к которому принадлежит каждый признак, обычно размерность f будет намного меньше. Если есть способ представить каждую функцию с полем, которому она принадлежит, необработанные входные данные будут значительно уменьшены. На этой идее основаны нейронные сети, поддерживаемые машиной факторизации, или сокращенно FNN.

Рис. 3 Структура модели FNN

FNN предполагает, что каждое поле имеет одно и только одно значение 1, а остальные равны 0. x является характеристикой исходного ввода, который является крупномасштабным дискретным и разреженным. Его можно разделить на n полей, в каждом поле только одно значение равно 1, а остальные 0 (то есть одно горячее). Ввод поля i может быть выражен как x[start_i: end_i], W0i

— матрица вложения поля i. Zi — вектор после вложения, представляющий собой k-мерный вектор, состоящий из члена первого порядка wi и квадратичного члена vi=(vi1,vi2,…vik), где k — размерность вектора квадратичного срок в ФМ. Последние l1 и l2 являются представлениями полносвязных слоев нейронной сети.

Кроме того, FNN также имеет следующие характеристики:

оFM-параметры должны быть предварительно обучены

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

оНевозможно вписать функции низкого порядка

Вектор встраивания, полученный с помощью FM, напрямую связан и используется в качестве входных данных MLP для изучения выражения признака высокого порядка, а окончательный вывод DNN используется в качестве оценочного значения ctr. Поэтому выражение низкоуровневой информации в FNN относительно ограничено.

оСильное предположение, что каждое поле имеет только одно ненулевое значение

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

FNN = LR + DEEP = LR + embedding + MLP

(1) часть LR: 1+n

(2) Встраиваемая часть: n*k

(3) часть MLP: f*k*H1+H1*H2+H2

Можно видеть, что по сравнению с DNN перед входом в часть MLP вход сети уменьшается с n до f*k (f — количество полей от десятков до сотен, k — скрытая размерность вектора, обычно 0~100)

4. Product-based Neural Network(PNN)

Слой внедрения FNN напрямую связан и выводится в MLP для изучения высокоуровневых функций. PNN, полное название нейронной сети, основанной на продукте, считает, что выражения кросс-функций, изученных после встраивания, является входом в MLP, недостаточно, и предлагает идею уровня продукта, которая основана на операции умножения для отражения DNN. сетевая структура перекрестных знаков, как показано на рисунке 4.

Рис. 3 Структура модели PNN

По сравнению с сетью FNN отличие PNN состоит в том, что в середине есть дополнительный слой Product Layer. Слой Product Layer состоит из двух частей: левая z — это линейная часть слоя внедрения, а правая — пересечение признаков слоя внедрения. За исключением разницы в уровне продукта, структура MLP для PNN и FNN одинакова. Идея этого продукта исходит из того факта, что при прогнозировании ctr отношения между функциями рассматриваются как отношения «и» и «и», а не отношения «добавление плюс». Например, сочетание мужчин и людей, любящих игры, скорее отражает значение пересечения признаков, чем последнее. В соответствии с различными способами продукта его можно разделить на внутренний продукт (IPNN) и внешний продукт (OPNN), как показано на рисунке 5.

Рисунок 5 PNN (слева: IPNN; справа: OPNN)

Выход слоя продукта:

PNN = FM + product + MLP

оInner Product-based Neural Network

Перекрестный член IPNN использует внутренний продукт g(fi, fj) = . Полей f, а скалярный продукт вычисляется в двух парах.Общее количество параметров в p-части перекрестного члена равно f*(f-1)/2 (f — количество характеристических полей, N используется в оригинальная статья), а параметры в части z линейной части в сумме составляют f*k. Изучаемые параметры:

(1) Часть ЧМ: 1+ n + n*k

(2) часть продукта: (f*k + f*(f-1)/2)*H1

(3) Часть МЛП: H1*H2+H2*1

оOuter Product-based Neural Network

OPNN использует матричное умножение для представления пересечения признаков, g(fi, fj)=fifit. Матричное умножение полей f выполняется попарно, а перекрестный член p имеет всего f*(f-1)/2*k*k параметров. Линейная часть z имеет всего f*k параметров. Изучаемые параметры:

(1) Часть ЧМ: 1+ n + n*k

(2) часть продукта: (f*k + f*(f-1)/2*k*k)*H1

(3) Часть МЛП: H1*H2+H2*1

5. Wide & Deep Learning(Wide&Deep)

Два варианта структуры DNN FNN и PNN, представленные выше, вводятся в MLP после обработки ввода в слое встраивания, чтобы нейронная сеть могла полностью изучить высокоуровневое выражение признаков.Сильное, но выражение широкой части отсутствует, а модельное выражение функций низкого порядка относительно ограничено. В 2016 году Google предложил известную структуру wide&Deep для решения такой проблемы. Wide&deep сочетает в себе преимущества широкой модели с преимуществами глубокой модели.Структура сети показана на рисунке 6. Широкая часть — это модель LR, а глубокая часть — это модель DNN.

Рис. 6 Структура модели Wide&Deep

В этой классической модели wide&deep Google предлагает две концепции: generalization (обобщение) и memory (память).

ообъем памяти

Преимущество широкой части в том, что она обучает высокочастотную часть выборки. Преимущество в том, что у модели хорошая память. с небольшим количеством параметров, недостатком является то, что способность к обобщению модели плохая.Прошлые особенности класса ID, способность к обучению модели плохая.

оОбобщение

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

Кроме того, широкая и глубокая модель имеет следующие характеристики:

оИнженерия искусственных признаков

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

осовместное обучение

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

оГлубокая часть закладочного слоя занимает только

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

wide&deep = LR + вложение + MLP

(1) часть LR: 1+n

(2) Встраиваемая часть: n*k

(3) Часть MLP: f*k*H1 + H1*H2 + H2*1

6. Factorization-Machine based Neural Network (deepFM)

Широкая и глубокая структура, предложенная Google, является мощной, но, поскольку широкая часть представляет собой модель LR, по-прежнему требуется ручная разработка функций. Но wide&deep обеспечивает основу для мышления всех академических и промышленных кругов. Основываясь на этой идее, команда Huawei Noah's Ark объединила функцию пересечения признаков FM с LR и заменила LR часть широкой и глубокой части на FM, чтобы избежать ручного проектирования признаков, поэтому с помощью deepFM структура сети показана на рисунке 6.

Рис. 7 Структура модели DeepFM

По сравнению с LR-частью wide&deep, deeFM использует FM в качестве выхода широкой части, а FM-часть показана на рисунке 8.

Рисунок 8 Структура FM-части в модели deepFM

Кроме того, deepFM обладает следующими характеристиками:

онизкоуровневое представление признаков

Широкая часть заменяет LR WDL, который может собирать информацию о функциях более низкого порядка, чем FNN и PNN.

оВстраивание общего доступа к слою

Слой внедрения широкой и глубокой части должен быть разработан отдельно для глубокой части; в deepFM части FM и DEEP совместно используют слой внедрения, а параметры, полученные при обучении FM, используются как на выходе широкой части, так и на входе. часть DNN.

оокончательная тренировка

Веса встраивания и сети тренируются совместно без предварительного обучения и отдельного обучения

deepFM = FM + встраивание + DNN

(1) Часть FM: 1+n

(2) Встраиваемая часть: n*k

(3) Часть DNN: f*k*H1 + H1*H2+H1

После прохождения слоя встраивания часть FM напрямую не выводит никаких параметров для изучения, а размерность параметра, входящая в часть DNN, уменьшается с исходной размерности n до размерности f*k.

7. Neural Factorization Machines (NFM)

Предыдущий deepFM напрямую объединяет FM-часть после слоя встраивания (размерность f*k, поля f, каждое поле представляет собой k-мерный вектор) в качестве входных данных DNN. Neural Factorization Machines, или сокращенно NFM, предлагает более простой и грубый метод.После слоя встраивания выполняется операция, называемая BI-взаимодействием, так что каждое поле поэлементно, а затем суммируется для пересечения признаков, ввода MLP Масштаб напрямую сжимается до размера k и не имеет ничего общего с исходным размером n признака и размером f поля признака. Структура сети показана на рисунке 9.

Рисунок 9 Структура модели NFM

Здесь бумага рисует только глубокую часть, а широкая здесь опускается. Би-взаимодействие звучит так, как будто название звучит очень высоко, но операция очень проста: нужно умножить f полей поэлементно, чтобы получить f*(f-1)/2 векторов, затем суммировать их напрямую и, наконец, получить k размерный вектор. Таким образом, у этого слоя нет параметров для изучения.

NFM = FM + встраивание + MLP

Параметры для изучения:

(1) Часть FM: 1+n

(2) Встраиваемая часть: n*k

(3) Часть MLP: k*H1 + H1*H2+…+Hl*1

NFM выполняет операцию двойного взаимодействия при встраивании для выполнения перекрестной обработки функций.Преимущество заключается в том, что параметры сети напрямую сжимаются от n до k (меньше, чем f * k FNN и deepFM), что снижает сложность сети и может ускорить обучение сети Модель получается, но в то же время этот метод может привести и к большим потерям информации.

8. Attention Neural Factorization Machines (AFM)

FM в различных сетевых структурах, упомянутых выше, заставляет векторы различных признаков напрямую пересекаться при выполнении пересечения признаков, исходя из предположения, что каждое пересечение признаков вносит одинаковый вклад в оценочный результат ctr. Это предположение на самом деле необоснованно, при пересечении разных признаков вклад в результат предсказания ctr разный. Машины нейронной факторизации внимания, или сокращенно модель NFM, используют механизм внимания, который был успешным в области изображений, НЛП и речи в последние годы.На основе упомянутого выше NFM для решения этой проблемы вводится механизм внимания. проблема. Сетевая структура АСМ показана на рисунке 10. Как и в NFM, здесь опущена широкая часть, а прорисована только глубокая часть конструкции.

Рисунок 10 Структура модели АСМ

После того, как слой вложения AFM такой же, как и у NFM, после поэлементного произведения признаков f полей получается f * (f-1)/2 перекрестных элементов. В отличие от NFM, который непосредственно суммирует эти перекрестные элементы, AFM вводит сеть внимания, которая учитывает, что каждый из этих перекрестных элементов вносит свой вклад в результат, например, важность веса xi и xj, который представлен aij. С этой точки зрения АСМ фактически представляет собой процесс взвешенного накопления. Вес aij части Attention Net не изучается напрямую, а выражается следующей формулой

Здесь t представляет измерение скрытого слоя в сети внимания, а k такое же, как и предыдущее, которое является размером встраивающего слоя. Таким образом, здесь нужно изучить 3 параметра, W, b, h, и количество параметров равно t*k+2*t. После получения веса aij после взвешенного накопления двухточечного произведения каждого признака получается k-мерный вектор, вводится простой вектор параметров pT, размерность k для обучения, и окончательный вывод АСМ получается вместе с широкой частью.

Подводя итог сетевой структуре AFM, она имеет следующие характеристики:

оAttention Network

Изюминкой AFM является создание веса элемента пересечения признаков через сеть внимания, а затем непосредственное накопление исходного квадратичного элемента FM для получения взвешенного накопления. по сути являетсяСредневзвешенное, изучите перекрестную важность xjxj

оDeep Network

Не глубоко, пешка.

Элементы пересечения, изученные сетью Attention, выводятся напрямую путем изучения некоторых параметров pt.Без выражения части DNN может возникнуть узкое место в дальнейшем изучении части функции высокого порядка. Кроме того, FFM фактически вводит понятие поля, чтобы узнать вес между полем и функцией. Без АСМ глубокой части верхний предел оптимизированного FFM должен быть относительно близок.

AFM = FM + встраивание + внимание + MLP (один слой)

Параметры для изучения:

(1) Параметры партии FM: 1+n

(2) Параметры встраиваемой части: n*k

(3) Некоторые параметры сети внимания: k*t+t*2

(4) параметры детали MLP: k*1

9. Deep&CrossNetwork(DCN)

Кроссовер функций — важный шаг в оценке CTR, но текущая структура сети в лучшем случае учится только вторичным кроссоверам. Модель LR использует исходные искусственные перекрестные функции, FM автоматически изучает перекрестные признаки второго порядка xi и xj, а PNN использует метод произведения для кроссовера второго порядка.И NFM, и AFM также используют метод двойного взаимодействия. изучить кроссовер признаков второго порядка. Для пересечений признаков более высокого порядка остается изучить только глубину. Чтобы решить эту проблему, в 2017 году Google предложил модель Deep&Cross Network, сокращенно DCN, которая может произвольно комбинировать функции без добавления сетевых параметров. На рис. 11 показана структура DCN.

Рис. 10 Структура модели DCN

Вся сеть состоит из 4 частей:

(1) Слой встраивания и наложения

Причина, по которой мы не рассматриваем встраивание и стекирование отдельно, заключается в том, что во многих случаях процессы встраивания и стекирования неразделимы. Для различных сетевых структур FM на основе XX, упомянутых выше, вектор v, изученный FM, может очень хорошо использоваться для встраивания. Во многих реальных бизнес-структурах может уже быть извлечена информация о встроенных функциях, например, о внедрении функций изображения, внедрении текстовых функций, внедрении элементов и т. д., а также другая непрерывная информация о ценности, такая как возраст, уровень дохода и т. д. векторы встраивания складываются вместе, они вместе используются в качестве входных данных последующей сетевой структуры. Конечно, эта часть также может быть встроена в FM, упомянутый ранее. Чтобы не противоречить исходной статье, здесь мы предполагаем, что размерность вектора X0 равна d (k в приведенной выше структуре сети), и подход этого уровня заключается в простом объединении различных векторов встраивания.

(2) Сеть глубокого уровня

После уровня внедрения и стекирования сеть делится на два пути, один из которых представляет собой традиционную структуру DNN. выражается следующим образом

Для упрощения понимания предполагается, что в каждом слое сети имеется m параметров, а всего слоев Ld.Входной слой имеет параметры d*m (d — размерность вектора x0) из-за связь с предыдущим уровнем.Последующий уровень Ld-1, каждый уровень требует m*(m+1) параметров, поэтому общие параметры, которые необходимо изучить, равны d*m+m*(m+1)*(Ld-1) . Конечным выходом также является m-мерный вектор Hl2

(3) Межуровневая сеть

Другой путь после ввода слоя Embedded и Stacking — ключевая работа DCN. Предполагая, что в сети есть уровни L1, отношение между каждым уровнем и предыдущим уровнем может быть представлено следующим отношением

Можно видеть, что f — это функция, которую нужно подобрать, а xl — сетевой вход предыдущего слоя. Изучаемыми параметрами являются wl и bl, поскольку размерность xl равна d, вход xl+1 сети текущего уровня также является d-мерным, а параметры wl и bl, которые необходимо изучить, также являются векторами d-размерности. Таким образом, каждый слой имеет 2*d параметров (w и b) для изучения, а структура сети выглядит следующим образом.

После межуровневой сети слоя Lc выход последнего слоя Lc слоя представляет собой d-мерный вектор Lc2.

(4) Комбинированный выходной слой

После того, как выходной XL1 (размер d) кросс-сети и входной вектор (размер m) после того, как глубокая сеть напрямую объединены, он становится вектором d + m, и, наконец, устанавливается модель LR, а параметры обучения равны 1+. д+м.

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

DCN = заделка + крест + глубокая + LR

Изучаемые параметры:

(1) Некоторые параметры встраивания: зависит от ситуации

(2) Параметры кросс-части: 2*d*Lc (Lc — количество слоев кросс-сети)

(3) Параметры глубокой части: d*(m+1)+m*(m+1)*(Ld-1) (Ld — количество слоев глубокой сети, m — сетевой параметр каждого слоя)

(4) параметры части LR: 1+d+m

10. Deep Interest Network (DIN)

Наконец, сеть Deep Interest, предложенная Али в 2017 году, называется моделью DIN. В отличие от алгебраических парадигм низкого порядка, представленных FNN, PNN и т. д. выше, ядро ​​DIN основано на неотъемлемых характеристиках данных, и вводится парадигма обучения более высокого порядка. Интересы пользователей разнообразны, с математической точки зрения интересы пользователей имеют мультимодальное распределение в пространстве интересов. При прогнозировании ctr многие параметры интереса, выраженные встраиванием пользователя, не связаны с тем, был ли нажат текущий элемент или нет, а связаны только с локальной информацией, представляющей интерес для пользователя. Поэтому, вдохновленный механизмом внимания, DIN выполняет действие после встраивания слоя. Работа устройства после изучения распределения интересов пользователя и ввода его в DNN, структура сети показана на рисунке 12.

Рис. 12 Структура модели DIN

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

• Vu: представляет конечный вектор пользователя.

• Vi: представляет вектор интереса пользователя (shop_id, good_id..)

• Va: представляет вектор представления рекламы.

• Wi: для рекламных объявлений-кандидатов вес интереса в механизме внимания

Можно видеть, что для каждого вектора интереса Vi пользователя вес интереса Vi будет изучен как окончательное представление пользователя.

В-третьих, напишите в конце

Ранее была представлена ​​сетевая структура 10 моделей глубокого обучения, которую можно резюмировать следующим образом.

Различные модели глубины CTR имеют разную структуру, но на самом деле большинство из них можно выразить в следующей общей парадигме:

оinput->embedding

Сопоставьте идентификаторы крупномасштабных разреженных объектов с низкоразмерными плотными векторами встраивания с помощью операций встраивания

овектор слоя встраивания

Объединение, суммирование, объединение средних и другие операции, большинство моделей CTR модифицируются на этом уровне.

оembedding->output

В общей полносвязной структуре DNN входная шкала уменьшена с n до k*f измерения или даже ниже.

Рис. 3. Общая структура модели глубокого обучения

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

Рис. 14 Метод слияния встраивания слоев

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

напиши в конце

В отличие от изображения, речи и других полей, которые имеют непрерывные и плотные данные и хорошую локальную корреляцию в пространстве и времени, большинство входных данных в прогнозировании ctr являются дискретными и многомерными, а признаки также разбросаны по небольшому количеству различных поле. Чтобы решить такую ​​модель глубокого обучения, первая проблема, с которой столкнулись, заключается в том, как использовать слой внедрения, чтобы уменьшить размерность входного вектора, чтобы спланировать плотный и непрерывный вектор, как описано в этой статье, использовать FM для предварительного обучения или совместно обучать с помощью модели или вектора признаков встраивания, извлеченного из других источников данных, для выполнения concat. Во-вторых, в войне между широким и глубоким, после того как Google предложил модельную структуру широкого и глубокого, эта система в основном стала базовой структурой отрасли. Как бы ни трансформировалась широкая часть или глубокая, на самом деле это соединение каких-то общих компонентов, или трансформация широкой, или трансформация глубокой, или трансформация в процессе соединения широкой и глубокой.

В области предсказания ctr происходят бесконечные изменения, но верно то же самое. Различные модели, по сути, представляют собой комбинацию основных компонентов. Как объединить собственный бизнес, данные и сценарии приложений для выбора подходящего модельного приложения, может быть реальной трудностью. . . .

4. Ссылки

[1]Factorization Machines

[2]Wide & Deep Learning for Recommender Systems

[3]Deep Learning over Multi-Field Categorical Data: A Case Study on User Response Prediction

[4]Product-based Neural Networks for User Response Prediction

[5]DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

[6]Neural Factorization Machines for Sparse Predictive Analytics

[7] Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks

[8]Deep & Cross Network for Ad Click Predictions

[9]Deep Interest Network for Click-Through Rate Prediction