Научно-технический вебинар “Гиперболические эмбеддинги для задач классификации изображений”

27 июля 2021, 14:00 MCK

О вебинаре

  • Спикер

    Лейла Мирвахабова, Сколковский институт науки и технологий, Москва, Россия

  • Тема

    Научно-технический вебинар “Гиперболические эмбеддинги для задач классификации изображений”

  • Подробнее про вебинар

    Спикер о вебинаре:

    «В этом докладе я расскажу про нашу статью об эмбеддингах изображений в гиперболическое пространство. Обычно в задачах компьютерного зрения используются Евклидовы или сферические эмбеддинги; в нашей статье мы предложили искать эмбеддинги изображений в гиперболическом пространстве.

    Сначала я немного поговорю о ранее предложенных методах машинного обучения, использовавшие вложения в гиперболические пространства, потом коротко расскажу об обучении на датасетах с малым количеством примеров на каждый класс (few-shot learning), и, наконец, мы обсудим наши эксперименты.»

    Ссылка на статью: https://openaccess.thecvf.com/content_CVPR_2020/papers/Khrulkov_Hyperbolic_Image_Embeddings_CVPR_2020_paper.pdf

    Запись: https://youtu.be/MkuLcY-EHq8

    Презентация: https://drive.google.com/file/d/1M33m51nnJTt9qKdVxrTTOgcUZZxMZeKC/view?usp=sharing

     

     

    (00:00:00) (Начало записи.)

    Мирвахабова Лейла: Меня зовут Лейла, я сегодня расскажу про нашу статью Hyperbolic Image Embeddings. Если есть какие-то вопросы, можно прямо во время спрашивать.

    Сначала я расскажу вообще в принципе о гиперболической геометрии в рамках машинного обучения, нейронных сетей. Потом я расскажу про сеттинги, в которых мы пробовали применить эмбеддинги гиперболических пространств, Few-shot learning. И в конце, собственно, расскажу про эксперименты. Это все по мотивам статьи, вот тут авторы работ. Это CVPR 2020 года. Если кому интересно, весь код выложен на GitHub. 

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

    И, допустим, в machine learning мы ищем очень часто эмбеддинги данных в какое-то метрическое пространство. Обычно это пространства либо Евклидовы, либо сферические. В задачах computer vision пространство используют либо Евклидово, наше стандартное, либо сферическое – это в случае, если у нас metric cosine similarity. 

    И первые работы, которые использовали применение таких гиперболических пространств для задач, были задачи NLP. И вообще такие гиперболические пространства очень подходят для каких-то данных, у которых есть иерархия, и в NLP она достаточно явная. А для картинок до нашей работы никто не пробовал применить такие эмбеддинги.

    Вообще, у гиперболической геометрии есть несколько эквивалентных моделей, потому что мы явно не можем вложить это все в Евклидово пространство, поэтому нам нужны такие специальные модели. Одна из них – это модель Лоренца, это модель гиперболоида. Есть еще модель Бельтрами-Кляйна, есть еще модель Пуанкаре, и там есть еще, на самом деле, и другие тоже, но это самые популярные. И в нашей работе мы использовали модель Пуанкаре. Она в принципе достаточно удобна для визуализации, например, если мы хотим потом как-то визуализировать данные, то обычно используют модель Пуанкаре.

    Вообще модель Пуанкаре – это пара такая. Первый элемент пары – это открытый диск, и второй – это метрика. И в этой модели точки у нас лежат внутри этого диска, а прямые линии – это такие дуги, перпендикулярные границе диска. И, допустим, у нас есть точка в гиперболическом пространстве x, есть точка y. Их сумма, про которую я расскажу чуть позже, как она определяется, точка z будет лежать вот здесь. А средняя от этих трех будет внутри такого треугольника находиться, как бы такой центр масс. Про эти операции среднего и их сложения я чуть попозже расскажу. 

    Такое более формальное определение. У нас эта пара – многообразие и заданная метрика – то есть у нас открытый шар и метрический тензор. Точнее говоря, модель Пуанкаре считается конформной к Евклидовой, то есть углы между векторами сохраняются. Метрический тензор выглядит вот так, то есть у нас есть конформный фактор относительно евклидовой метрики, стандартная единичная матричка. 

    Соответственно, расстояние для двух точек внутри модели Пуанкаре выглядит таким образом, такая функция.

    (00:04:55)

    Вообще говоря, гиперболические пространства не являются векторными пространствами, к которым мы привыкли. То есть мы не можем складывать вектора явно, мы не можем умножать на число, мы не можем умножать на матрицу и так далее. Но нам хотелось бы уметь это делать, поэтому можно воспользоваться, что называется, формализмом гировекторных пространств, Möbius Gyrovector framework, в рамках которого можно определить своего рода сложение, умножение на число, на матрицу и так далее.

    И вот этим воспользовались в работе, которая предложила вообще использовать гиперболические нейронные сети. То есть они, например, обобщили линейный слой на такой линейный гиперболический слой. Сделали они это следующим образом. 

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

    Соответственно, меняется определение многообразия, немножко модифицируется формула для конформного фактора. И теперь мы можем определить то, что называется сложением в рамках вот этого формализма Мёбиуса. То есть, если у нас есть две точки, вектора, то мы можем сложить их следующим образом. Расстоянием будет вот такая функция. 

    И тут в принципе можно упражнение сделать: если взять c = 1, диск единичного радиуса, то мы получим гиперболическое расстояние, которое я показывала до этого. А если в пределе взять с, стремящееся к 0, то у нас будет просто Евклидово расстояние. И можно думать об этом параметре c как о чем-то, что будет модифицировать пространство так, что оно будет ближе к Евклидовому, либо ближе к гиперболическому пространству. Если у нас c маленькое, то в пределе у нас будет Евклидово пространство. То есть мы можем чуть-чуть добавить гиперболичности, что бы это ни значило. Это все очень нестрого.

    Еще вообще нам нужны отображения из Евклидового в гиперболическое пространство и обратно. То есть, если у нас есть вектор в Евклидовом пространстве, мы ищем его аналог в гиперболическом. Это будет осуществляться при помощи экспоненциального отображения, то есть это функция из Rn в диск заданного радиуса. Она выглядит вот так. Это сложение, которое мы определили до этого, вот здесь что-то надо вычислить.

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

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

    Помимо всего прочего, нам еще было бы полезно определить умножение матрицы на вектор. Вот так оно выглядит. И тогда мы уже можем прямо явно сразу же определить обобщение линейного слоя на гиперболическое пространство. В принципе, если мы возьмем с в пределе, равное 0, то у нас будет обычный линейный слой. То есть это, действительно, не какая-то такая совершенно новая вещь, это, можно сказать, надстройка, это больше как обобщение. И здесь связь все равно остается с Евклидовым пространством в смысле этой кривизны, близкой к 0. 

    Еще очень часто в задачах нужно еще определить среднюю точку, как я вам показывала вот тут. То есть нам много где может понадобиться нахождение такого центра масс. И, если в Евклидовом пространстве мы привыкли, что это просто среднее, обычное наше среднее, то есть сумма, поделенная на количество членов, то… Вообще говоря, в других пространствах это не так явно, потому что, если определять среднюю точку, то это будет какая-то, наверное, оптимизационная задача, которая ищет точку, которая была бы максимально равноудалена от всех остальных.

    (00:10:16)

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

    Здесь такая как раз ситуация. В модели Клейна можно достаточно просто найти среднее. Это в литературе называется Einstein midpoint, и выглядит оно следующим образом, то есть мы суммируем все точки с какими-то весами, веса – это Лоренц-факторы так называемые. Они тоже зависят от кривизны. И взвешиваем их в соответствии с этими коэффициентами.

    И чтобы нам все определить, нам нужны отображения между моделями Пуанкаре и Клейна, то есть, если у нас есть точка в модели Клейна, то точка в модели Пуанкаре будет выглядеть таким образом, и наоборот. То есть все достаточно просто.

    Все, что я сейчас рассказала – это такой математический аппарат, необходимый, чтобы определить эти слои в гиперболических нейронных сетях. То есть я привела формулу только для линейного слоя, но, вообще говоря, в этой статье есть еще, по-моему, (…) для задач NLP, RNN и еще, по-моему, что-то для классов регрессии. Но мы использовали, по-моему, только линейные слои, в нашей задаче ничего больше не понадобилось. 

    Как я сказала, все эти модели вообще были впервые использованы для задач NLP, и это делалось по причине того, что гиперболические пространства очень хорошо моделируют какую-то иерархическую структуру данных. Есть работы, которые показывают, что мы можем любое дерево вложить в двумерное пространство Пуанкаре, двумерную модель, с любой заданной точностью. И одной из первых работ, которая использовала гиперболическую геометрию в глубинном обучении – это модель, которая как раз искала эмбеддинги дискретных данных, генетические деревья с такой явной заданной иерархической структурой, какие-то сети. Для такого типа данных вложение в гиперболические пространства очень удобно.   

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

    В общем, какую-то иерархию в принципе мы можем придумать. Но, вообще говоря, есть еще способ это измерить. Это называется дельта-гиперболичность. Она была введена в работах Михаила Громова. Есть еще смежное название: Gromov delta-hyperbolicity. Это способ, так сказать, оценить степень гиперболичности данных, точек. Она еще связана с параметром кривизны, то есть с радиусом диска нашей модели. И такая очень интуитивная интерпретация будет следующая: у нас есть какой-то треугольник, этой дельтой будет то, как сильно мы должны пошевелить границы этого треугольника, чтобы приблизиться к идеальному гиперболическому треугольнику. 

    (00:15:05)

    Но в формулах это все выглядит намного проще. Для начала, нам нужно ввести то, что называется Gromov product от трех точек. Это такая разница попарных расстояний. И тогда у нас дельта – это будет минимальная разница между вот этим Gromov product для четырех точек. В общем, это four-point condition называется. 

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

    Вообще, мне кажется, проще и в каком-то смысле полезнее думать о какой-то интерпретации для дискретных данных. То есть, если у нас есть набор точек, мы просто по определению строим матрицу таких попарных Gromov products, и потом нам нужно взять самое большое значение в следующей матрице, где матрица, вот этот вот крестик в кружочке, определяется следующим образом. 

    Вообще говоря, вот такой способ нахождения дельты вроде бы вообще кубической сложности, поэтому мы не можем это сделать все для… Если датасет у нас достаточно большой, больше 2000 точек, то…

     

    Модератор: Сергей Кастрюлин спрашивает: «Не могли бы вы раскрыть, почему гиперболические пространства хорошо подходят для представления иерархических структур?»  

     

    Мирвахабова Лейла: Я, на самом деле, отправлю в статьи, потому что там все не так просто, какие-то теоремы. Но в целом можно считать так, что…

     

    Модератор: Я немножко, может быть, помогу начать. Вообще говоря, пространство Громова является обобщением дерева.

     

    Мирвахабова Лейла: Обобщением? Естественно, строить это все так: то есть в центр шара мы помещаем корень дерева, и потом вот здесь будут уже какие-то более низкоуровневые «дети» этого дерева. В общем, суть в том, что вот эти расстояния будут расти экспоненциально, и поэтому тут ближе к границе немножко какое-то расширение пространства происходит, и вот сюда можно поместить намного большее количество точек, чем ближе к центру. Я не знаю, насколько это понятно все звучит. В общем, в гиперболическое пространство, модель Пуанкаре, можно вложить очень много точек за счет того, что они все будут около границы. 

    В общем, я, наверное, не могу объяснить достаточно строго. Интуитивно – как-то так.

     

    Модератор: Да. Гиперболическое пространство, несомненно, является обобщением понятия дерева. Просто там у нас еще появляются такие интересные связи между листьями этого дерева. И поэтому, если у нас иерархическая структура представляется деревом, то, используя структуру гиперболического пространства, которое является обобщением понятия дерева, мы можем не только отразить связи между веткой и листом дерева, не только построить дерево, которое хорошо ветвится к краю гиперболического пространства, но еще и отразить, например, связи между листьями деревьев. Они окажутся достаточно далеко, что естественно, но, с другой стороны, мы можем видеть, какие листья ближе к каким, независимо от их… Скажем так, вводя дополнительную метрику помимо длины через корень, которая будет коррелировать с метрикой в гиперболическом пространстве. Наверное, как-то так. Не знаю, ответили ли мы с Лейлой на ваш вопрос.

    (00:20:33)

    Максим Годзи спрашивает: «А эти попарные расстояния в Gromov product в каком пространстве измеряются?»

     

    Мирвахабова Лейла: Здесь были, по-моему, гиперболические расстояния. Нет, Евклидовы. 

     

    Модератор: Любая метрика там, по-моему, уводится. Как только у нас имеется метрическое пространство с метрикой d, мы можем строить дальше произведение Громова и дальше смотреть, насколько гиперболичное наше пространство. 

     

    Мирвахабова Лейла: Продолжаю. 

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

    В общем, как я уже упомянула, там сложность кубическая, поэтому весь набор данных мы не можем так просчитать. И поэтому мы можем брать, семплировать каждый раз, допустим, 1500 картинок, и для них считать эту дельту, и потом усреднять. В принципе, на практике мы видели, что там не очень сильно меняется эта дельта, то есть это достаточно устойчивая оценка. Но это все эмпирически было. 

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

    Чтобы это сравнивать, нам нужно как-то нормировать вот эту дельту, потому что, вообще говоря, она будет зависеть от максимального расстояния между точек. Это диаметр множества. Поэтому мы можем взять вот такое соотношение, которое будет вообще по построению от 0 до 1. И оно будет интуитивно показывать то, насколько наши данные близки к гиперболическому пространству. 

    И в качестве такой проверки нашей затеи мы насемплили точки из гиперболического пространства, из полусферы, из сферы и вот из дерева. Теория гласит, что для гиперболического пространства дельта должна быть равна 0, для сферы и полусферы – 1, а для дерева тоже 0.

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

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

    (00:25:05)

    И еще мы можем использовать эту дельту для подсчета оптимального значения радиуса нашего диска. 

    Теперь я хотела бы перейти к задаче, которую мы решили решать в рамках эмбеддингов в гиперболические пространства. Есть такой класс задач, это называется Few-shot learning, в которых у нас для каждого класса не очень много примеров. И это такие достаточно сложные задачи, потому что обычных искусственных датасетах у нас много примеров, и наша сеть выучивается. А если у нас примеров, не знаю, по 200 на каждый класс, что близко к реальной жизни, нам надо как-то исхитряться и как-то, может быть, моделировать какие-то отношения между ветками одного класса. Мы, в общем-то, подумали, что, может, здесь пригодятся как раз эмбеддинги в гиперболические пространства.  

    В общем, как вообще выглядят данные задачи? В обычном сеттинге классификации у нас есть какие-то батчи, внутри которых есть элементы каждого класса, и мы выучиваем модель так последовательно. 

    Но в рамках Few-shot learning мы на каждом этапе семплируем не батчи, а мы семплируем так называемые задачи, tasks. И внутри этой задачи у нас есть обучающая выборка, которая здесь называется в этих терминах support set, тестовая, которая здесь называется query set. 

    И вот эти задачи выглядят следующим образом. У нас есть какой-то коэффициент N-way K-Shot, такая задача. Тут цель наша – классифицировать вот эти тестовые картинки относительно количества классов, которые мы рассматриваем на каждой итерации, таким образом, что для каждого класса у нас есть K картинок. То есть давайте здесь на примере объясню, чтобы было понятнее.

    Вот у нас есть три вида собачек, и здесь у нас будет по K примеров для каждого класса. То есть суммарно у нас тут будет N*K картинок. На этапе теста нам нужно будет правильно классифицировать какое-то количество Q картинок относительно этих N классов. В общем, я надеюсь, что понятно. 

    В общем, основная мысль в том, что каждый раз мы семплируем. Допустим, один из стандартных сеттингов у нас – по 1 картинке на 5 классов. 

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

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

    (00:29:55)

    Если так это все просуммировать, то алгоритм примерно следующий. У нас есть набор данных, мы оцениваем его гиперболичность, значение дельты. То есть мы берем, 100 раз семплим оттуда по 1500 картинок, измеряем для них значение дельты, усредняем. И его мы используем для оценки оптимального параметра кривизны для вложения. Радиус нашего диска в модели Пуанкаре. 

    Мы взяли вот эту ProtoNet, вот эту сеть, эту модель. Назначили какие-то сверточные слои, и в конце пошли в fully connected слои. И мы добавляем туда слой, который берет фичи картинок, отправляет их в модель Пуанкаре с помощью экспоненциального вот этого отображения, то есть это просто явная формула. Потом мы как раз прикидываем, пересчитываем прототипы каждого класса через гиперболическое среднее. И в качестве нашего предсказания мы берем просто ближайший прототип относительно гиперболического расстояния. 

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

    Достаточно интересно то, что такая простая процедура помогла улучшить точность. Мы рассматривали это на двух Few-shot сеттингах. Один Few-shot learning, и брали датасеты, которые были у этой задачи, такие стандартные. Это датасет с птицами, там примерно 12 тысяч картинок, классов там 200, примерно по 600 картинок для каждого класса, то есть это немного. И MiniImageNet, составленный из большого ImageNet датасета. Там у нас 100 классов по 600 примеров на каждый класс.

    Здесь таблички из нашей статьи. Вот здесь мы сравниваемся с другими моделями. Статья уже, на самом деле, устарела, сейчас там уже какие-то очень хитрые-хитрые методы используются. Но вот примерно относительно Baseline, который мы брали, который мы меняли. Вот тут, допустим, было 50%, но наша вся эта процедурка с меппингом в гиперболическое пространство и поиском ближайшего класса через матрица попарных гиперболических расстояний дала нам прирост вообще в 13%. Здесь 12%. Понятно: чем больше примеров на каждый класс, тем легче модели.

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

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

    На MiniImageNet у нас результаты были не такими хорошими, но в принципе относительно Baseline-сети, вот этой ProtoNet, у нас прирост тоже был заметным. Но, например, почему-то, когда мы брали в качестве эмбеддинга ResNet, у нас точность была хуже. Она все равно лучше, чем здесь, но относительно других моделей, которые моделируют все это в Евклидовом пространстве, у нас точность проседала. Не очень сильно, в принципе, но она здесь уже не лучшая в столбце. Не знаю, может быть, как-то вот эти коннекшны как-то нарушают какую-то геометрическую структуру. 

     

    Модератор: А функции потерь у вас были одни и те же? Что у вас за функция потерь была?

     

    Мирвахабова Лейла: Да, там стандартная ошибка. 

    (00:35:00)

     

    Модератор: Потому что в принципе там должна быть достаточно тонкая игра между функцией потерь и пространством вложения. Например, triplet loss, троичная функция потерь, уже даже по своей записи довольно близка к расстоянию у Громова. 

     

    Мирвахабова Лейла: В принципе, да, она же как раз будет моделировать эти расстояния между уже тремя точками. 

     

    Модератор: Поэтому идеологически там должна быть достаточно тонкая игра между функцией потерь и пространством вложения. Например, наши результаты говорят о том, что triplet loss генерирует метрические вложения, которые являются компактными, но неразделимыми линейно. Поэтому там, например, хорошо ConvNet работает, а линейные разделители работают плохо. Вероятно, у вас здесь какая-то похожая ситуация. Почему там ResNet-ы работают хуже, чем ConvNet, там надо разбираться. Но, скорее всего, какие-то особенности компактности вложений и того, как вы их измеряете, здесь играют. Но, поскольку я свечку не держал около ваших вложений, мне довольно трудно рассуждать, почему это именно произошло. Но я бы предложил здесь хорошенько подумать о тонкой игре между пространством вложений и функцией потерь. 

     

    Мирвахабова Лейла: Да, возможно. У нас такая работа была немножко proof of concept, просто взяли достаточно простой способ все это внедрить, (…) задать. Поэтому какого-то прямо серьезного анализа у нас не было, но то, что ResNet что-то портит, мы заметили. С этим было достаточно обидно, потому что до (…) значений мы не могли дотянуть, потому что они как раз были получены с помощью ResNet, а для MiniImageNet просто search esteem не хватало этого. 

    Общий вывод. Вообще говоря, если посмотреть на ту табличку с оценкой дельты, дельта там достаточно маленькая. Напомню: там было в районе 0,2-0,25 относительно отрезка от 0 до 1. То есть ближе к 0. Как бы создается ощущение, что какая-то гиперболическая структура в данных с картинками присутствует. Но что она из себя представляет, понять сложно, потому что мы явно не можем найти какие-то интерпретируемые представления в гиперболических пространствах. 

    Еще эксперимент показывает, что такая простая операция в виде перехода в гиперболическое пространство, действительно, улучшает точность. На более простом датасете с птицами разница порядка 13-15%, а для MiniImageNet чуть похуже, 5%, наверное. Но тоже достаточно ощутимая разница. 

    Вообще да, интересно было бы еще посмотреть, в каких, может быть, смежных задачах в Computer Vision можно попробовать это все применить. У нас эксперименты были в основном на Few-shot learning, и еще одна наша соавтор делала эксперименты на задаче Person re-identification. Это когда надо идентифицировать человека, который уже когда-то был в чаще выборки. Что-то такое, я не буду вдаваться в детали. Но там тоже какой-то прирост был, но он был не таким ощутимым, как в задаче Few-shot learning.      

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

     

    Модератор: Спасибо большое! Очень интересно. Коллеги, пожалуйста, вопросы, соображения. Нас здесь 32 человека. 

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

    (00:40:20)

    Нам задаюсь вопросы. Владимир Елисеев спрашивает: «Какой размерности пространство было получено в результате перехода в гиперболическое пространство?» Размерность – наверное, число измерений имеется здесь в виду.

     

    Мирвахабова Лейла: Да. Мы вкладывали, по-моему, в размерность… 128 у нас была стандартно. В общем, относительно других методов она была ниже. Как раз особенность гиперболических пространств – что можно брать меньшую размерность, чем у других методов. Но, возможно, мы в экспериментах еще брали равную размерность, для какого-то, может быть, более честного сравнения с другими методами. Но в любом случае, оно не будет совсем честным. Но в целом размерность можно брать точно меньше, чем в Евклидовом пространстве. 

     

    Модератор: У меня есть вопрос. Вы делали вложение в гиперболическое пространство только на последнем слое? Предыдущие слои гиперболическими вы не делали?

     

    Мирвахабова Лейла: Да. 

     

    Модератор: А почему?

     

    Мирвахабова Лейла: Не знаю. Нам показалось это, наверное, более естественным способом, потому что мы хотели… Я сейчас вспомнила конкретно с этим, это как раз отвечает на предыдущий вопрос. Чтобы заметить разницу между вообще наличием этого слоя и отсутствием мы брали как бы стандартную модель, и просто, чтобы было относительно честное сравнение, мы навесили еще один слой с переходом в гиперболическое пространство, чтобы мы могли сравнивать нашу модель как бы со слоем и без слоя. Но, вообще говоря, можно, наверное, сразу. Просто должен быть не выход, а в сверточном слое не терзор, а что-то такое.

     

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

     

    Мирвахабова Лейла: Гиперболоидом – в смысле, моделью Лоренца или просто?

     

    Модератор: Имеется в виду гиперболический эмбеддинг.  

     

    Мирвахабова Лейла: Так как считается, что гиперболические пространства могут моделировать какие-то достаточно сложные соотношения между точками, между данными, можно брать не очень высокую размерность. И на практике, если сделать какой-то great search по размерностям (мы это делали не в этой работе, мы это делали в другой работе для рекомендательных систем), то можно увидеть, что меньшие размерности часто работают лучше. То есть, начиная с какого-то момента, может, увеличить еще можно с каким-то приростом, но начиная с какого-то момента точность падает. То есть высокая размерность там точно не плюс. То, что могут использовать в стандартных сетях и вкладывать в размерность 1024, например, здесь будет очень излишним. Здесь навскидку 128 работает уже хорошо. Может, даже 64 будет лучше. 

    А сферические, если честно, я особо в этих работах не разбираюсь. Там это так названо сферическими, но какого-то явного вложения их нет. Там будет нормировка относительно нормы, то есть так, чтобы была единичная норма, и сверху cosign distance. И какого размера они берут фичи, я, если честно, не знаю. Но, мне кажется, что-то, наверно, как у Евклидового пространства. 

     

    Модератор: Максим Годзи спрашивает: «Хотелось бы чуть больше деталей про Gromov product, опять же. Выглядит как интересный способ оценить иерархичность данных. Как пошагово это сделать, если применять этот метод к анализу семантики текстов, связей между словами, для которых мы подозреваем иерархичность и хотим ее измерить?» Наверное, надо открутить на слайд, где у вас матричный продукт. 

    (00:45:05)

     

    Мирвахабова Лейла: Да. Я в NLP не разбираюсь, но так навскидку кажется, что все, что нам нужно – это какие-то… Если можно задать метрику на предложениях, на словах, на всем таком, то тут все достаточно явно. Вообще у меня на первом слайде есть ссылка на репозиторий, и на репозитории есть код. Там он коротенький, ничего сверхъестественно сложного нет. Все, что нужно для этой функции – только матрица попарных расстояний. И если есть матрица попарных расстояний, то эту дельту посчитать очень просто.

    Другое дело, что я не знаю, чем это будет для таких текстовых данных.

     

    Модератор: Раз Максим задает такой вопрос, он подозревает где-то иерархичность. Ну, например, есть же естественная иерархичность у слов, связанная с их значением. Например, имеется животное, животное бывает кошка, собака и многое другое, а собака бывает бульдог, лайка, овчарка и прочее. Это естественная иерархичность данных. Она у вас и в картинках присутствует. Мне на самом деле удивительно, что вы не стали подобные вещи как-то исследовать, потому что в том же ImageNet есть некая иерархия, которую теоретически можно было бы выявить. 

     

    Мирвахабова Лейла: Мы немножко пытались разобраться в этом, но, например, для ImageNet мы тоже так смотрели. Там есть какие-то фотографии животных, скажем. Тоже можно привязать иерархию из биологии. Есть млекопитающие, среди них есть кошки, есть собаки, есть тигры. В общем, что-то такое. Но для этого нужно подразумевать наличие таких данных. То есть мы должны уже что-то про эту иерархию знать, какие-то метаданные должны быть.

    И вообще, насколько я помню, вроде бы есть статья или хотя бы пре-принт. Она тоже про картинки, но там использовали еще какие-то метаданные как раз вот для какого-то поиска иерархии, скажем. В общем, для какого-то более иерархически определенного вложения.

     

    Модератор: Теоретически мы можем пытаться построить… Пусть у нас есть некое пространство, в котором у нас есть признаки, например, картинок. И мы посчитали нашу дельта-гиперболичность по Громову, увидели, что данные обладают достаточной гиперболичностью. Взяли и начали строить деревья на наших данных, и теоретически должен существовать способ построить объемлющее дерево некое, которое будет давать некую иерархию, которая оптимально аппроксимирует данные в нашем гиперболическом пространстве. То есть можно поставить задачу аппроксимации в гиперболическом пространстве. 

     

    Мирвахабова Лейла: Не имея какой-то информации?

     

    Модератор: Не имея, да. То есть задача оптимальной аппроксимации гиперболического пространства (…). Пожалуйста, вам на кандидатскую или на докторскую.

     

    Мирвахабова Лейла: Звучит сложно. Там перебирать много что придется.

     

    Модератор: Там должна ставиться хорошо задача. 

     

    Мирвахабова Лейла: Так можно, наверное. Но пока что сходу что-то такое тяжеловесное. 

     

    Модератор: Почему? Весь (…) прямолинейная наука. Ладно. Дмитрий Перверзев спрашивает: «Есть ли формальный способ определить оптимальный способ изогнутости гиперболического пространства?»

     

    Мирвахабова Лейла: Относительно данных, можно как раз делать через дельту. А потом можно параметр кривизны по этой формуле посчитать.

    (00:50:02)

    Но это будет не прямо точно-точно, потому что, как минимум, в дискретной постановке мы здесь будем много раз семплить, то есть это будет какое-то приближение. Плюс у модели Пуанкаре из-за того, что нам нужно постоянно оставаться внутри диска, чтобы точки не выходили за пределы, нам, вообще говоря, в каждой операции нужно будет убеждаться, что точки лежат в пространстве, и нам нужно делать клиппинг. То есть мы будем обрезать значения, которые будут выходить за 1, в любом случае. И в принципе они из-за того, что много таких сложных функций, как логарифмы, вот эти все формулы, какие-то корни и все такое, там могут быть числовые нестабильности, поэтому там приходится все время добавлять какой-то ε на каждом этапе. И вот какой-то прям точной оценке c и, соответственно, вложений прямо не будет. Но будет примерно это вот так. 

     

    Модератор: Спасибо. Пока наши коллеги собираются с вопросами, у меня есть вопрос. Вы упомянули свою другую работу по гиперболическим вложениям для рекомендательных систем. А вы там считали гиперболичность пространства данных?

     

    Мирвахабова Лейла: Да. Там как раз на этом всем и была вся работа основана, потому что для рекомендательных систем вот эту иерархию представить намного проще. Тоже есть какие-то популярные предметы, товары, и какие-то менее популярные. 

     

    Модератор: Каталог продуктов, например. В любом интернет-магазине у нас есть каталог продуктов, представляющий собой графовую структуру дерева, по сути. 

     

    Мирвахабова Лейла: Да, это либо по типу товара, либо с точки зрения популярности. Но похожим образом это все можно строить для таких данных. Но там у нас была немножко другая модель. Если здесь мы брали какую-то обычную Евклидову, и к ней добавляли вот этот слой, который отображает гиперболическое пространство, то та модель была совсем другая. Там мы использовали автоэнкодеры, вариационные автоэнкодеры в гиперболическом пространстве. Если это обычный автоэнкодер, то это просто линейные слои, а для гиперболических автоэнкодеров там немножко другая структура была. Да, там мы считали эту дельту. 

     

    Модератор: И как дельта получилась? 

     

    Мирвахабова Лейла: Близко к 0. То есть там подразумевает какую-то иерархичность. 

     

    Модератор: Хорошо, спасибо. Коллеги, пожалуйста, еще вопросы к Лейле. Максим Годзи спрашивает: «Какие следующие шаги?» Максим, куда шаги? 

     

    Мирвахабова Лейла: Если вообще глобально про гиперболические такие вещи для машинного обучения, идея мне очень нравится, и геометрически это очень красиво. Но на практике иногда это достаточно сложно оптимизировать. Возможно, за счет вот этих нестабильностей в отображениях. То есть там формулы, и они какие-то достаточно сложные: там все эти корни, все эти логарифмы. И за счет этого, во-первых, уже может точность проседать. 

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

    И в рекомендательных системах, несмотря на то что мы потом все простые baseline обогнали, нам было достаточно сложно это все подбирать. То есть там получается много параметров. Подсчет дельты и кривизны спасает от параметра, связанного с кривизной. 

    (00:55:07)

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

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

     

    Модератор: Хорошо. Спасибо! 

     

    Мирвахабова Лейла: Спасибо вам.

     

    Модератор: Кажется, больше вопросов у нас нет. Спасибо, очень интересный рассказ! Надеемся, что у вас скоро появятся какие-то новые результаты, о которых вы у нас тоже расскажете. Я благодарен всем присутствующим, со всеми прощаюсь до сентября. Спасибо и до свидания! 

     

    Мирвахабова Лейла: Спасибо вам, что позвали! Все, до свидания.

     

    (00:56:27) (Конец записи.)