Как происходит операция свертки в документе CDSSM от Microsoft? - PullRequest
0 голосов
/ 08 февраля 2020

Я читаю эту статью: Скрытая семантика c Модель со сверточной структурой для поиска информации

В этой статье запрос / документ сначала преобразуется в слово- триграммы, сопровождаемые хэшированием слова тримаграмма. Затем эти векторы хэшированных слов подаются в слой свертки для захвата контекстной информации в каждой позиции в запросе / документе. Теперь размерность векторов слов, подаваемых на вход сверточного слоя, равна 90000, а выходной размер равен 300. В статье не описывается, как происходит свертка. Здесь только упоминается, что выходной вектор h_t размера 300 получается умножением матрицы свертки W c на входное слово-триграмм lt (хешированное слово-триграмм слово- триграмм) с последующей нелинейностью.

Свертка может происходить несколькими способами, например:
(1) Фильтр размера 300 можно использовать с шагом 300, чтобы получить выходные данные измерения 300.
(2) Фильтр размером 89700 можно использовать с шагом 1 для получения 300-мерного вывода.

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

...