🤖 HyperFormer от DeepMind: выучить выразительные представления для sparse-фичей
Авторы статьи рассказывают, как улавливать высокоуровневые взаимосвязи между категориальными фичами (они же — sparse-фичи) и благодаря этому выучивать информативные эмбеддинги в том числе и для редких значений.

Например, в выборке много москвичей, но всего несколько жителей Нью-Йорка. Таких редких значений категориальных признаков в датасетах может быть много — возникает т. н. тяжёлый хвост признаков. Современные нейросети справляются с ним плохо — для решения этой проблемы и придуман HyperFormer.

Гиперграф
Чтобы моделировать связи между категориальными фичами и сэмплами данных (парами юзер–айтем), авторы привлекают концепцию гиперграфа. В отличие от графа, у которого ребро соединяет пару вершин, ребро гиперграфа соединяет любое подмножество вершин.

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

Гиперформер
Модель, которая выучивает информативные эмбеддинги sparse-фичей. Dense-фичи гиперформер не обрабатывает — этим, как и финальными предсказаниями, занимаются upstream-модели.

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

Гиперформер состоит из двух трансформерных декодеров, один — над эмбеддингами значений категориальных фичей, другой — над эмбеддингами сэмплов текущего батча. В обоих декодерах используются только кросс-аттеншены: в первом query вычисляется по фичам, key и value вычисляются по сэмплам, а во втором — наоборот.

То, что модель оперирует над структурой гиперграфа, построенного по текущему батчу, обеспечивается масками в кросс-аттеншенах — сэмплы «смотрят» только на те значения категориальных фичей, которые к ним относятся, и vice versa. Получается, декодеры на каждом слое обмениваются информацией — в гиперграфе она перетекает от вершин к инцидентным им рёбрам и от рёбер — к инцидентным им вершинам.

@RecSysChannel
Разбор подготовил Сергей Лямаев