Авторы статьи рассказывают, как улавливать высокоуровневые взаимосвязи между категориальными фичами (они же — sparse-фичи) и благодаря этому выучивать информативные эмбеддинги в том числе и для редких значений.
Например, в выборке много москвичей, но всего несколько жителей Нью-Йорка. Таких редких значений категориальных признаков в датасетах может быть много — возникает т. н. тяжёлый хвост признаков. Современные нейросети справляются с ним плохо — для решения этой проблемы и придуман HyperFormer.
Гиперграф
Чтобы моделировать связи между категориальными фичами и сэмплами данных (парами юзер–айтем), авторы привлекают концепцию гиперграфа. В отличие от графа, у которого ребро соединяет пару вершин, ребро гиперграфа соединяет любое подмножество вершин.
Для каждого батча данных рассматривается гиперграф, в котором вершинами являются сэмплы, а рёбрами — значения категориальных фичей. Ребро гиперграфа может, к примеру, связать всех жителей Нью-Йорка или все айтемы одной ценовой категории.
Гиперформер
Модель, которая выучивает информативные эмбеддинги sparse-фичей. Dense-фичи гиперформер не обрабатывает — этим, как и финальными предсказаниями, занимаются upstream-модели.
Каждому значению категориальных фичей ставится в соответствие вектор эмбеддингов. Начальный вектор для сэмпла данных получается конкатенацией векторов категориальных фичей.
Гиперформер состоит из двух трансформерных декодеров, один — над эмбеддингами значений категориальных фичей, другой — над эмбеддингами сэмплов текущего батча. В обоих декодерах используются только кросс-аттеншены: в первом query вычисляется по фичам, key и value вычисляются по сэмплам, а во втором — наоборот.
То, что модель оперирует над структурой гиперграфа, построенного по текущему батчу, обеспечивается масками в кросс-аттеншенах — сэмплы «смотрят» только на те значения категориальных фичей, которые к ним относятся, и vice versa. Получается, декодеры на каждом слое обмениваются информацией — в гиперграфе она перетекает от вершин к инцидентным им рёбрам и от рёбер — к инцидентным им вершинам.
@RecSysChannel
Разбор подготовил