Приветствую всех вСообщество облачных технологий Tencent, получить больше крупной технической практики Tencent по галантерее ~
автор:Сучжоу Экспо
Глубокое обучение должно быть самое горячее слово в компьютерном круге за последние два года. Исходя из глубокого обучения, инженеры сделали захватывающий прогресс в изображении, речи, NLP и других областях. Хотя сам глубокое обучение постоянно изучается и развивается, предел его потенциала еще не виден.
Конечно, глубокое обучение не панацея, есть такие особенности, как много проблем, которые легко извлечь, мы можем получить хороший результат непосредственно SVM, алгоритм дерева решений. Глубина обучения не дает большой помощи. Есть некоторые проблемы, у нас нет достаточного количества данных, нам трудно получить модели, доступные алгоритмам глубокого обучения. Кроме того, некоторые проблемы вычислительных ресурсов и требования времени более жесткие, в то время как миниатюризация глубокого обучения не является прорывом, они не являются предпочтительным методом.
Правильная поза, чтобы судить, подходит ли проект для глубокого обучения
(Источник изображения:Руководство по противодействию мошенничеству с глубоким обучением)
С другой стороны, хотя глубокое обучение еще не совершило больших прорывов в области персонализированных рекомендаций и компьютерной рекламы, я думаю, что система рекомендаций имеет высокую вероятность стать одним из наиболее важных сценариев применения глубокого обучения. Причины следующие:
1. Существующая рекомендательная система должна работать с массивными данными и извлекать десятки тысяч или даже сотни миллионов пространственных признаков. Глубокое обучение само по себе является хорошей основой для обучения представлению, оно хорошо подходит для изучения комбинаций функций, которые люди не могут извлечь из массивных данных.
(Источник изображения:Руководство по противодействию мошенничеству с глубоким обучением)
2. Данные и функции определяют верхний предел машинного обучения, а модели и алгоритмы лишь приближаются к этому верхнему пределу. Существующие рекомендательные системы полагаются на эффект разработки признаков. Разработка признаков основана на постоянном глубоком понимании проблемы и доступе к дополнительным источникам данных. Однако общие категории функций, которые могут быть абстрагированы людьми, работающими с данными, ограничены, и становится все труднее получать новые источники данных и новые функции. С углублением разработки искусственных признаков трудовые ресурсы и время, затрачиваемые на разработку, становятся все больше и больше, а получаемые новые функции будут все меньше и меньше улучшать систему. В настоящее время использование глубокого обучения для выражения функций может быть лучшим выбором с точки зрения затрат.
Рисунок: Кривая повышения точности системы IBM Watson. Видно, что вначале результаты улучшались очень быстро, а чуть позже потребовалось много усилий, чтобы улучшиться.
Поэтому мы попробовали DNN в конкретном бизнесе на основе Tensorflow, пробежались по всему процессу и накопили некоторый опыт. Кроме того, он более чем на 20% улучшен онлайн по сравнению с оригинальной моделью LR. Я надеюсь, что эти коды также помогут студентам быстро внедрить глубокую модельную структуру в свой собственный бизнес.
Рисунок: Общая структура DNN в оценке CTR
Вообще говоря, мы можем выбрать относительно простую структуру, чтобы сначала выполнить весь процесс, а затем постепенно увеличивать сложность модели. Обычно мы можем выбрать структуру следующего рисунка и разделить данные, которые мы используем, на две категории: непрерывные и дискретные функции.
Для непрерывных функций необходимо выполнить некоторую нормализацию; для дискретных функций обычно требуется вложение для преобразования дискретной функции в N-мерный вектор. Длина этого вектора обычно пропорциональна пространству значений вектора. Этот процесс внедрения может быть реализован с помощью FM. В нашем коде это реализовано автоматически с помощью Tensorflow embedding_column.
Таким образом, пользовательские данные и данные рекомендуемого элемента объединяются в две категории, а затем дискретные функции и непрерывные функции после встраивания объединяются вместе в качестве входных данных нейронной сети, а выходом является то, нажата ли [0,1]. . Здесь мы напрямую вызываем DNNClassifier тензорного потока. Эта сеть может быть спроектирована с учетом количества слоев, размера каждого слоя, отсева, функции активации, скорости обучения и т. д.
opt = tf.train.AdamOptimizer(learning_rate=0.01,
beta1=0.9,
beta2=0.999) # default 0.001 0.9 0.999
m = tf.contrib.learn.DNNClassifier(model_dir=model_dir,
feature_columns=deep_columns,
hidden_units=[1024, 512, 256],
optimizer = opt,
activation_fn=tf.nn.relu, # default
dropout=0.05 )
Так что спина - это процесс постоянной настройки параметров, конечно, есть некоторые навыки в этой настройке параметров. Их много в сети, поэтому я не буду перечислять их все здесь.
Тюнер с глубоким обучением
(Источник изображения:Руководство по противодействию мошенничеству с глубоким обучением)
В общем, глубокое обучение не такое уж и загадочное, это очень эффективный инструмент. Многие команды должны были предпринять много попыток по персонализированным рекомендациям. Здесь мы даем простую и эффективную реализацию на основе Tensorflow и надеемся, что она поможет некоторым командам, которые хотят попробовать глубокое обучение.
(Источник изображения:Ли Му, давай научимся глубокому обучению вместе)
Связанное Чтение
[Я Джарвис]: расскажите об алгоритме глубокого обучения, который лежит в основе FaceID.
Эта статья была разрешена автором для публикации в сообществе Tencent Cloud Technology Community, укажите это при перепечатке.Источник статьи
Исходная ссылка: https://cloud.tencent.com/community/article/603674