Обложка канала

tldr_tany

3881 @tldr_tany

Всем привет! Я Таня @tany_savelieva, делаю стартап SupportAI, благотворительный фонд MIPTHEALTH, инвестирую и увлекаюсь web3. Пишу про технологии, работу и то, что меня вдохновляет

tldr_tany

8 лет назад
Открыть в
End-to-end Neural Coreference Resolution
https://arxiv.org/pdf/1707.07045.pdf
За разбор спасибо @leonshting
Эта статья берется как SOTA baseline для coreference resolution в статье из предыдущего поста https://arxiv.org/pdf/1802.05365.pdf
Когда
15 декабря 2017 года

В чем понт
Модель, решающая end-to-end (без синтаксических парсеров, теггеров по частям речи и прочих костылей) задачу coreference resolution - для каждого понятия найти все понятия, которые отсылают к той же сущности. Когда вы задаёте Сири вопрос 'Кто такой Хинтон?', а потом 'Сколько ему лет?', вы хотите, чтобы Сири понимала, что 'ему' и 'Хинтон' это одна и та же сущность, и не лезла искать ваш запрос в гугл. Модель бьет state of the art по данной задаче.

Подробности
Обучающая выборка для этой задачи будет состоять из кластеров отрезков для каждой сущности. Например, для предложения 'Мама мыла раму. Ее сын Коля, в это время страдал фигней', выделим сущность и назовем ее ID0. Ей будут соответсвовать слова 'мама' и 'ее'. Вторая сущность(ID1) будет включать в себя 'сын' и ‘Коля’.
Работу модели можно разбить на два этапа. На первом этапе берутся все возможные отрезки текста, скорятся по тому, насколько отрезок может быть упоминанием любой из сущностей (mention score), то есть насколько этот отрезок в принципе представляет для нас интерес. Выходом для этого этапа будут вероятности для отрезков разной длины быть сущностями. Например, для отрезков длиной 1 - 'Мама -0.9, мыла - 0.0001, раму - 0.001' и тд. Для отрезков длины 2 - ‘Мама мыла’ - 0.5, ‘мыла раму’ - 0.05 и тд. Эти вероятности считаются с помощью контекстного кодирования слов BiLSTM. Для каждого слова в предложении BiLSTM отдает свое внутреннее состояние. Рассмотрим все возможные отрезки текста, для каждого возьмем вектора (внутренние состояния) от LSTM и сумму этих векторов. Поскольку отрезки, а значит и список векторов слов, разной длины, нужно это упаковать в пространство фиксированной размерности. Делается это так: берем вектора начала отрезка, конца отрезка и взвешенную сумму всех векторов - attention. Веса attention’а - функция векторов. Итого имеем представление отрезка фиксированной размерности. Скармливаем это представление в слой с нелинейностью - получаем mention score.
На втором этапе по mention score выбираются наилучшие отрезки-кандидаты. Для каждого кандидата смотрим, какие из других кандидатов могут быть референсом к данному - пытаемся определить кластер. Скор для этой части - сумма трех скоров - mention-score первого отрезка, mention-score второго отрезка, а также скора кореференса между отрезками - функции от векторов, конечномерных представлений отрезков, поэлементного произведения векторов и дополнительных фичей.