字符级 RNN:一个字母一个字母地写
语言模型不一定按词来,也可以按字符来:每次只预测下一个字母,写下,再喂回去。听起来很难——光靠单个字母怎么拼出像样的词?靠的正是 RNN 的隐状态:它一路记着“现在拼到哪、前面是什么”,于是 q 后面大概率接 u、字母们自然组装成合理的词,而不是乱码。这其实就是字符级的“自回归”,只是颗粒更细。点“下一字”,看隐状态一边更新、一边把字母拼成词。
上面是已写出的字符(金色是刚写的)。中间 4 根小条是隐状态(RNN 的“记忆”),下面是对下一个字符的概率预测——最高的那个被选中。
颗粒到字符
词表只有几十个字符,却能拼出任意词——连没见过的新词也拼得出。
隐状态记上文
正因为隐状态记着已写内容,字母才会合理衔接(q→u),不是乱码。
同样是自回归
写一个、喂回去、再写一个——和词级生成同理,只是更细。