Это резюме на простом английском языке исследования под названием <a href=" A Hybrid Temporal-Aware Attention Architecture for Long Behavior Sequential Recommendation</a>. Если вам нравятся такие анализы, присоединяйтесь <a href=" или следите за нами на <a href=" <h2>Невозможный компромисс</h2> <p>На протяжении многих лет любой, кто создавал рекомендательную систему, сталкивался с настоящей дилеммой. Последовательности поведения пользователей могут растягиваться на тысячи или десятки тысяч взаимодействий. Понять эту историю требует ответа на обманчиво простой вопрос: учитывая все, что пользователь делал ранее, что мы должны рекомендовать дальше?</p> <p>Стандартный подход использует внимание softmax, механизм, который вычисляет детальные сравнения между текущим моментом и каждым прошлым взаимодействием. Математически это элегантно. Это работает прекрасно. Но вычислительная стоимость возрастает квадратично с длиной последовательности. При 10 000 взаимодействиях вы выполняете примерно 100 миллионов сравнений только для того, чтобы сделать одну рекомендацию. Увеличьте это на миллионы пользователей и тысячи рекомендаций в секунду, и ваши инфраструктурные затраты становятся непомерными.</p> <p>Поэтому практики идут на компромисс. Они обращаются к линейным механизмам внимания, которые снижают вычислительную сложность с квадратичной до линейной. Математика умна, и приросты скорости реальны. Проблема в том, что эта скорость имеет свою цену. Эти механизмы поддерживают текущее "состояние", которое обновляется с каждым новым взаимодействием, но это состояние имеет ограниченную емкость. Это похоже на библиотекаря, который может только записывать грубые шаблоны на маленьком блокноте, вместо того чтобы консультироваться с полными записями. Вы теряете точность, необходимую для распознавания конкретных последовательностей поведения, которые указывают на намерения пользователя.
Этот компромисс определял область. Эффективные методы жертвуют точностью. Точные методы жертвуют скоростью. И больше всего страдают пользователи с ультра-длинными последовательностями, активные пользователи и те, кто много взаимодействует, у которых есть самые интересные поведения для изучения.
Исследователи, стоящие за HyTRec, наблюдали за этим и задали другой вопрос: а что если это не одна проблема, требующая одного решения?
Как на самом деле думают пользователи
Инсайт начинается с простого наблюдения о том, как на самом деле работают предпочтения пользователей. У вас есть два принципиально разных типа сигналов предпочтений, и они действуют на совершенно разных временных шкалах.
Ваши долгосрочные стабильные предпочтения исходят из глубокой истории. Если вы кликнули на технологические гаджеты 500 раз за два года, это сильное доказательство того, что вам нравится технология. Это предпочтение не колеблется сильно от недели к неделе. Важно, что вам не нужно каждое из этих 500 взаимодействий, чтобы понять шаблон. Вы можете узнать то же самое из 50 из них или даже из грубого статистического резюме. Приблизительность этого сигнала почти ничего не теряет.
Ваши краткосрочные всплески намерений исходят из недавнего поведения. Если вы кликнули на три зимних пальто за последние два часа, вы сейчас ищете пальто. Этот сигнал хрупок. Его легко пропустить, если вы усредняете его с тысячами других взаимодействий, которые были месяцами ранее. Но он невероятно предсказуем для того, что вы сделаете в следующие пять минут.
Это не просто различия в степени, это различия в роде. Одно стабильно и может терпеть приближение. Другое нестабильно и требует точности. Тем не менее, существующие методы пытаются справиться с обоими с помощью одного механизма внимания, неизбежно оптимизируя один за счет другого.
Гибкое решение
Элегантный ход заключается в том, чтобы прекратить попытки создать один механизм, который делает все. Вместо этого разделите работу так, чтобы она отражала то, как пользователи на самом деле просматривают.
Архитектура работает по двум параллельным путям. В первом вашем историческом последовательности, даже если она содержит 9 000 взаимодействий за последние шесть месяцев, проходит через линейную ветвь внимания. Эта ветвь не требует точности. Она создает общее понимание вашей общей категории вкусов. Поскольку она использует линейное внимание, она завершается за время, пропорциональное длине последовательности, а не квадрату длины последовательности. Это быстро.
Во втором пути ваши недавние взаимодействия, возможно, 1 000 за последние две недели, проходят через ветвь внимания softmax. Эта ветвь может позволить себе быть дорогой, потому что она работает с маленьким объемом данных. Она производит точные представления того, что вы можете хотеть прямо сейчас. Вы выполняете дорогие вычисления, но на маленьком окне.
Каждая ветвь производит представление "что мы должны рекомендовать". Затем архитектура объединяет их разумно. Вы восстановили точность внимания softmax, сохранив скорость линейного внимания, потому что каждая теперь работает в своей правильной области.
HyTRec разделяет длинные последовательности поведения пользователей между двумя специализированными механизмами внимания, позволяя стабильным предпочтениям и недавним всплескам намерений обрабатываться независимо.
Это не мелкая доработка. Вычислительная сложность остается линейной по длине последовательности, работая с последовательностями в 10 раз длиннее, чем предыдущие подходы могли эффективно обрабатывать. Но есть уловка, скрывающаяся в архитектуре.
Сделать недавние сигналы важными
Проблема с гибридной системой заключается в том, что линейная ветвь внимания видела тысячи взаимодействий. Ветвь softmax видела сотни. По sheer объему сигнал линейной ветви громче. Но в рекомендациях актуальность важнее объема. Клик сегодня говорит вам больше о том, что кто-то хочет, чем клик шесть месяцев назад.
Если вы относитесь к обеим ветвям одинаково, устаревшие данные заглушают свежие данные. Вы решили вычислительную проблему, но создали проблему с отзывчивостью.
Решение называется Сетевой Дельта с Учетом Времени, или TADN. Механизм делает что-то простое: динамически увеличивает вес свежих поведенческих сигналов, подавляя исторический шум.
Представьте себе механизм гейтинга, который спрашивает каждую часть последовательности: "Насколько тебе лет?" Свежие взаимодействия получают более высокие веса. Старые взаимодействия получают более низкие веса. Это не происходит по фиксированному расписанию, это изучается на основе данных. Сеть обнаруживает шаблоны, такие как: "Для этого пользователя поведенческие шаблоны меняются каждые несколько дней, поэтому взаимодействия старше недели должны оцениваться в половину силы."
Без TADN гибридная система делала бы все более устаревшие рекомендации по мере изменения предпочтений пользователя. С ним система остается отзывчивой к изменениям. Недавние сигналы естественным образом имеют большее влияние на рекомендации, но сеть учится, насколько именно влияние имеет смысл для каждого пользователя и типа взаимодействия.
Реальные результаты
Исследователи протестировали HyTRec на огромных наборах данных с реальными последовательностями поведения пользователей, растягивающимися на десятки тысяч взаимодействий на пользователя. Это не чистые академические данные, это производственная неразбериха.
Что касается скорости, результаты имеют значение. HyTRec поддерживает линейную сложность вывода. Удвоите длину последовательности, и время вывода примерно удваивается. Оно не увеличивается в четыре раза, как это было бы с вниманием softmax. При последовательностях длиной 10 000 это различие определяет, можете ли вы рекомендовать за 50 миллисекунд или 5 секунд. На платформе, обслуживающей миллионы пользователей, это различие — это граница между возможным и невозможным.
...