Я сделал чатбот, используя Tensorflow's translation model (с некоторыми изменениями), подав его парами сообщений-ответов из Ubuntu Dialogue Corpus. Мне было интересно, есть ли у кого-нибудь идеи о том, как я могу обрабатывать контекст в разговоре? I.e. Я не хочу, чтобы chatbot забыл то, что я сказал ранее, после того, как я введу новое предложение.Управление контекстом в чате
Я могу только подумать об одной стратегии, которая должна обрабатывать контекст в предварительной обработке. Допустим, что у меня есть этот разговор:
M1: Hi, how are you? R1: Hey, good! I just finished work at the restaurant. How are you? M2: Good. How was it? R2: Exhausting... M3: Many customers? R3: Yes, and they didn't tip well either!
Тогда я мог бы поставить их в парах, как это: (M1-R1) (R1M2-R2), (R2M3-R3) и т.д. ... Другой вариант для сохранения контекста из M1 в каждой паре, например (M1-R1), (M1R1M2-R2), (M1R1M2R2M3-R3), но тогда продолжительность тренировочных предложений будет увеличиваться (много), что приведет к увеличению выделения памяти во время обучения, и мне, вероятно, потребуется уменьшить мою сеть (меньше нейронов в каждом слое).
Они сделали что-то подобное в this paper, но я не понимаю, как их модель построена и как она справится с этим.
В настоящее время я работаю над генеративным чатботом, и похоже, что бот-контекст более подходит для поиска – siljech