Автор:
Евгений Петренко (https://vk.com/mrevgenx)
Описание:
В докладе расскажу, как добиться дополнительного ускорения сложных вычислений. Будут разобраны подводные камни многопоточности в CUDA, перечислены особенности оптимизиции программ для графического процессора и представлены полезные средства отладки и профилирования. Дополнительно приведу примеры из собственного опыта распараллеливания и оптимизации такого рода программ.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №3 "Различные алгоритмы кластеризации"
Лектор - Николай Анохин
Иерархическая кластеризация. Agglomerative и Divisive алгоритмы. Различные виды расстояний между кластерами. Stepwise-optimal алгоритм. Случай неэвклидовых пространств. Критерии выбора количества кластеров: rand, silhouette. DBSCAN.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №6 "Линейные модели для классификации и регрессии"
Лектор - Николай Анохин
Обобщенные линейные модели. Постановка задачи оптимизации. Примеры критериев. Градиентный спуск. Регуляризация. Метод Maximum Likelihood. Логистическая регрессия.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Автор:
Евгений Петренко (https://vk.com/mrevgenx)
Описание:
В докладе расскажу, как добиться дополнительного ускорения сложных вычислений. Будут разобраны подводные камни многопоточности в CUDA, перечислены особенности оптимизиции программ для графического процессора и представлены полезные средства отладки и профилирования. Дополнительно приведу примеры из собственного опыта распараллеливания и оптимизации такого рода программ.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №3 "Различные алгоритмы кластеризации"
Лектор - Николай Анохин
Иерархическая кластеризация. Agglomerative и Divisive алгоритмы. Различные виды расстояний между кластерами. Stepwise-optimal алгоритм. Случай неэвклидовых пространств. Критерии выбора количества кластеров: rand, silhouette. DBSCAN.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №6 "Линейные модели для классификации и регрессии"
Лектор - Николай Анохин
Обобщенные линейные модели. Постановка задачи оптимизации. Примеры критериев. Градиентный спуск. Регуляризация. Метод Maximum Likelihood. Логистическая регрессия.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №4 "Задача классификации"
Лектор - Николай Анохин
Постановка задач классификации и регрессии. Теория принятия решений. Виды моделей. Примеры функций потерь. Переобучение. Метрики качества классификации. MDL. Решающие деревья. Алгоритм CART.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
В задачах интерполяции функций по заданным значениям функции для заданного набора аргументов широко применяется формула аппроксимации функции полиномом, совпадающего в заданных точках со значениями исследуемой функции. Обобщим эту формулу на случай функции нескольких переменных.
Выявление ошибок и потенциальных уязвимостей в C и C++ коде с помощью анализа...Andrey Karpov
Будут продемонстрированы интересные ошибки и потенциальные уязвимости, обнаруженные в открытых проектах с помощью статического анализатора кода PVS-Studio. Подробно разберём эти ошибки и расскажем, как именно анализатор их обнаруживает. После чего, основываясь на вопросах из аудитории, будет рассказано о принципах работы анализатора и тех возможностях, которые вызовут наибольший интерес у слушателей.
Рассказ про рекомендательные системы в целом, о том, какие они бываю и какие данные используют. Краткий разбор kNN-модели и SVD, рассказ о том, как применять SGD и ALS для обучения SVD. Обучение implicit SVD через iALS. Методы построения объяснений к рекомендациям. Обзор основных метрик качества Модель Personalized Bayesian Ranking в качестве примера learning to rank framework.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №7 "Машина опорных векторов"
Лектор - Николай Анохин
Разделяющая поверхность с максимальным зазором. Формулировка задачи оптимизации для случаев линейно-разделимых и линейно-неразделимых классов. Сопряженная задача. Опорные векторы. KKT-условия. SVM для задач классификации и регрессии. Kernel trick. Теорема Мерсера. Примеры функций ядра.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №4 "Задача классификации"
Лектор - Николай Анохин
Постановка задач классификации и регрессии. Теория принятия решений. Виды моделей. Примеры функций потерь. Переобучение. Метрики качества классификации. MDL. Решающие деревья. Алгоритм CART.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
В задачах интерполяции функций по заданным значениям функции для заданного набора аргументов широко применяется формула аппроксимации функции полиномом, совпадающего в заданных точках со значениями исследуемой функции. Обобщим эту формулу на случай функции нескольких переменных.
Выявление ошибок и потенциальных уязвимостей в C и C++ коде с помощью анализа...Andrey Karpov
Будут продемонстрированы интересные ошибки и потенциальные уязвимости, обнаруженные в открытых проектах с помощью статического анализатора кода PVS-Studio. Подробно разберём эти ошибки и расскажем, как именно анализатор их обнаруживает. После чего, основываясь на вопросах из аудитории, будет рассказано о принципах работы анализатора и тех возможностях, которые вызовут наибольший интерес у слушателей.
Рассказ про рекомендательные системы в целом, о том, какие они бываю и какие данные используют. Краткий разбор kNN-модели и SVD, рассказ о том, как применять SGD и ALS для обучения SVD. Обучение implicit SVD через iALS. Методы построения объяснений к рекомендациям. Обзор основных метрик качества Модель Personalized Bayesian Ranking в качестве примера learning to rank framework.
ИТМО Machine Learning. Рекомендательные системы — часть 2Andrey Danilchenko
Лекция-введение в рекомендательные системы в рамках курса по машинному обучению для студентов четвертого курса на кафедре КТ ИТМО. Часть 2 — explanations, RBM, evaluation metrics, BPR
ИТМО Machine Learning. Рекомендательные системы — часть 1Andrey Danilchenko
Лекция-введение в рекомендательные системы в рамках курса по машинному обучению для студентов четвертого курса на кафедре КТ ИТМО. Часть 1 — kNN, SVD, iALS.
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №10 "Алгоритмические композиции. Завершение"
Лектор - Владимир Гулин
Ключевые идеи бустинга. Отличия бустинга и бэггинга. Алгорим AdaBoost. Градиентный бустинг. Мета-алгоритмы над алгоритмическими композициями. Алгоритм BagBoo.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...Mail.ru Group
Существуют три наисложнейшие проблемы в программировании: именование, кэширование и выход за границу массива. Проверка пограничных случаев поведения кода наиболее важна, но эта зона также наименее тестируема. Придумать и предугадать все возможные ситуации человеку тяжело, и порой мы что-то упускаем из виду. Вот было бы здорово, если бы тесты сами находили такие случаи, при которых код падает… Мечты? О том, как превратить их в реальность, и рассказал Александр.
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лектор - Николай Анохин
Постановка задачи кластеризации. Функции расстояния. Критерии качества кластеризации. EM-алгоритм. K-means и модификации.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Факторизационные модели в рекомендательных системахromovpa
Факторизационные модели, модели разложения матриц для коллаборативной фильтрации в рекомендательных системах. В презентации рассматриваются теоретические аспекты и алгоритмы.
С доклада на спецсеминаре "Machine Learning & Information Retrieval" в Школе Анализа Данных Яндекса.
Методы машинного обучения в физике элементарных частицAndrey Ustyuzhanin
рассмотрим основные этапы обработки данных физики высоких энергий на примере одного из экспериментов Большого Адронного Коллайдера — LHCb; мы увидим насколько похожими оказываются решения отдельных задач LHCb на решения, используемые в Яндексе.
Предлагаемый угол зрения на проблемы физики элементарных частиц позволяет увидеть возможности, открывающиеся от взаимного расширения спектра методов и технологий, а также возможность проведении междисциплинарных исследований, способных усилить каждую из этих областей.
Николай Паламарчук "Functional Programming basics for PHP developers"Fwdays
Functional Programming becomes very popular nowadays. What is it? Is it a hype or panacea? Should you deal with it as a PHP programmer? Let's find out!
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
Евгений Крутько, НИЦ «Курчатовский институт».
В докладе на примере программы моделирования динамики движения конструкций по методу конечных элементов рассматриваются возможности и практика распараллеливания вычислений. Речь в нём пойдёт как о технике создания новых вычислительных потоков, так и об использовании стандартов openMP и MPI.
Similar to ITMO RecSys course. Autumn 2014. Lecture 4 (20)
3. Restricted Boltzmann Machine (for user)
F — # of features
Missing
Missing
Missing
Missing
h
W
V
Binary hidden units
Visible movie ratings
… …
# of movies
Weights
(shared between all users)
4. Model distributions
For n users, m movies, ratings from 1 to K, binary features from 1 to F:
k =1|
p vi
!
( h) =
FΣ
k + hjWij
exp bi
k
j=1
"
# $$
%
& ''
FΣ
l + hjWij
exp bi
l
j=1
"
# $$
%
& ''
KΣ
l=1
p hj =1|
!
KΣ
mΣ
( V) =σ bj + vi
kWij
k
k=1
i=1
"
# $
%
& '
, где
1
σ (x) =
1+ e−x p
!
(V) =
exp −E
!
V,
!
( ( h))
!
exp −E
V ',
!
! ( ( h '))
Σ
! Σ
!
V ',
h ' h
E
( !
!
V,
h) = − Wij
khjvi
k
KΣ
k=1
FΣ
j=1
mΣ
i=1
, где энергия задается как
kbi
KΣ
mΣ
− vi
k
k=1
i=1
FΣ
− hjbj
j=1
5. Обучение — data part
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh)
j data
j predicted =ε vi
− vi
Получаем из данных:
1. для каждого обучающего примера v, выведем h
2. посчитаем частоту, с которой фильм i получил рейтинг k при
соответствующем h
6. Обучение — model part
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh)
j data
j predicted =ε vi
− vi
Трудно получать аналитически, работает экспоненциальное время
7. Contrastive divergence
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh) ≈
j data
j predicted =ε vi
− vi
( khkh)
j data
j recon ≈ε vi
− vi
Восстановим из данных:
1. для каждого обучающего примера v, выведем h
2. восстановим v’ из h
3. посчитаем “reconstruct”-часть
8. Sampling reconstruction part in CD
khj recon ( ) =ε vi
k =ε vi
ΔWij
khj data
− vi
( kh− vkh)
j data
i
j T Будем сэмплировать по Гиббсу из распределений,
делая T шагов.
k =1|
p vi
!
( h)
!
p h=1|
j ( V)
Начальная точка сэмплирования — наблюдаемые данные
Количество шагов T будем увеличивать в процессе обучения.
Таким образом мы будем получать все более «точные» приближения.
9. Gibbs sampling
Пускай есть d случайных величин и дано их совместное распределение
p x1, x2…xd ( )
Пусть на шаге t уже выбрано приближение Xt = xi
d
t { }i=1
Тогда на t+1 шаге:
1. выберем индекс i
t ( )
t+1 p xi | x1
2. выберем x по распределению i
t…xi−1
t …xd
t , xi+1
Обычно индекс выбирается как i = (t +1)%d
10. Общая схема обучения
1. посчитаем data-part (для каждого пользователя и его рейтинга)
2. выведем reconstruction-part для данного рейтинга
3. усредним градиенты по всем пользователям
4. запустим log-likelihood gradient ascend
12. Предсказание рейтингов
k =1|
p vi
!
( V)∝ exp −E vq
Σ k,
∝
!
V,
!
( ( h))
h1…hp
Σ + vi
Σ
FΠ
k exp vi
∝Γq
lhjWij
l
il
khjWij
k + hjbj
%
& '
(
) *
hj∈{0,1}
j=1
=
Σ + vi
FΠ где Γq
k 1+ exp vi
= Γq
lWij
l
il
kWij
k + bj
%
& '
(
) *
%
& ''
(
) **
j=1
k ( )
k = exp vq
kbq
Получили вероятность, что пользователь поставит фильму i оценку k
13. Что делать с вероятностями?
Два варианта:
1. просто взять оценку, у которой вероятность максимальна
2. нормализовать вероятности так, чтобы
p(vi = k)
KΣ
k=1
=1
и посчитать предсказание как E vi [ ]
14. Предсказание множества рейтингов
14
Если требуется предсказать рейтинги для n фильмов, то
можно посчитать вероятность:
k1 =1, vq2
p vq1
k2 =1,…, vqn
kn =1|
!
( V)
Но это требует O(Kn) времени!
15. Multi-predict trick
15
Давайте сделаем один update-шаг:
ˆpj = p hj =1|
!
KΣ
mΣ
( V) =σ bj + vi
kWij
k
k=1
i=1
"
# $
%
& '
k ( =1| pˆ) =
p vq
FΣ
k + ˆpjWqj
exp bq
k
j=1
"
%
''
& $$# FΣ
k + ˆpjWqj
exp bq
l
j=1
"
# $$
%
& ''
KΣ
l=1
И снова вычислим предсказания как матожидание.
Это немного хуже по качеству, но намного быстрее!
16. Gaussian hidden units
16
Можно ввести расширение модели, считая скрытые переменные
гауссовскими. Тогда вероятности в модели примут вид:
k =1|
p vi
!
( h) =
FΣ
k + hjWij
exp bi
k
j=1
"
# $$
%
& ''
FΣ"
# $$
l + hjWij
exp bi
l
j=1
%
& ''
KΣ
l=1
p hj = h |
!
( V) =
1
2Πσ i
&&&&&
exp −
kWij
KΣ
mΣ
h − bj −σ j vi
k
k=1
i=1
$
% &
'
( )
2
2
2σ i
$
%
'
)))))
(
N.B. для единичной дисперсии формулы обновления те же!
19. Classification quality
Истинный ответ 0 Истинный ответ 1
Confusion matrix:
Предсказали 0 TN FN
Предсказали 1 FP TP
P =
TP
TP + FP
R =
TP
TP + FN
F1 =
2
1
P
+
1
R
Precision:
Recall:
20. More on classification quality
nΣ
AP = P(k)Δr(k)
k=1
MAP =
AP(q)
Σ
q∈Q
Q
Average precision:
Mean average precision:
MAP — средняя точность на позициях, где есть попадания в top k.
22. Ranking quality (NDCG)
Пусть для каждого пользователя и item-а задана «релевантность» r
DCGu = r1 +
nΣ
ri
log2 i i=2
NDCGu =
DCGu
IDCGu
NDCG =
NDCGu
U
25. BPR: problem setting
Для пользователей u из U и фильмов i из I составим обучающее множество
как тройки:
+ ^ j ∈ I Iu
DS = {(u, i, j) : i ∈ Iu
+}
+ — фильмы с implicit feedback для данного пользователя
где Iu
>u — полный порядок на фильмах, причем выполняются свойства:
∀i, j ∈ I : i ≠ j⇒i >u j∨ j >u i
∀i, j ∈ I : i >u j ^ j >u i⇒i = j
∀i, j, k ∈ I : i >u j ^ j >u k ⇒i >u k
полнота
антисимметричность
транзитивность
26. Байесовская формулировка
p(Θ|>u )∝ p(>u |Θ) p(Θ)
Тогда для всех пользователей запишем:
Π p ( Θ|>)
= p ( i >δ j |Θ)((u,i, j )∈DS )
u u u∈U
Π ⋅
u,i, j∈U×I×I
⋅ 1− p i >u ( ( j |Θ))δ ((u,i, j )∉DS )
Тогда по свойствам порядка это можно упростить:
Π p ( Θ|>)
= p ( i >j |Θ)
u u u∈U
Π
u,i, j∈Ds
27. Preference model
Окончательно определим модель как:
p(i >u j |Θ) =σ (xˆuij (Θ))
Здесь ˆ xuij — «встроенная» модель, которая отслеживает
связь между u, i и j. Например,
- матричное разложение
- модель kNN
30. Еще раз о модели рейтинга
Распишем ˆ xuij = ˆ xui − ˆ xuj
В случае разложения матриц
kΣ
ˆ xui = wu, hi = wuf hif
f =1
Тогда производные распишутся как
∂ˆ xuij
∂θ
=
(hif − hjf )
wuf
−wuf
0
если θ = wuf
если θ = hif
если θ = hjf
иначе
31. Удачи!
Андрей Данильченко
группа разработки рекомендательных систем, Яндекс
danilchenko@yandex-team.ru
http://www.4ducks.ru/itmo-rs-2014-lecture-4.html