Comments 23
В мобильной версии одни inline$
Спасибо за информативную статью. Хочу прокомментировать по поводу перевода термина embedding. Сам недавно столкнулся с этим в англоязычной статье и долго не мог понять что имеется ввиду. Так вот сам термин embedding чаще всего употребляется в отношении к каким нибудь устройствам встроенным в систему на физическом уровне — embedding device. А в данном случае подходит перевод 'вложение': вложение элемента (вершины графа или слова) в n-мерное пространство рациональных чисел.
пс: кто думает иначе, можете и дальше витать в своих выдуманных мирах
word embedding = векторное представление слова,
не следует, что:
embedding = представление.
Здесь случай использования разных терминов в русском и английском языках для обозначения одного и того же понятия.
Embedding в данном контексте переводится как «вложение», «погружение»
Словарная статья на Мультитран
Поэтому давайте для начала поймем, что ничего никуда в данном случае не «вкладывается» (т.е. это вам не вложенная в одну геометрическую фигуру другая геометрическая фигура). Если кто-то так и говорит, то это или профессиональный термин или жаргон. Причём, боюсь, скорее это жаргон переводчиков, а не термин математиков. В сфере CS данный термин не используется. Да и multitran не истина в последней инстанции, нормальной модерации там нет.
А что же происходит, если не «процесс вложения»?
Мы получаем векторное представление для наших именованных понятий.
Погружение? Мы тоже так по-русски не говорим.
В крайнем случае, можно использовать вариант «ищем (рас)положение векторов слов в (векторном) пространстве». Смысл действия именно такой.
Но, увы, «расположение» и «положение» — не термины, мы не можем их использовать без окружающих уточняющих слов в надежде на понимание. А «векторное представление» — это сложившийся термин в CS, хотя и использующееся в несколько ином значении («векторное представление полигона» — набор координат и/или векторов, использующийся для задания полигона в векторном пространстве).
Поэтому я считаю, что оба не правы. Сложившегося термина для данного понятия нет.
Но если выбрать термин, какой он будет?
Из пространства числовых идентификаторов объектов мы негеометрическим образом получаем координаты объектов в векторном пространстве.
Слово «вложение» имеет другой смысл и поэтому режет слух, т.к. ассоциируется с вложенным треугольником, т.е. геометрическими действиями внутри одного пространства.
Термин «представление» не до конца отражает суть явления, но внутреннего противоречия вроде бы не вызывает, т.к. используется для близких понятий — для результата негеометрического процесса отображения одного пространства в другое.
Если у кого-либо есть варианты лучше, то предлагайте. Почему понятия «проекция» и «отображение» тоже не очень хорошо подходят, теперь, думаю, понятно — во-первых, это снова термины, во-вторых, как термины, они подразумевают геометрические действия внутри метрических пространств, и как правило также уменьшение размерности, а не её увеличение.
Наше же «вложение» — по-факту скорее «векторное расширение»: приписывание векторных значений одномерным идентификаторам.
Слово «вложение» имеет другой смысл и поэтому режет слух, т.к. ассоциируется с вложенным треугольником, т.е. геометрическими действиями внутри одного пространства.
А почему не с вложением одного пространства большей размерности в пространство меньшей размерности, например? Или с инъективным отображением?
Если у кого-либо есть варианты лучше, то предлагайте. Почему понятия «проекция» и «отображение» тоже не очень хорошо подходят, теперь, думаю, понятно — во-первых, это снова термины, во-вторых, как термины, они подразумевают геометрические действия внутри метрических пространств, и как правило также уменьшение размерности, а не её увеличение.
Кто сказал, что отображение требует наличия метрического пространства? Отображение множества на множество — вполне нормальная вещь, а метрики там обычно не будет. И никакой геометрии.
Равно и как в, скажем, банальных функциях. Например, функция взятия целой части действительного числа (R -> Z
), является отображением, но это не "геометрические действия внутри одного пространства".
Понятно, что и понятие «представление» имеет аналогичные проблемы, оно лишь чуть уже и лишь чуть более привычно для использования в CS (а в математике — наоборот).
Смотрю код и пытаюсь понять
Зачем в классе mean_vectorizer функция fit
def fit(self, X):
return self
Разве не проще
Вместо
mean_vectorizer(w2v).fit(train_df['list_w']).transform(train_df['list_w'])
Сделать
mean_vectorizer(w2v).transform(train_df['list_w'])
Смотрю на глаз — код не прогонял
Спасибо за статью. Только после прочтения об использовании word2vec и обучения моделей на статьях хабра осталось ощущение незавершенности: вот мы обручили модель с такой-то точностью, и всё. Интересно как это можно применить, или хотя бы понять-интерпретировать результат. Например топ- слов, влияющих на рейтинг статьи (хотя это можно и без ML сделать)
](https://habrastorage.org/web/c92/477/565/c924775650e44c469e20c3eaa9705bfa.png)
А сказать “заводной апельсин” мы не можем* — эти слова не сочетаются.
Есть такой роман и фильм, решил упомянуть так, за между прочим :)
Чудесный мир Word Embeddings: какие они бывают и зачем нужны?