22
Предсказание ссылок в социальных сетях Арсен Хажоян Декабрь 2016 Computer Science Center

Предсказание ссылок в социальных сетях. Презентация участников

Embed Size (px)

Citation preview

Page 1: Предсказание ссылок в социальных сетях. Презентация участников

Предсказание ссылок в социальных сетях

Арсен ХажоянДекабрь 2016

Computer Science Center

Page 2: Предсказание ссылок в социальных сетях. Презентация участников

актуальность

Кому это нужно?

• Социальные сети• e-commerce• Правоохранительные органы• Биоинформатики• Многие другие

2/22

Page 3: Предсказание ссылок в социальных сетях. Презентация участников

постановка задачи

Социальная сеть представима в виде графа G(E, V):

• Вершина v ∈ V обозначает пользователясоциальной сети

• Ребро e = (u, v) ∈ E обозначает связь вида«пользователи u и v являются друзьями»

Некоторые рёбра в графе являются скрытыми изадача состоит в предсказании скрытых рёбер.

3/22

Page 4: Предсказание ссылок в социальных сетях. Презентация участников

детали

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

Tак же дана информация о самих пользователях:

• дата рождения и пол пользователя• страна и город, указанные в профиле• и прочее

4/22

Page 5: Предсказание ссылок в социальных сетях. Презентация участников

предобработка

• Граф загружен в память в виде разреженнойматрицы csr_matrix из модуля scipy.sparse

• Информация о пользователях загружена в видеpandas.Dataframe

• Случайным образом скрыты 5% связей.

5/22

Page 6: Предсказание ссылок в социальных сетях. Презентация участников

постановка задачи обучения

Поставлена задача бинарной классификации:

(u, v) →

1, u и v являются друзьями0, u и v не являются друзьями

Метрика — AUC-ROC.

6/22

Page 7: Предсказание ссылок в социальных сетях. Презентация участников

матрица признаков

Базовая матрица признаков X:

• количество общих друзей двух пользователей• разница в возрасте• факт совпадения или различия:

• пола• города• страны• локации, из которой пользователь заходит чащевсего

7/22

Page 8: Предсказание ссылок в социальных сетях. Презентация участников

предпосчёт количества общих друзей

• Матрица друзей F — симметричная: F = FT

• Матрица количества друзей C = FT · F = F2

• Для матрицы F = [500000× 500000] вычислениязаняли около двух минут

8/22

Page 9: Предсказание ссылок в социальных сетях. Презентация участников

методы

Методы машинного обучения:

• метод k ближайших соседей (kNN)• метод опорных векторов (SVM)• случайный лес (Random Forest)• градиентный бустинг деревьев (XGBoost)

Подбор гиперпараметров:

• полный перебор по сетке параметров• случайный перебор

9/22

Page 10: Предсказание ссылок в социальных сетях. Презентация участников

первый запуск

Запустим методы на базовой матрице признаков безизменений:

Таблица 1: Результаты методов:

Метод AUC–ROC

Random Forest 0.8704XGBoost 0.9145SVM 0.5486kNN 0.5564

10/22

Page 11: Предсказание ссылок в социальных сетях. Презентация участников

сглаживание

Рис. 1: Гистограмма признака ”количество общих друзей”

11/22

Page 12: Предсказание ссылок в социальных сетях. Презентация участников

сглаживание

Рис. 2: Гистограмма логарифма признака ”количествообщих друзей”

12/22

Page 13: Предсказание ссылок в социальных сетях. Презентация участников

сглаживание

Таблица 2: Результаты методов до и после сглаживания:

Метод AUC–ROC до AUC–ROC после

SVM 0.5486 0.909kNN 0.5564 0.9112

13/22

Page 14: Предсказание ссылок в социальных сетях. Презентация участников

масштабирование

• признаки распределены в разных интервалах• интервалы никак не связаны с важностьюпризнаков

• негативное влияние на метрические алгоритмы

Результаты kNN до и после масштабирования: 0.9112 и0.9117 соответственно.

14/22

Page 15: Предсказание ссылок в социальных сетях. Презентация участников

коэффициент жаккара

Рассмотрим две ситуации:

• два пользователя, имеющие по 10 друзей каждый,имеют 2 общих друга;

• два пользователя, имеющие по 1000 друзейкаждый, имеют 2 общих друга;

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

15/22

Page 16: Предсказание ссылок в социальных сетях. Презентация участников

коэффициент жаккара

Решение: коэффициент Жаккара:

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

Page 17: Предсказание ссылок в социальных сетях. Презентация участников

коэффициент адамик-адара

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

Page 18: Предсказание ссылок в социальных сетях. Презентация участников

ещё признаки

Идея — использовать характер связи. Добавимследующие признаки:

• количество друзей пользователя• отношение количества «близких» друзей кколичеству всех друзей

• отношение количества «обычных» друзей кколичеству «близких» друзей

Попробуем эти новые признаки с разнымикомбинациями признаков из предыдущихэкспериментов.

18/22

Page 19: Предсказание ссылок в социальных сетях. Презентация участников

ещё признаки

Таблица 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

Page 20: Предсказание ссылок в социальных сетях. Презентация участников

оптимизация гиперпараметров

Выберем лучшие модели (XGBoost и SVM) и совершимполный перебор гиперпараметров.

Таблица 5: Результаты методов до и после оптимизациигиперпараметров:

Метод AUC–ROC до AUC–ROC после

XGBoost 0.9421 0.9445SVM 0.9402 0.9425

20/22

Page 21: Предсказание ссылок в социальных сетях. Презентация участников

персонализированный page rank

• метод, учитывающий структуру графа• основан на Page Rank• вычислен с помощью Power Method

21/22

Page 22: Предсказание ссылок в социальных сетях. Презентация участников

заключение

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

• успешно использована дополнительнаяинформация о связях

• написан код, работающий с разреженнымиматрицами

22/22