0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

扇貝是如何實(shí)現(xiàn)深度追蹤模型并運(yùn)用到英語學(xué)習(xí)者詞匯水平評(píng)估中去

Tensorflowers ? 來源:李倩 ? 2018-11-29 17:36 ? 次閱讀

背景

扇貝,作為一個(gè)擁有超過八千萬用戶的移動(dòng)英語學(xué)習(xí)平臺(tái),一直在探索如何利用數(shù)據(jù)來提供更精準(zhǔn)的個(gè)性化教育。更快速、科學(xué)地評(píng)估用戶詞匯水平,不僅可以有效提高用戶的學(xué)習(xí)效率,也可以幫助我們?yōu)槊课挥脩糁贫ǜ鼈€(gè)性化的學(xué)習(xí)內(nèi)容。

我們通過應(yīng)用 TensorFlow,在深度知識(shí)追蹤系統(tǒng)上可以實(shí)時(shí)地預(yù)測(cè)用戶對(duì)詞表上每個(gè)詞回答正確的概率 (如圖 1 所示)。本文將介紹扇貝是如何實(shí)現(xiàn)深度追蹤模型并運(yùn)用到英語學(xué)習(xí)者詞匯水平評(píng)估中去。

圖 1:實(shí)時(shí)預(yù)測(cè)答詞正確率

模型介紹

基于先前大量線上詞匯量測(cè)試記錄,我們的總序列數(shù)量已經(jīng)累積到千萬級(jí)別,這為使用深度學(xué)習(xí)模型提供了堅(jiān)實(shí)的基礎(chǔ)。模型方面,我們選用了斯坦福大學(xué) Piech Chris 等人在 NIPS 2015 發(fā)表的 Deep Knowledge Tracing (DKT) 模型 [1],該模型在 Khan Academy Data 上進(jìn)行了驗(yàn)證,有著比傳統(tǒng) BKT 模型更好的效果。由表 1 可見,相比 Khan Academy Data,扇貝詞匯量測(cè)試數(shù)據(jù)的題目數(shù)量和所涉及用戶量都要更大,序列長(zhǎng)度也更長(zhǎng),這些不同也是我們?cè)谀P驼{(diào)優(yōu)過程中面臨的最大挑戰(zhàn)。

表 1:Khan Math 和 Shanbay Vocab 數(shù)據(jù)對(duì)比

Baseline 模型結(jié)構(gòu)為單層 LSTM ,如圖 2 所示,輸入 xt 是用戶當(dāng)前 action(所答單詞和正確與否)的 embedding,可以用 one-hot encodings 或者是 compressed representations。輸出 yt 代表模型預(yù)測(cè)用戶對(duì)詞表中每個(gè)詞回答正確的概率。

圖 2:DKT 模型結(jié)構(gòu)

模型改進(jìn)

按照原論文思路實(shí)現(xiàn)的 baseline ,在 Khan Academy Data 上能較好地復(fù)現(xiàn)論文結(jié)果。針對(duì)實(shí)際應(yīng)用場(chǎng)景,我們使用 TensorFlow 實(shí)現(xiàn)了相應(yīng)模型,在如下幾方面做出改進(jìn),嘗試提升模型性能。

數(shù)據(jù)預(yù)處理

通過觀察發(fā)現(xiàn),原始數(shù)據(jù)存在如下幾個(gè)問題:

少量異常用戶數(shù)據(jù)占比過高

部分用戶測(cè)試序列過短,提供的信息不足

存在少量極低頻詞

經(jīng)過數(shù)據(jù)清洗后,模型準(zhǔn)確率有 1.3% 左右的提升。

引入外部特征

DKT 原模型的輸入只有當(dāng)前題目和用戶回答正確與否,事實(shí)上用戶答題過程中相關(guān)的一些其他信息也是可以作為特征輸入到模型中的。下面列出了其中一些有代表性的特征:

Time - 用戶第一次遇到該單詞時(shí)回答所花費(fèi)的時(shí)間

Attempt count - 用戶第幾次遇到該單詞

First action - 用戶的第一個(gè)動(dòng)作是直接回答還是求助系統(tǒng)給出提示信息

Word level - 先驗(yàn)單詞等級(jí)

使用這些特征的方式有多種,可以通過自編碼器編碼后輸入,也可以作為特征向量與 input embeddings 拼接后輸入,還可以直接和 LSTM 輸出的 hidden state 拼接后進(jìn)行預(yù)測(cè)。這些特征的使用進(jìn)一步將模型準(zhǔn)確率提升了約 2.1%。我們還對(duì)不同特征能夠帶來的影響進(jìn)行了對(duì)比實(shí)驗(yàn),發(fā)現(xiàn) Time 和 Attempt count 是最重要的兩個(gè)特征維度,而其他特征帶來的影響則很有限。

圖 3:引入外部特征的 DKT 模型

長(zhǎng)序列依賴

傳統(tǒng) LSTM 模型使用了門控函數(shù),雖然有效緩解了梯度消失問題,但面對(duì)超長(zhǎng)序列的時(shí)候仍然無法避免。此外,由于使用了 tanh 函數(shù),在多層 LSTM 中,層與層之間的梯度消失問題依然存在。所以現(xiàn)階段多層 LSTM 大多是采用 2~3 層,最多不超過 4 層。為了解決數(shù)據(jù)中存在的超長(zhǎng)序列長(zhǎng)期依賴問題,我們選用了 Shuai Li 等人在 CVPR 2018 發(fā)表的 Independently Recurrent Neural Network (IndRNN) 模型 [2]。 IndRNN 將層內(nèi)神經(jīng)元解耦,讓它們相互獨(dú)立,同時(shí)使用 ReLU 激活函數(shù),有效解決了層內(nèi)以及層間的梯度消失和爆炸問題,使得模型層數(shù)和能夠?qū)W習(xí)到的序列長(zhǎng)度大大增加。如圖 4 所示,對(duì)于 Adding Problem (評(píng)價(jià) RNN 模型的典型問題),當(dāng)序列長(zhǎng)度到達(dá) 1000 時(shí), LSTM 已經(jīng)無法降低均方誤差,而 IndRNN 仍然可以快速地收斂到一個(gè)非常小的誤差。

圖 4:對(duì) Adding Problem,各種 RNN 對(duì)長(zhǎng)序列的收斂情況對(duì)比

IndRNN 的引入,有效地解決了數(shù)據(jù)中超長(zhǎng)序列長(zhǎng)期依賴問題,進(jìn)一步將模型準(zhǔn)確率提升了 1.2%。

超參數(shù)調(diào)優(yōu)

在手動(dòng)調(diào)參的模型已經(jīng)得到了不錯(cuò)表現(xiàn)的基礎(chǔ)上,我們希望通過自動(dòng)調(diào)參來進(jìn)一步優(yōu)化模型。可調(diào)整的一些參數(shù)有:

RNN 結(jié)構(gòu)類型 - LSTM,GRU,IndRNN

RNN 層數(shù)和連接方式

學(xué)習(xí)率和 Decay 步數(shù)

Input 和 RNN 維度

Dropout 大小

在自動(dòng)調(diào)參算法中,Grid Search(網(wǎng)格搜索)、Random Search(隨機(jī)搜索)和 Bayesian Optimization(貝葉斯優(yōu)化)[3] 較為主流。網(wǎng)格搜索的問題在于容易遭遇維度災(zāi)難,而隨機(jī)搜索則不能利用先驗(yàn)知識(shí)來更好地選擇下一組超參數(shù),只有貝葉斯優(yōu)化是 “很可能” 比建模工程師調(diào)參能力更好的算法。因?yàn)樗芾孟闰?yàn)知識(shí)高效地調(diào)節(jié)超參數(shù)。貝葉斯優(yōu)化方法在目標(biāo)函數(shù)未知且計(jì)算復(fù)雜度高的情況下很強(qiáng)大,該算法的基本思想是基于采樣數(shù)據(jù)使用貝葉斯定理估計(jì)目標(biāo)函數(shù)的后驗(yàn)分布,然后再根據(jù)分布選擇下一個(gè)采樣的超參數(shù)組合。

圖 5:一維黑盒函數(shù)的貝葉斯優(yōu)化過程

圖 5 中紅線代表真實(shí)的黑盒函數(shù)分布,綠色區(qū)域代表根據(jù)已采樣點(diǎn)計(jì)算出的各位置處的置信區(qū)間。此刻要做的事情就是選擇下一個(gè)采樣點(diǎn),選擇均值大稱為 exploitation,選擇方差大稱為 exploration。均值大的點(diǎn)會(huì)更有把握獲得更優(yōu)的解,而方差更大的點(diǎn)會(huì)更有機(jī)會(huì)得到全局最優(yōu)。所以如何決定 exploitation 和 exploration 比例,是需要根據(jù)使用場(chǎng)景決定的。發(fā)揮這個(gè)功能的是一個(gè)叫做 acquisition function 的函數(shù),它被用來權(quán)衡 exploitation 和 exploration 。常用的 acquisition function 有 Upper Condence Bound, Expected Improvement, Entropy Search 等。有了 acquisition function 后,就能以它取得最大值處的超參數(shù),作為貝葉斯優(yōu)化算法推薦的下一個(gè)超參數(shù)值。這個(gè)結(jié)果是根據(jù)超參數(shù)間的聯(lián)合概率分布求出來,并且均衡了 exploritation 和 exploration 后得到的結(jié)果。

使用了貝葉斯優(yōu)化調(diào)參后,模型的準(zhǔn)確率進(jìn)一步提升了 1.7%。

模型部署

我們使用 TensorFlow Serving 作為模型部署上線的方案。在上線前我們有利用一些模型壓縮技術(shù)來減少模型大小,并根據(jù) TensorFlow Serving Batching Guide [4] 來找到最優(yōu)的 batching config 參數(shù)。

模型壓縮

模型壓縮有很多種方式,參數(shù)共享和剪枝、參數(shù)量化、低秩分解等。從簡(jiǎn)單易行的角度考慮,我們借鑒了 LSTMP [5] 中 projection layer 的思想,對(duì)最終輸出層的 embedding matrix 進(jìn)行了分解,增加了一個(gè) projection layer。這么做的原因在于模型最終輸出詞表維度很大,因此模型大部分參數(shù)都集中在輸出層。分解后模型大小減少到原來的一半,而模型準(zhǔn)確率卻沒有損失。

此外,DKT 模型的 hidden state 對(duì)于每個(gè)用戶而言是不同的,所以基于長(zhǎng)期學(xué)習(xí)需求,我們需要為每位用戶保存這個(gè)向量來作為 user embedding。但如果這個(gè)向量維度較大的話,面對(duì)大量潛在用戶,存儲(chǔ)壓力是非常大的,所以我們嘗試著去降低這個(gè)向量維度。起初的方案是使用 LSTMP,但實(shí)驗(yàn)發(fā)現(xiàn),直接降低這個(gè)維度對(duì)模型準(zhǔn)確率損害是很低的。將維度降低到 baseline 模型的五分之一,對(duì)準(zhǔn)確率幾乎沒有負(fù)面影響,這個(gè)結(jié)果也超出了我們的預(yù)期。

TensorFlow Serving Batching 調(diào)優(yōu)

根據(jù)官方 performance tuning guide,對(duì)于線上預(yù)測(cè)系統(tǒng),我們將 num_batch_threads 設(shè)為 CPU 的核心數(shù)量,max_batch_size 設(shè)為一個(gè)很大的值,同時(shí) batch_timeout_micros 設(shè)為 0 . 隨后在 1~10millisecond 范圍內(nèi)調(diào)整 batch_timeout_micros,找到最優(yōu)配置。經(jīng)過測(cè)試發(fā)現(xiàn),在同樣的計(jì)算資源下,使用調(diào)優(yōu)過后的 Batching config,并發(fā)量是不使用時(shí)候的 2~2.5 倍。

總結(jié)和展望

本文以詞匯水平評(píng)估場(chǎng)景為例,介紹了 TensorFlow 在 Computer-Aided Language Learning(計(jì)算機(jī)輔助語言學(xué)習(xí))中的應(yīng)用。通過對(duì)一系列論文結(jié)果的復(fù)現(xiàn)、改進(jìn)以及調(diào)優(yōu),成功將 DKT 模型上線,為數(shù)千萬用戶提供了更科學(xué)的詞匯測(cè)試方案。

后續(xù)我們會(huì)繼續(xù)探究如何將 DKT 模型更深入地應(yīng)用到扇貝單詞的單詞學(xué)習(xí)場(chǎng)景中去。同時(shí)還會(huì)將單詞題拓展到更泛性的練習(xí)題上去,在更廣的領(lǐng)域,更多的視角上進(jìn)行知識(shí)追蹤,從而更高效地幫助用戶進(jìn)行英語學(xué)習(xí)。用 AI 給教育賦能,是扇貝不變的追求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    44

    文章

    3529

    瀏覽量

    133304
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5422

    瀏覽量

    120593
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    327

    瀏覽量

    60413

原文標(biāo)題:扇貝 : 應(yīng)用 TensorFlow 實(shí)現(xiàn)深度知識(shí)追蹤

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分享15余年EMC設(shè)計(jì)經(jīng)驗(yàn),讓學(xué)習(xí)者成為高規(guī)格設(shè)計(jì)師!

    本次直播旨在從基礎(chǔ)了解電磁兼容理論,在實(shí)際設(shè)計(jì)與整改過程中靈活運(yùn)用理論知識(shí),提高設(shè)計(jì)品質(zhì)和整改效率,使學(xué)習(xí)者成為一位更高規(guī)格的設(shè)計(jì)師。
    的頭像 發(fā)表于 02-12 10:51 ?0次閱讀
    分享15余年EMC設(shè)計(jì)經(jīng)驗(yàn),讓<b class='flag-5'>學(xué)習(xí)者</b>成為高規(guī)格設(shè)計(jì)師!

    網(wǎng)絡(luò)環(huán)境的出現(xiàn)對(duì)于學(xué)習(xí)者的深遠(yuǎn)影響

    和內(nèi)容都發(fā)生了深刻的變化,從小組合作性學(xué)習(xí)(Group Learning)到虛擬教育(Virtual Education),越來越多的人開始關(guān)注網(wǎng)絡(luò)是如何豐富教學(xué)形式,提高教學(xué)的質(zhì)量和效益的。從學(xué)習(xí)者
    發(fā)表于 10-27 14:49

    網(wǎng)絡(luò)環(huán)境中學(xué)習(xí)者新特征的具體分析

    環(huán)境中學(xué)習(xí)者的新特征按照學(xué)習(xí)準(zhǔn)備分析的劃分方法來逐一加以闡述。在起始能力預(yù)估中有兩個(gè)新的因素值得我們考察。首先,學(xué)習(xí)者對(duì)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的掌握程度。參與網(wǎng)絡(luò)教學(xué)活動(dòng),懂得計(jì)算機(jī)的基本操作、了解網(wǎng)絡(luò)
    發(fā)表于 10-27 14:53

    深度學(xué)習(xí)模型是如何創(chuàng)建的?

    具有深度學(xué)習(xí)模型的嵌入式系統(tǒng)應(yīng)用程序帶來了巨大的好處。深度學(xué)習(xí)嵌入式系統(tǒng)已經(jīng)改變了各個(gè)行業(yè)的企業(yè)和組織。
    發(fā)表于 10-27 06:34

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

    什么是深度學(xué)習(xí)為了解釋深度學(xué)習(xí),有必要了解神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)是一種模擬人腦的神經(jīng)元和神經(jīng)網(wǎng)絡(luò)的計(jì)算模型。作為具體示例,讓我們考慮一個(gè)輸入圖像
    發(fā)表于 02-17 16:56

    自動(dòng)化專業(yè)英語詞匯

    自動(dòng)化專業(yè)英語詞匯英語詞匯 實(shí)用
    發(fā)表于 12-18 14:33 ?0次下載

    燈飾燈具英語詞匯與照明術(shù)語精選_secret

    燈具資料,英語詞匯與照明術(shù)語精選,好資料
    發(fā)表于 07-19 17:34 ?18次下載

    Datasheet中常用英語詞匯翻譯

    Datasheet中常用英語詞匯翻譯
    發(fā)表于 03-17 09:12 ?0次下載

    基于深度學(xué)習(xí)模型的點(diǎn)云目標(biāo)檢測(cè)及ROS實(shí)現(xiàn)

    近年來,隨著深度學(xué)習(xí)在圖像視覺領(lǐng)域的發(fā)展,一類基于單純的深度學(xué)習(xí)模型的點(diǎn)云目標(biāo)檢測(cè)方法被提出和應(yīng)用,本文將詳細(xì)介紹其中一種
    的頭像 發(fā)表于 11-05 16:47 ?1.8w次閱讀

    電子研發(fā)專業(yè)英語詞匯

    電子研發(fā)專業(yè)英語詞匯免費(fèi)下載。
    發(fā)表于 05-12 09:35 ?13次下載

    機(jī)器視覺英語專用詞匯

    機(jī)器視覺英語專用詞匯
    發(fā)表于 06-20 15:55 ?0次下載

    如何將大模型應(yīng)用到效能評(píng)估系統(tǒng)中去

    如何將大模型應(yīng)用到效能評(píng)估系統(tǒng)中去 智慧華盛恒輝效能評(píng)估系統(tǒng)大數(shù)據(jù)的應(yīng)用效能評(píng)估系統(tǒng)及其
    的頭像 發(fā)表于 09-27 16:16 ?438次閱讀

    如何基于深度學(xué)習(xí)模型訓(xùn)練實(shí)現(xiàn)圓檢測(cè)與圓心位置預(yù)測(cè)

    Hello大家好,今天給大家分享一下如何基于深度學(xué)習(xí)模型訓(xùn)練實(shí)現(xiàn)圓檢測(cè)與圓心位置預(yù)測(cè),主要是通過對(duì)YOLOv8姿態(tài)評(píng)估
    的頭像 發(fā)表于 12-21 10:50 ?1397次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>訓(xùn)練<b class='flag-5'>實(shí)現(xiàn)</b>圓檢測(cè)與圓心位置預(yù)測(cè)

    如何基于深度學(xué)習(xí)模型訓(xùn)練實(shí)現(xiàn)工件切割點(diǎn)位置預(yù)測(cè)

    Hello大家好,今天給大家分享一下如何基于深度學(xué)習(xí)模型訓(xùn)練實(shí)現(xiàn)工件切割點(diǎn)位置預(yù)測(cè),主要是通過對(duì)YOLOv8姿態(tài)評(píng)估
    的頭像 發(fā)表于 12-22 11:07 ?606次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>訓(xùn)練<b class='flag-5'>實(shí)現(xiàn)</b>工件切割點(diǎn)位置預(yù)測(cè)

    深度學(xué)習(xí)模型訓(xùn)練過程詳解

    詳細(xì)介紹深度學(xué)習(xí)模型訓(xùn)練的全過程,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、損失函數(shù)定義、優(yōu)化算法選擇、訓(xùn)練過程以及模型
    的頭像 發(fā)表于 07-01 16:13 ?488次閱讀