Предыстория. Мы работаем над интересной проблемой и обнаружили, что получаем более низкие баллы, поскольку (возможно?) наша сеть (с использованием ряда CNN вместо нескольких параллельных CNN) не спроектирована. быть инвариантным к порядку слов. Быстрый поиск в Google приводит меня к некоторым замечательным обсуждениям этого и CNN. Денни упоминает использование многоканальных CNN для текста, что приводит к этой проблеме keras на Github, а затем к этой статье Кима и др.

У нас было несколько идей, как использовать «комбинацию» представлений из разных источников (мультисенсор, google/fasttext, вы поняли суть) и некоторые другие изящные приемы, которые мы могли бы использовать для улучшения межъязыковых приложений. Первоначальная догадка заключалась в том, чтобы использовать какое-то внимание, чтобы решить, какое представление выбрать в зависимости от входного контекста. Но это звучало сложно. Мы хотели превратить концепцию во что-то действительно простое и тривиальное (простые вещи крутые ✌️). У нас есть несколько идей, как это сделать (но часов в сутках не хватает), и вскоре мы сообщим подробный анализ наших экспериментов с этим.

Заключительные мысли/вопросы:

  1. 2D-свертки для текста: будут ли они полезны? они уменьшили бы количество параметров, которые необходимо изучить! 1D conv имеет параметры filter_size*word_dimension*num_filters, а 2D будет иметь параметры filter_size_x*filter_size_y*num_filters, что приводит к меньшему количеству параметров в зависимости от нашего выбора гиперпараметров filter_size.
  2. Что узнают в НЛП несколько последовательных CNN?
  3. Визуализация CNN для текста. Предположим, что размер нашего одномерного фильтра = k, а размерность словесного представления = d, тогда у нас есть фильтры размера k*d. Допустим, мы нарезаем их на k полосок d и предположим, что определенные фильтры учатся извлекать определенные (см. пример с яблоком ниже) понятия (фрукты, известные люди) или темы (например, спорт, политика); затем, если мы (TODO:) начертим эти d-мерные полосы с нашими представлениями входных слов, сможем ли мы получить некоторое представление о том, действительно ли они изучают вышеупомянутые концепции или темы (предыстория: точечный продукт двух похожих вещи самые высокие; скажем, вы хотите найти «яблоко» в (немаркированном) стоге сена представлений слов, тогда взятие скалярного произведения всех повторений слов в хакстеке с представлением «яблоко» приведет к высокой косинусной оценке )?
  4. Обновление: этот анализ (пункт 3) дополнительно поможет обосновать использование 2D-фильтров для задач НЛП, поскольку каждый фильтр будет изучать только определенную тему, вместо этого мы могли бы преуспеть с более короткими фильтрами по конкретной теме.
    Кроме того, вместо того, чтобы изучать веса фильтров с нуля, мы могли бы инициализировать фильтры, соответствующие конкретным темам, представляющим интерес.

Помощь: если вы хотите сотрудничать/обсудить, обращайтесь!

Твиттер

Личная страница