那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

扇貝是如何實現深度追蹤模型并運用到英語學習者詞匯水平評估中去

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

背景

扇貝,作為一個擁有超過八千萬用戶的移動英語學習平臺,一直在探索如何利用數據來提供更精準的個性化教育。更快速、科學地評估用戶詞匯水平,不僅可以有效提高用戶的學習效率,也可以幫助我們為每位用戶制定更個性化的學習內容。

我們通過應用 TensorFlow,在深度知識追蹤系統上可以實時地預測用戶對詞表上每個詞回答正確的概率 (如圖 1 所示)。本文將介紹扇貝是如何實現深度追蹤模型并運用到英語學習者詞匯水平評估中去。

圖 1:實時預測答詞正確率

模型介紹

基于先前大量線上詞匯量測試記錄,我們的總序列數量已經累積到千萬級別,這為使用深度學習模型提供了堅實的基礎。模型方面,我們選用了斯坦福大學 Piech Chris 等人在 NIPS 2015 發表的 Deep Knowledge Tracing (DKT) 模型 [1],該模型在 Khan Academy Data 上進行了驗證,有著比傳統 BKT 模型更好的效果。由表 1 可見,相比 Khan Academy Data,扇貝詞匯量測試數據的題目數量和所涉及用戶量都要更大,序列長度也更長,這些不同也是我們在模型調優過程中面臨的最大挑戰。

表 1:Khan Math 和 Shanbay Vocab 數據對比

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

圖 2:DKT 模型結構

模型改進

按照原論文思路實現的 baseline ,在 Khan Academy Data 上能較好地復現論文結果。針對實際應用場景,我們使用 TensorFlow 實現了相應模型,在如下幾方面做出改進,嘗試提升模型性能。

數據預處理

通過觀察發現,原始數據存在如下幾個問題:

少量異常用戶數據占比過高

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

存在少量極低頻詞

經過數據清洗后,模型準確率有 1.3% 左右的提升。

引入外部特征

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

Time - 用戶第一次遇到該單詞時回答所花費的時間

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

First action - 用戶的第一個動作是直接回答還是求助系統給出提示信息

Word level - 先驗單詞等級

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

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

長序列依賴

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

圖 4:對 Adding Problem,各種 RNN 對長序列的收斂情況對比

IndRNN 的引入,有效地解決了數據中超長序列長期依賴問題,進一步將模型準確率提升了 1.2%。

超參數調優

在手動調參的模型已經得到了不錯表現的基礎上,我們希望通過自動調參來進一步優化模型。可調整的一些參數有:

RNN 結構類型 - LSTM,GRU,IndRNN

RNN 層數和連接方式

學習率和 Decay 步數

Input 和 RNN 維度

Dropout 大小

在自動調參算法中,Grid Search(網格搜索)、Random Search(隨機搜索)和 Bayesian Optimization(貝葉斯優化)[3] 較為主流。網格搜索的問題在于容易遭遇維度災難,而隨機搜索則不能利用先驗知識來更好地選擇下一組超參數,只有貝葉斯優化是 “很可能” 比建模工程師調參能力更好的算法。因為它能利用先驗知識高效地調節超參數。貝葉斯優化方法在目標函數未知且計算復雜度高的情況下很強大,該算法的基本思想是基于采樣數據使用貝葉斯定理估計目標函數的后驗分布,然后再根據分布選擇下一個采樣的超參數組合。

圖 5:一維黑盒函數的貝葉斯優化過程

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

使用了貝葉斯優化調參后,模型的準確率進一步提升了 1.7%。

模型部署

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

模型壓縮

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

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

TensorFlow Serving Batching 調優

根據官方 performance tuning guide,對于線上預測系統,我們將 num_batch_threads 設為 CPU 的核心數量,max_batch_size 設為一個很大的值,同時 batch_timeout_micros 設為 0 . 隨后在 1~10millisecond 范圍內調整 batch_timeout_micros,找到最優配置。經過測試發現,在同樣的計算資源下,使用調優過后的 Batching config,并發量是不使用時候的 2~2.5 倍。

總結和展望

本文以詞匯水平評估場景為例,介紹了 TensorFlow 在 Computer-Aided Language Learning(計算機輔助語言學習)中的應用。通過對一系列論文結果的復現、改進以及調優,成功將 DKT 模型上線,為數千萬用戶提供了更科學的詞匯測試方案。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3667

    瀏覽量

    135243
  • 深度學習
    +關注

    關注

    73

    文章

    5513

    瀏覽量

    121551
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60631

原文標題:扇貝 : 應用 TensorFlow 實現深度知識追蹤

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分享15余年EMC設計經驗,讓學習者成為高規格設計師!

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

    網絡環境的出現對于學習者的深遠影響

    和內容都發生了深刻的變化,從小組合作性學習(Group Learning)到虛擬教育(Virtual Education),越來越多的人開始關注網絡是如何豐富教學形式,提高教學的質量和效益的。從學習者
    發表于 10-27 14:49

    網絡環境中學習者新特征的具體分析

    環境中學習者的新特征按照學習準備分析的劃分方法來逐一加以闡述。在起始能力預估中有兩個新的因素值得我們考察。首先,學習者對計算機和網絡技術的掌握程度。參與網絡教學活動,懂得計算機的基本操作、了解網絡
    發表于 10-27 14:53

    深度學習模型是如何創建的?

    具有深度學習模型的嵌入式系統應用程序帶來了巨大的好處。深度學習嵌入式系統已經改變了各個行業的企業和組織。
    發表于 10-27 06:34

    什么是深度學習?使用FPGA進行深度學習的好處?

    什么是深度學習為了解釋深度學習,有必要了解神經網絡。神經網絡是一種模擬人腦的神經元和神經網絡的計算模型。作為具體示例,讓我們考慮一個輸入圖像
    發表于 02-17 16:56

    自動化專業英語詞匯

    自動化專業英語詞匯英語詞匯 實用
    發表于 12-18 14:33 ?0次下載

    Datasheet中常用英語詞匯翻譯

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

    基于深度學習模型的點云目標檢測及ROS實現

    近年來,隨著深度學習在圖像視覺領域的發展,一類基于單純的深度學習模型的點云目標檢測方法被提出和應用,本文將詳細介紹其中一種
    的頭像 發表于 11-05 16:47 ?1.8w次閱讀

    電子研發專業英語詞匯

    電子研發專業英語詞匯免費下載。
    發表于 05-12 09:35 ?16次下載

    機器視覺英語專用詞匯

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

    如何將大模型用到效能評估系統中去

    如何將大模型用到效能評估系統中去 智慧華盛恒輝效能評估系統大數據的應用效能評估系統及其
    的頭像 發表于 09-27 16:16 ?557次閱讀

    如何基于深度學習模型訓練實現圓檢測與圓心位置預測

    Hello大家好,今天給大家分享一下如何基于深度學習模型訓練實現圓檢測與圓心位置預測,主要是通過對YOLOv8姿態評估
    的頭像 發表于 12-21 10:50 ?2189次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>訓練<b class='flag-5'>實現</b>圓檢測與圓心位置預測

    如何基于深度學習模型訓練實現工件切割點位置預測

    Hello大家好,今天給大家分享一下如何基于深度學習模型訓練實現工件切割點位置預測,主要是通過對YOLOv8姿態評估
    的頭像 發表于 12-22 11:07 ?859次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>訓練<b class='flag-5'>實現</b>工件切割點位置預測

    深度學習模型訓練過程詳解

    詳細介紹深度學習模型訓練的全過程,包括數據預處理、模型構建、損失函數定義、優化算法選擇、訓練過程以及模型
    的頭像 發表于 07-01 16:13 ?1503次閱讀

    AI大模型深度學習的關系

    AI大模型深度學習之間存在著密不可分的關系,它們互為促進,相輔相成。以下是對兩關系的介紹: 一、深度
    的頭像 發表于 10-23 15:25 ?1265次閱讀
    皇冠百家乐皇冠网| 百家乐官网增值公式| 百家乐手机游戏下载| 百家乐官网注册赠分| 免费百家乐追号软件| 玩百家乐官网的高手| 网上百家乐游戏| 电脑赌百家乐官网可靠吗| 易发棋牌官网| 百家乐发牌器8副| 百家乐官网的寻龙定穴| 百家乐技巧网址| 夜总会百家乐官网的玩法技巧和规则 | 网上百家乐官网有哪些玩法| 波克棋牌官方免费下载| 澳门百家乐群策略| 赌博百家乐官网玩法| 威尼斯人娱乐城信誉lm0| 百家乐官网技巧头头娱乐| 云鼎娱乐城优惠活动| 希尔顿百家乐试玩| 百家乐官网娱乐官网| 灵台县| 百家乐筹码套装100片| 王牌百家乐官网的玩法技巧和规则| 皇冠足球投| 在线百家乐策| 百家乐官网麻将筹码币镭射贴膜| 百家乐官网体育直播| 大发888官网官方下载| 百家乐官网外套| 普定县| 威尼斯人娱乐城是骗子| 百家乐游戏论坛| 视频百家乐官网试玩| 百家乐翻天youtube| 沙龙百家乐官网娱乐场| 正宁县| 大发888娱乐场 34| 百家乐英皇娱乐平台| 百家乐官网都是什么人玩的|