簡單的會話中,可以直接根據意圖對映動作。
但實際情況中,會話中會發生閒聊或場景切換,需要參考歷史來選擇動作。
在tedpolicy中,rasa提取特徵,並通過特徵來決定採取何種動作。
特徵包含使用者訊息中的意圖、實體、當前的槽值和之前所採取的動作。
所有特徵向量拼接起來成為最終的feature_t,tedpolicy對和action_t之間的對映關係建模。
這裡用到乙個單向的transformer來處理多輪會話特徵序列,使用單向transformer的原因是實際情況中我們無法預知後序的會話資訊,而單向transformer的注意力不會放在未來的資料上。
會話特徵和動作之間的對映關係通過starspace方法建模:
starspace方法適用於domain specific的資料,它得到的embedding具有一定程度的可解釋性,因為tag為embedding增加了背景資訊。
**時,計算所有動作與當前會話特徵之間的相似度,選擇相似度最高的動作並執行。
transformer可以輕易的向前回看多輪,並為當前的決策提供背景資訊。但是在ted policy中,transformer並沒被用在文字上,而是用在一系列的事件上。
transformer比lstm適用於此的原因是,如果會話中發生背景切換,可能需要較多輪數之前的歷史資訊。
RASA中的填槽
填槽指在會話中從使用者處收集完成任務所需的資訊。如果需要連續收集多條資訊,可以建立乙個formaction。formaction中含有乙個迴圈的邏輯來詢問使用者所需的槽值。form在domain檔案中定義 使用form則需要在config檔案中引入formpolicy。formpolicy是memo...
中 varStatus的屬性簡介
我們常會用c標籤來遍歷需要的資料,為了方便使用,varstatus屬性可以方便我們實現一些與行數相關的功能,如 奇數行 偶數行差異 最後一行特殊處理等等。先就varstatus屬性常用引數總結下 輸出行號,從0開始。輸出行號,從1開始。當前這次迭代的 集合中的 項 判斷當前項是否為集合中的第一項,返...
中 varStatus的屬性簡介
們常會用c標籤來遍歷需要的資料,為了方便使用,varstatus屬性可以方便我們實現一些與行數相關的功能,如 奇數行 偶數行差異 最後一行特殊處理等等。先就varstatus屬性常用引數總結下 輸出行號,從0開始。輸出行號,從1開始。當前這次迭代的 集合中的 項 判斷當前項是否為集合中的第一項,返回...