Centr-dostavki.ru

Центр Доставки
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Рекомендации» в ВК, как работает эта лента

«Рекомендации» в ВК, как работает эта лента

рекомендации в вк как работает эта лента

В этой статье я расскажу о разделе «Рекомендации» в ВК: как работает эта лента, как ее найти и ею управлять. Многие пользователи уже давно по достоинству оценили преимущества «Рекомендаций». Главные из них – это:

  • востребованный интересный контент;
  • разнообразие;
  • возможность найти новые источники информации.

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

Где находятся возможные друзья

Начать следует с простого. Определить расположение данного блока не так уж и сложно. Логично, что он находится в разделе «Друзья». Именно туда необходимо перейти со своей страницы, чтобы увидеть список возможных друзей.

Окно со списком возможных друзей в ВК

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

После обновления изменились не только стандартные функции ВК, но и блок возможных друзей. Видимо, разработчики посчитали старое расположение не совсем удобным, поэтому переместили его. Теперь он находится справа, занимая отдельное пространство на вкладке «Друзья». Сделав переход по активной кнопке, можно будет ознакомиться с полным предоставленным списком. Также возможных друзей можно найти, как и прежде, перейдя по активной ссылке «Найти друзей».

Опция "Найти друзей" в ВК

Этот раздел может порекомендовать Вам тех, с кем Вы могли бы подружиться. Вы сразу же сможете нажать на иконку «Добавить в друзья». К запросу можно будет добавить сообщение, в котором указать, почему Вы решили пообщаться с этим пользователем.

Кнопка для добавления человека в друзья

При этом, человек получит уведомление с указанием количества Ваших общих друзей. Такой простой способ используют многие пользователи, желающие расширить свой френдлист.

Рекомендованные новости ВКонтакте

Где располагается раздел рекомендаций? Если перейти в новостную ленту и посмотреть в правую часть экрана, где находится меню, то там можно увидеть пункт “Рекомендации”.

пункт рекомендации в меню новостей

Если переходим в этот раздел, то здесь будут отображаться не все записи подряд, а только те, которые выбраны специально для вас особым алгоритмом.

Как формируется лента рекомендаций

Каким же образом сайт ВКонтакте предлагает нам интересные новости? Здесь заложен сложный алгоритм, который анализирует, кто ваши друзья и подписчики, чьи страницы чаще всего вы просматриваете и комментируете, а также кому ставите лайки и чьи записи репостите к себе на стену или в свое сообщество. На основе такого анализа вычисляются ваши предпочтения и интересы, и предлагаются именно те посты, которые наиболее интересны вам. Чаще всего ВК угадывает с советами и вперед выдает наиболее интересное и актуальное для вас.

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

Как управлять рекомендациями

В разделе “Рекомендации” довольно простые настройки . Здесь нет никаких меню, но напротив каждой фотографии есть иконка с тремя точками. Если кликнуть по ней, то в выпадающем списке мы увидим три пункта:

  • это не интересно;
  • уведомлять о записях;
  • пожаловаться.
Читайте так же:
Что обеспечивает техническое обслуживание?

что сделать с предложенной записью

1. Как убрать рекомендации определенных друзей или сообществ? Если выбрать первый пункт, то на месте поста появится появится окно с предлагаемыми настройками. Здесь вы можете пожаловаться на запись, отменить действие или выбрать “Не показывать новости сообщества/пользователя”, нажав на соответствующую кнопку.

Неинтересная запись

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

записи сообщества исключены из ленты всех новостей

Может быть такое, что пост вам откровенно не понравился. Например, в ней может присутствовать оскорбление, призыв к агрессии или насилию и другие причины. Тогда вы можете “настучать” на запись администрации соцсети, нажав в этом разделе кнопку “Пожаловаться”. После этого в выпадающем списке можно выбрать причину жалобы.

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

2. Теперь давайте рассмотрим второй пункт выпадающего меню – “ Уведомлять о записях “. Если выбрать его, то все новости от выбранных групп или пользователей будут отображаться в ленте рекомендаций, а также вам будут приходить уведомления, если данное сообщество или человек опубликует новую запись.

Уведомления о рекомендованных новостях

Например, мы выставили в настройках “Уведомлять о записях” для сообщества “Нижний Новгород” и для пользователя “Валерия Никифорова”. Теперь мы будем получать персональное уведомление, когда выбранные сообщество и пользователь добавят новую информацию на стену.

Если вдруг вам надоело получать уведомления, то нужно сделать следующее:

  • перейти в раздел уведомления (иконка с изображением колокольчика вверху страницы);
  • далее выбрать запись и навести курсор на стрелочку справа от нее. После выбрать выпадающий пункт “Скрыть уведомление”;
  • после этого на месте уведомления появится надпись, что сообщение скрыто. Под ним нажимаем на “Не получать уведомления от”. Все, теперь сайт не будет извещать вас о новостях данного сообщества или пользователя.

отменить уведомления об избранных новостях

3. Третий пункт выпадающего меню – “Пожаловаться” . Мы уже говорили, что если запись нарушает действующее законодательство или распространяет запрещенный контент, вы можете в пару кликов сообщить об этом администрации соцсети. Для этого в выпадающем меню выбираем одноименный пункт:

пожаловаться на новость в ленте

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

Итого

На основе информации от спикеров мы составили несколько кратких выводов об автоуправлении ставками во «ВКонтакте».

Автоуправление ценой позволяет эффективно расходовать бюджет без завышения ставки.

Автоуправление подходит, если у кампании нет строгих временных ограничений, а ручное — если сроки сжатые, менее недели.

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

Не рекомендуется ставить ограничение ставки до того, как система обучится.

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

Цель «Максимум показов» стоит выбирать для охватной рекламы с таргетингом на пользовательскую аудиторию и небольшие теплые базы до 10 000 человек, а «Максимум переходов» подойдет для средних и больших баз от 25 000 человек.

Самые ожидаемые новинки во «ВКонтакте» — общий дневной лимит на рекламный кабинет, оптимизация за показы с целью «Конверсия», а также возможность вносить массовые изменения.

Читайте так же:
Как оценивается 19 задание в профильной математике?

Рекомендации друзей ВКонтакте: ML на эго-графах

Дружбы — одна из важнейших механик любой социальной сети. Подавляющее большинство взаимодействий происходит между пользователями, которые дружат: мы видим и комментируем записи друг друга в лентах, заходим в список друзей, чтобы найти знакомых и написать сообщение. Именно поэтому рост социального графа так важен.

Меня зовут Женя Замятин, я работаю в команде Core ML ВКонтакте. Хочу рассказать, как устроены рекомендации, которые делают ближе пользователей самой крупной социальной сети рунета.

Обзор

Современные рекомендательные системы зачастую состоят из двух уровней, и наша не исключение. Задача первого уровня — искать наиболее релевантных кандидатов среди всего множества пользователей (у нас их сотни миллионов). Такая постановка задачи подразумевает высокую скорость работы. Обычно здесь используют простые в применении модели — вроде матричных факторизаций или эвристики на базе числа общих друзей. Полученные на первом уровне кандидаты отправляются на второй. Здесь на модель уже не накладываются такие жёсткие ограничения по скорости, её главная задача — обеспечить максимальную точность предсказаний и сформировать список, который увидит пользователь. В этой статье мы рассмотрим только первый этап — уровень отбора кандидатов.

Прежде всего сформулируем задачу, которую будем решать: для каждого пользователя необходимо найти k кандидатов, которых он с наибольшей вероятностью добавит в друзья. Метрика, на которую будем ориентироваться, — recall@k. Она идеально описывает задачу: на первом уровне нам не интересен порядок кандидатов, но важна их релевантность.

Сначала рассмотрим базовые решения, придуманные десятки лет назад, но до сих пор актуальные. Первым приходит на ум одно из самых логичных — эвристика на основе числа общих друзей. Для каждого пользователя отбираются кандидаты с наибольшим таким значением. Этот подход просто реализуется и неплох по качеству.

Ещё один важный метод рекомендаций — Adamic/Adar. В его основе лежит всё тот же анализ общих друзей, но с модификацией: авторы предлагают учитывать число друзей у «общего» друга. Чем больше это значение, тем меньше информации о релевантности он несёт.

Кроме методов на основе анализа общих друзей, довольно распространены рекомендации на базе эмбеддингов. В Лаборатории искусственного интеллекта ВКонтакте в МФТИ мы провели исследование: сравнили эффективность разных подходов к задаче предсказания дружб в VK. Результаты совпали с нашим опытом — решения на базе графовых эмбеддингов у нас работают плохо. Учитывая это, мы стали развивать систему отбора кандидатов по пути анализа общих друзей.

EGOML

Общая схема нашего метода продолжает идеи числа общих друзей и Adamic/Adar. Финальная мера релевантности E(u, v) , с помощью которой мы будем отбирать кандидатов, всё так же раскладывается в сумму по общим друзьям u и v . Ключевое отличие — в форме слагаемого под суммой: в нашем случае это мера ez_c(u, v) .

Сначала попробуем понять «физический» смысл меры ez_c(u, v) . Представим, что мы взяли пользователя c и спросили у него: «Насколько вероятно, что два твоих друга, u и v , подружатся?» Чем больше информации для оценки он учтёт, тем точнее будет его предсказание. Например, если c сможет вспомнить только число своих друзей, его рассуждения могут выглядеть следующим образом: «Чем больше у меня друзей, тем менее вероятно, что случайные двое из них знакомы». Тогда оценка вероятность дружбы u и v (с точки зрения c ) может выглядеть как 1/log(n) , где n — число друзей. Именно так устроен Adamic/Adar. Но что если c возьмёт больше контекста?

Читайте так же:
Что означает логотип Хюндай?

Прежде чем отвечать на этот вопрос, разберёмся, почему ez_c(u, v) важно определять через пользователя c . Дело в том, что в таком виде очень удобно решать задачу распределённо. Представим, что теперь мы разослали всем пользователям платформы анкету с просьбой оценить вероятность дружбы в каждой паре их друзей. Получив все ответы, мы можем подставить значения в формулу E(u, v) . Именно так выглядит вычисление E(u, v) с помощью MapReduce:

Подготовка. Для каждого c выделяется тот контекст, который он будет учитывать для вынесения оценок. Например, в Adamic/Adar это будет просто список друзей.

Map. «Спрашиваем» у каждого c , что он думает про возможность дружбы в каждой паре его друзей. По сути, вычисляем ez_c(u, v) и сохраняем в виде (u, v) → ez_c(u, v) для всех u, v in N(c) . В случае Adamic/Adar: (u, v) → 1/log|N(c)| .

Reduce. Для каждой пары (u, v) суммируем все соответствующие ей значения. Их будет ровно столько, сколько общих друзей у u и v .

Таким образом мы получаем все ненулевые значения E(u, v) . Заметим: необходимое условие того, что E(u, v) > 0 , — существование хотя бы одного общего друга у u и v .

Эго-граф Хоппера

Эго-граф Хоппера

Контекстом пользователя c в случае меры ez_c будет тот же список друзей, но дополненный информацией о связях внутри этого списка. Такую структуру в науке называют эго-графом. Если более формально, эго-граф вершины x — это такой подграф исходного графа, вершинами которого являются все соседи x и сама x , а рёбрами — все рёбра исходного графа между этими вершинами. Коллеги из Одноклассников написали подробную статью об эго-графах и затронули в ней вопрос их эффективного построения.

Ключевая идея меры ez_c в том, что её можно сделать обучаемой. Для каждого пользователя c , его эго-графа и всех пар пользователей u , v внутри него мы можем посчитать много разных признаков, например:

число общих друзей u и v внутри эго-графа c ;

число общих друзей u и c ;

интенсивность взаимодействий между v и c ;

время, прошедшее с последней дружбы между u и кем-либо из эго-графа c ;

плотность эго-графа c ;

Таким образом мы получим датасет с признаками. Но для обучения нужны ещё и метки. Пусть датасет был построен по состоянию графа на момент времени T . Тогда в качестве положительных примеров возьмём те пары пользователей, которые не были друзьями на момент T , но подружились к T + △T . А как отрицательные — все остальные, не подружившиеся, пары пользователей. Заметим: поскольку мы решаем задачу предсказания новых дружб, те пары пользователей, которые уже дружат на момент T , учитывать не нужно ни на обучении, ни на применении.

В конечном счёте мы получаем датасет следующего вида:

для каждой пары пользователей u и v , а также их общего друга c , посчитаны признаки по эго-графу c ;

пара пользователей u и v встречается в датасете ровно столько раз, сколько у них общих друзей;

все пары пользователей в датасете не являются друзьями на момент времени T ;

для каждой пары u и v проставлена метка — подружились ли они в течение определённого промежутка времени начиная с T .

По такому датасету мы и будем обучать нашу меру ez_c . В качестве модели выбрали градиентный бустинг с pairwise функцией потерь, где идентификатором группы выступает пользователь u .
По сути, мера ez_c(u, v) определяется как предсказание описанной выше модели. Но есть один нюанс: при pairwise-обучении распределение предсказаний модели похоже на нормальное. Поэтому, если в качестве определения меры ez_c(u, v) взять «сырое» предсказание, может возникнуть ситуация, когда мы будем штрафовать финальную меру E(u, v) за общих друзей, так как значения предсказаний бывают отрицательными. Это выглядит не совсем логично — хочется, чтобы с ростом числа общих друзей мера E(u, v) не убывала. Так что поверх предсказания модели мы решили взять экспоненту:

Читайте так же:
Как подключить айфон к Киа Рио через блютуз?

Такой подход хорошо себя показывает на небольших графах. Но чтобы применить его на реальных данных, необходимо выполнить ещё одно действие. Суть проблемы такая: мы не можем вычислять признаки и применять модель для каждой пары пользователей всех эго-графов — это слишком долго. Для решения мы придумали специальный трюк. Представим, что наш градиентный бустинг обучился таким образом, что каждое дерево использует признаки только одного пользователя: либо u , либо v . Тогда мы могли бы разделить весь ансамбль на две группы: к группе A мы бы отнесли деревья, которые используют только признаки пользователя u , к B — пользователя v . Предсказание такой модели можно представить в виде:

Имея такую модель, мы могли бы получить предсказания для всех пар пользователей одного эго-графа быстрее. Достаточно применить модели A и B для каждого пользователя, а затем сложить соответствующие парам предсказания. Таким образом, для эго-графа из n вершин мы могли бы сократить число применений модели с O(n^2) до O(n) . Но как получить такую модель, каждое дерево которой зависит только от одного пользователя? Для этого сделаем следующее:

Исключим из датасета все признаки, которые одновременно зависят и от u и от v . Например, от признака «число общих друзей u и v внутри эго-графа c » придётся отказаться.

Обучим модель A , используя только признаки на базе u , c и эго-графа c .

Для обучения модели B оставим только признаки на базе v , c и эго-графа c . Также в качестве базовых предсказаний передадим предсказания модели A .

Если объединим модели A и B , получим то что нужно: первая часть использует признаки u , вторая — признаки v . Совокупность моделей осмысленна, поскольку B была обучена «корректировать» предсказания A . Эта оптимизация позволяет ускорить вычисления в сотни раз и делает подход применимым на практике. Финальный вид ez_c(u, v) и E(u, v) выглядит так:

Вычисление меры E в онлайне

Заметим, что E(u, v) можно представить в виде:

Эта формула — скалярное произведение разреженных векторов, индексами которых являются пользователи, а значениями — экспоненты предсказаний модели. Ненулевые значения здесь проставлены только у друзей u — по сути это просто списки друзей с дополнительными значениями.

При построении рекомендаций мы уже вычислили предсказания моделей для всех существующих дружб. Поэтому для каждого пользователя мы можем собрать векторы и сложить их в доступное онлайн key-value хранилище. После этого сможем получать значение E(u, v) для любой пары пользователей в онлайне простой операцией перемножения векторов. Это даёт возможность использовать E(u, v) как лёгкую функцию релевантности в нагруженных местах либо как дополнительный признак финальной модели ранжирования.

В результате система EGOML позволяет:

Распределённо отбирать кандидатов для каждого пользователя в офлайне. Асимптотическая сложность оптимизированного алгоритма составляет O(|E|) вычислений признаков и применений модели, где |E| — число связей в графе. На кластере из 250 воркеров время работы алгоритма составляет около двух часов.

Читайте так же:
Что нужно сделать чтобы не потели стекла в автомобиле?

Быстро вычислять меру релевантности E(u, v) для любой пары пользователей в онлайне. Асимптотическая сложность операции O(|N(u)| + |N(v)|) .

Улучшать качество рекомендаций, расширяя количество учтённых графов (по дружбам, скрытиям рекомендаций, отправленным сообщениям и другим графам) и добавляя всевозможные метки на рёбра и вершины. Например, интенсивность взаимодействий на ребре, дату образования ребра, город, место работы или учёбы пользователя.

В конечном счёте мы перешли со способа отбора кандидатов с использованием Adamic/Adar к системе EGOML и внедрили в модель второй уровень признаков на основе меры E(u, v) . И это позволило увеличить количество подтверждённых дружб со всей платформы на несколько десятков процентов.

Благодарность

Хочу сказать спасибо руководителю команды Core ML Андрею Якушеву за помощь в разработке метода и подготовке статьи, а также всей команде Core ML — за поддержку на разных этапах этой работы.

Как устроены рекомендации, как группы и посты попадают туда

Рекомендациями «ВКонтакте» управляет искусственный интеллект. Он анализирует поведение пользователя и подбирает контент, который с высокой долей вероятности будет ему интересен. Поэтому у каждого пользователя своя лента рекомендованного контента: если вы лайкаете посты о котятах, там будут фотографии котиков. А друг, активно читающий советы по уходу за автомобилями, будет видеть их еще больше.

Искусственный интеллект оценивает интерес пользователей по многим параметрам. Например, он учитывает:

  • сколько времени человек читает материал, возвращается ли к абзацу выше;
  • ставит ли он лайки и пишет ли комментарии;
  • в каких группах он проявляет активность, а в каких — нет;
  • какие посты чаще всего репостит.

Процесс, как посты попадают в рекомендации «ВК», невозможно отследить. При этом алгоритмы все время совершенствуются. Поэтому нельзя с высокой долей вероятности предугадать, попадет ли контент в рекомендации вашей целевой аудитории. «Взломать» систему тоже не получится.

Что постить с осторожностью

Некоторые публикации ВК пессимизирует. Это касается не только постов с плохими картинками или неформатным контентом. Вот что еще не любят фильтры умной ленты:

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

Подсказка: если все-таки делаете репост – дополните его своим развернутым комментарием по теме. Такие репосты ВК воспринимает как уникальные единицы контента.

9 репост

Правильный репост выглядит так

А лучше пересказать информацию своими словами и дать ссылку на источник.

  1. Посты с внешними ссылками. Приоритет у них ниже, поэтому не стоит публиковать в группе только анонсы статей с сайта.

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

10 вики-страница

Вики-страница удобна: читателю не надо переходить по ссылкам, он не покидает ВК

  1. Рекламу. У каждой публикации в ленте есть волшебная пометка «Это не интересно». Человек отмечает пост как неинтересный – и он тут же теряет позиции в выдаче. А с ним и все последующие.
голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector