Upload
cs-center
View
59
Download
2
Embed Size (px)
Citation preview
Предсказание ссылок в социальных сетях
Арсен ХажоянДекабрь 2016
Computer Science Center
актуальность
Кому это нужно?
• Социальные сети• e-commerce• Правоохранительные органы• Биоинформатики• Многие другие
2/22
постановка задачи
Социальная сеть представима в виде графа G(E, V):
• Вершина v ∈ V обозначает пользователясоциальной сети
• Ребро e = (u, v) ∈ E обозначает связь вида«пользователи u и v являются друзьями»
Некоторые рёбра в графе являются скрытыми изадача состоит в предсказании скрытых рёбер.
3/22
детали
В данных содержится информация о «характередружбы»: являются ли пользователи просто друзьями,или родственниками, или коллегами.
Tак же дана информация о самих пользователях:
• дата рождения и пол пользователя• страна и город, указанные в профиле• и прочее
4/22
предобработка
• Граф загружен в память в виде разреженнойматрицы csr_matrix из модуля scipy.sparse
• Информация о пользователях загружена в видеpandas.Dataframe
• Случайным образом скрыты 5% связей.
5/22
постановка задачи обучения
Поставлена задача бинарной классификации:
(u, v) →
1, u и v являются друзьями0, u и v не являются друзьями
Метрика — AUC-ROC.
6/22
матрица признаков
Базовая матрица признаков X:
• количество общих друзей двух пользователей• разница в возрасте• факт совпадения или различия:
• пола• города• страны• локации, из которой пользователь заходит чащевсего
7/22
предпосчёт количества общих друзей
• Матрица друзей F — симметричная: F = FT
• Матрица количества друзей C = FT · F = F2
• Для матрицы F = [500000× 500000] вычислениязаняли около двух минут
8/22
методы
Методы машинного обучения:
• метод k ближайших соседей (kNN)• метод опорных векторов (SVM)• случайный лес (Random Forest)• градиентный бустинг деревьев (XGBoost)
Подбор гиперпараметров:
• полный перебор по сетке параметров• случайный перебор
9/22
первый запуск
Запустим методы на базовой матрице признаков безизменений:
Таблица 1: Результаты методов:
Метод AUC–ROC
Random Forest 0.8704XGBoost 0.9145SVM 0.5486kNN 0.5564
10/22
сглаживание
Рис. 1: Гистограмма признака ”количество общих друзей”
11/22
сглаживание
Рис. 2: Гистограмма логарифма признака ”количествообщих друзей”
12/22
сглаживание
Таблица 2: Результаты методов до и после сглаживания:
Метод AUC–ROC до AUC–ROC после
SVM 0.5486 0.909kNN 0.5564 0.9112
13/22
масштабирование
• признаки распределены в разных интервалах• интервалы никак не связаны с важностьюпризнаков
• негативное влияние на метрические алгоритмы
Результаты kNN до и после масштабирования: 0.9112 и0.9117 соответственно.
14/22
коэффициент жаккара
Рассмотрим две ситуации:
• два пользователя, имеющие по 10 друзей каждый,имеют 2 общих друга;
• два пользователя, имеющие по 1000 друзейкаждый, имеют 2 общих друга;
Проблема: количества общих друзей равны, новероятность связи во второй паре ниже.
15/22
коэффициент жаккара
Решение: коэффициент Жаккара:
J(A,B) = |A ∩ B||A ∪ B| =
|A ∩ B||A|+ |B| − |A ∩ B| , 0 ≤ J(A,B) ≤ 1.
Результаты SVM до и после введения коэффициентаЖаккара: 0.909 и 0.9122 соответственно.
16/22
коэффициент адамик-адара
A(u, v) =∑
w∈common(u,v)
1log |w|
Таблица 3: Результаты методов до и после коэффициентаАдамик-Адара:
Метод AUC–ROC до AUC–ROC после
XGBoost 0.9145 0.9174SVM 0.9122 0.9163
17/22
ещё признаки
Идея — использовать характер связи. Добавимследующие признаки:
• количество друзей пользователя• отношение количества «близких» друзей кколичеству всех друзей
• отношение количества «обычных» друзей кколичеству «близких» друзей
Попробуем эти новые признаки с разнымикомбинациями признаков из предыдущихэкспериментов.
18/22
ещё признаки
Таблица 4: Результаты методов до и после добавленияпризнаков:
Метод AUC–ROC до AUC–ROC после
Random Forest 0.9002 0.9221XGBoost 0.9174 0.9421SVM 0.9163 0.9402kNN 0.9104 0.9282
19/22
оптимизация гиперпараметров
Выберем лучшие модели (XGBoost и SVM) и совершимполный перебор гиперпараметров.
Таблица 5: Результаты методов до и после оптимизациигиперпараметров:
Метод AUC–ROC до AUC–ROC после
XGBoost 0.9421 0.9445SVM 0.9402 0.9425
20/22
персонализированный page rank
• метод, учитывающий структуру графа• основан на Page Rank• вычислен с помощью Power Method
21/22
заключение
• проведено сравнение ряда методов предсказанияссылок
• успешно использована дополнительнаяинформация о связях
• написан код, работающий с разреженнымиматрицами
22/22