Последнее предварительно обученное многоязычное встраивание слов

Существуют ли какие-либо последние предварительно обученные многоязычные вложения слов (несколько языков совместно отображаются в одно и то же векторное пространство)?

Я просмотрел следующее, но они мне не подходят:

  1. FastText / MUSE (https://fasttext.cc/docs/en/aligned-vectors.html): это кажется слишком старым, и векторы слов не используют информацию подслов / фрагментов слова.
  2. ЛАЗЕР (https://github.com/yannvgn/laserembeddings): сейчас я использую этот , он использует информацию подслова (через BPE), однако рекомендуется не использовать это для встраивания слов, потому что он предназначен для встраивания предложений (https://github.com/facebookresearch/LASER/issues/69).
  3. Многоязычный BERT (bert-base-многоязычный-без корпуса в https://huggingface.co/transformers/pretrained_models.html): это контекстуализированные вложения, которые можно использовать для встраивания предложений, и кажется, что они не подходят для встраивания слов без контекстов.

Вот проблема, которую я пытаюсь решить:

У меня есть список названий компаний, которые могут быть на любом языке (в основном на английском), и у меня есть список ключевых слов на английском, чтобы измерить, насколько название компании близко к ключевым словам. Теперь у меня есть простое решение для сопоставления ключевых слов, но я хочу улучшить его, используя предварительно обученные вложения. Как вы можете видеть из следующих примеров, существует несколько проблем:

  1. ключевое слово и название бренда не разделяются пробелом (теперь я использую пакет "wordsegment" для разделения слов на подслова), поэтому встраивание с информацией о подслове должно очень помочь
  2. список ключевых слов невелик, и название компании может быть на разных языках (поэтому я хочу использовать встраивание, потому что «футбол» близок к «футболу»)

Примеры названий компаний: «cheapfootball ltd.», «Wholesalefootball ltd.», «Footballer ltd.», «Soccershop ltd.»

Примеры ключевых слов: "футбол"


person MachineLearner    schedule 15.06.2020    source источник
comment
the word vectors are not using subwords / wordpiece information. - Нет, вложения слов на основе fasttext создаются с использованием подслов n-граммов. См .: github.com/facebookresearch/fastText/issues/475   -  person Gokul NC    schedule 27.07.2020
comment
вы правы, что большинство вложений слов на основе fasttext используют подслова, особенно те, которые могут быть загружены с помощью fasttext.load_model, однако тот, о котором я говорил (fasttext.cc/docs/en/aligned-vectors.html) имеет только текстовый формат и не использует информацию подслов.   -  person MachineLearner    schedule 27.07.2020
comment
Извините, я не заметил, что ваша ссылка указывает на выровненные векторы слов :)   -  person Gokul NC    schedule 27.07.2020


Ответы (1)


Я думаю, что создание модели с использованием встраивания в это приложение может ввести в заблуждение (изучено на собственном опыте). Потому что, если есть две компании, football ltd и soccer ltd, модель может сказать, что обе компании совпадают, что может быть неверным. Один из подходов состоит в том, чтобы удалить повторяющиеся слова, например, «корпорация», «Facebook corporation, ltd.», «Facebook ltd.», И попытаться сопоставить.

Другой подход - использовать deepmatcher, который использует нечеткое сопоставление глубокого обучения на основе контекста слов. Ссылка

Если сходство предложений является основным подходом, которому вы хотите следовать, алгоритмы STSBenchmark, возможно, стоит изучить: Ссылка

Sent2vec ссылка и InferSent Ссылка использует Fasttext, но, похоже, дает хорошие результаты на STSBenchmark

person Omar Saleem    schedule 18.06.2020
comment
Спасибо за ваш ответ, но я не пытаюсь сопоставить названия компаний с названиями компаний, а пытаюсь сопоставить названия компаний с определенной темой (например, футбол в данном случае). Также я уже сделал предварительную обработку, например. удаление типов компаний (ltd) из названий перед применением встраивания. Я посмотрю на ваши ссылки, чтобы посмотреть, есть ли что-нибудь, что я могу попробовать. - person MachineLearner; 19.06.2020