溫創(chuàng)新,黃桂萍,胡 舟
(湘潭理工學院數(shù)字科技學院,湘潭 410219)
高考作為我國人才選拔的一種主要方式,在中國教育體系中占據(jù)著極其重要的地位,它對學生的未來人生有著深遠的影響。隨著我國經濟社會的發(fā)展、教育制度改革和教育觀念的轉變,高考人數(shù)逐年增加,報考人數(shù)已由2018年的975 萬增加到2022 年的1193 萬,高考競爭日益激烈。如何最大化地利用自己的分數(shù)以及自身特點,選擇一個心儀的大學和專業(yè)是每個高考考生迫切需要解決的問題。自2014 年新高考改革至今,已有很多省份實現(xiàn)從傳統(tǒng)高考向新高考的轉變,和以往比較,新高考志愿填報數(shù)量有大幅提升,以普通類為例,志愿填報數(shù)量由6 個增加到45 個,專業(yè)組和專業(yè)的組合成百上千,致使考生很難做出選擇。每年都有不少考生,因為缺乏科學指引和盲目填報志愿,導致“高分低就”“高分不就”等各類報考事故的發(fā)生,遺憾終身。
高考志愿填報作為高校錄取的重要環(huán)節(jié),一直都是學者們研究的熱點。同時,千萬量級的考生群體的切實需求和我國多年在高考信息化建設中積累的大量志愿數(shù)據(jù),也為高考志愿填報推薦算法的研究提供了牽引動力和數(shù)據(jù)支撐。于超等[1]針對“高分低錄”等問題,采用支持向量機算法建立高考志愿填報模型,最后通過具體仿真對比試驗對算法有效性和優(yōu)越性進行分析。楊博凱等[2]針對高考志愿填報錄取最佳匹配問題,提出了基于遺傳算法搜索最優(yōu)解的解決方案。為解決考生志愿填報抉擇困難的問題,劉行兵等[3]提出一種融合智能審核的高考志愿推薦模型,能實現(xiàn)志愿智能審核和推薦。王澤卿等[4]在爬取歷年高考錄取數(shù)據(jù)的基礎上,提出一種基于分數(shù)線預測的多特征融合推薦算法(Reco-PMF),該算法首先利用歷年高校最低投檔位次,通過BP 神經網絡預測報考年份各高校最低投檔位次以及最低投檔分數(shù)線。余奎鋒等[5]提出一種基于C均值模糊聚類的多特征權重模糊均值聚類算法(MFW-FCM),該算法采用C 均值模糊聚類,形成不同填報風險下的三類推薦結果,并輸出各項填報信息。針對“信息過載”問題,徐蘭靜等[6]將協(xié)同過濾思想應用到高考志愿填報這一領域,從構建用戶屬性矩陣、查找近鄰用戶和產生推薦三個方面進行詳細描述,并對實驗產生的推薦結果進行分析。
通過梳理文獻,發(fā)現(xiàn)當前的志愿推薦算法往往存在算法單一、數(shù)據(jù)依賴較強、預測誤差較大、沒有充分考慮考生的個性化需求等問題。針對上述問題,本文通過使用Python 爬蟲技術獲得較為全面的高考志愿填報信息,并結合考生成績和填報意愿,通過多個改進的混合算法和大數(shù)據(jù)計算,為考生智能推薦志愿。
推薦算法的準確率與收集數(shù)據(jù)的準確程度成正比,因此,收集準確的高考志愿數(shù)據(jù)成為推薦算法能否成功的重中之重。
本文采用Python 爬蟲技術從各省教育考試院、各高校網站、掌上高考、中國教育在線、第三方評價機構等教育咨詢網站獲取多年的高考歷史數(shù)據(jù),并存儲在HDFS 中。HDFS 是Hadoop 生態(tài)中的重要組成部分,它可以運行在低配的硬件上,為分布式存儲提供底層支持,可將數(shù)據(jù)分塊存儲到集群內的不同機器上,其容錯性高、擴展性強。對于某些缺失招生信息的候選高校,會從這些院校的官方網站獲取相關招生數(shù)據(jù),并通過數(shù)據(jù)整合的方式,來保證數(shù)據(jù)的完整性和準確性。這些數(shù)據(jù)主要包括歷年高校專業(yè)錄取分數(shù)線、歷年高校專業(yè)招生計劃數(shù)據(jù)、當年高校專業(yè)招生計劃數(shù)據(jù)、各院校在各省最低投檔位次、各省一分一段表、軟科中國大學排名等。
一般而言,從各大教育咨詢網站獲取的初始數(shù)據(jù)集并不能滿足推薦算法對數(shù)據(jù)的要求,因此,需要對這類初始數(shù)據(jù)進行有針對性的處理,從而保證數(shù)據(jù)格式的合規(guī)性。數(shù)據(jù)倉庫工具Hive 提供了豐富的SQL 查詢方式來分析存儲在Hadoop 分布式文件系統(tǒng)中的數(shù)據(jù),可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL 查詢功能,能對數(shù)據(jù)集進行歸納整理。基于Hive 強大的功能,系統(tǒng)能篩選出招生高校、招生年份、招生省份、招生專業(yè)、專業(yè)錄取最高分、專業(yè)錄取最低分、專業(yè)錄取平均分、專業(yè)錄取人數(shù)等數(shù)據(jù),并將清洗后的數(shù)據(jù)導入到Hive 中,通過這樣的處理,可以提升推薦算法的準確度。
在本項目中將綜合使用Hive、HBase 和MR,從而滿足不同業(yè)務場景的需求。通過分析整理,得到近5年錄取年份、招生院校、招生省份、省控線、專業(yè)組、錄取批次、專業(yè)名稱、最低分、最低位次、計劃招生數(shù)等數(shù)據(jù)。系統(tǒng)采用自定義數(shù)據(jù)導入接口將這些統(tǒng)計好的數(shù)據(jù)推送到數(shù)據(jù)庫中,為推薦算法的計算提供數(shù)據(jù)支撐。而對于某些招生批次發(fā)生變化的候選高校,可以進行均值化或忽略處理;對于一些錄取數(shù)據(jù)不完整的候選院校,可用完整部分的平均數(shù)進行填充;對于近幾年都未在本省進行招生的高校,可以做不參與推薦處理。部分數(shù)據(jù)整理結果見表1。
表1 高考數(shù)據(jù)整理表(部分)
為提高志愿推薦的準確度,提升系統(tǒng)性能和滿足考生的個性化需求,本文基于大數(shù)據(jù)技術,提出了融合多種改進推薦算法的混合推薦模型。
推薦引擎是本研究的重點和難點,高考志愿填報推薦系統(tǒng)的整體架構如圖1所示。
圖1清晰地描述了推薦引擎在本系統(tǒng)中所處的位置和作用?;贖DFS的混合推薦算法,即HHRA(HDFS hybrid recommendation algorithm)算法,在組成形式上,它是多個子算法的組合,包含改進的基于用戶的協(xié)同推薦算法、推薦集優(yōu)化算法和各種相似度和概率計算算法,等等。該算法將充分考慮高考志愿填報機制的各種策略,結合Spark 技術、Hadoop 生態(tài)的各種技術,對混合數(shù)據(jù)進行計算處理,最終得出符合要求的院校專業(yè)推薦結果,為新高考志愿填報推薦系統(tǒng)提供算力支撐。
為幫助考生在海量數(shù)據(jù)中找到有價值的數(shù)據(jù),本文采用基于用戶的協(xié)同過濾推薦算法,它作為眾多學者研究的一種主流算法,應用相當廣泛。其核心思想是相似度計算,該算法可以表示為:首先找到與目標用戶興趣度相似的鄰近用戶,然后將鄰近用戶的喜好推薦給目標用戶。其基本步驟分為三步:①繪制用戶畫像矩陣;②搜索近鄰用戶;③生成推薦結果。
2.2.1 構建用戶特征矩陣
高考志愿填報中,其影響因素較多,既有個人、高校等因素,又有社會、經濟等因素。通過綜合分析,本文選取影響較大的重要因素來構建用戶畫像矩陣,這些因素包括:學校類型、考生成績、歷年錄取分數(shù)線、性別、生源地、選科情況、錄取批次、學校地區(qū)等信息,具體見表2,其中M 代表男,F(xiàn) 代表女。選科1代表首選物理,再選不限;2表示首選物理,再選化學等等,這些因素充分考慮了考生的基礎數(shù)據(jù)和偏好信息,能為高考志愿推薦提供更加準確的數(shù)據(jù)模型。在用戶特征矩陣建立后,將其作為用戶屬性,為后面的數(shù)據(jù)分析做準備。
表2 用戶特征矩陣表
為了便于進行比較,根據(jù)考生填報的成績和偏好信息,采用min-max法對用戶特征矩陣做標準化處理[7]。其計算規(guī)則如公式(1)所示:
其中:aij為考生的原始值,為屬性j值域中的最大值,為屬性j值域中的最小值。
2.2.2 查找相似考生
在標準化屬性數(shù)據(jù)的基礎上,本文采用改進的皮爾遜相關系數(shù)對目標考生與其他考生進行相似度計算,皮爾遜相關系數(shù)就是兩個變量的協(xié)方差除以兩個變量標準差的乘積。距離dij表示考生之間的相似度,距離越近,相似度則越高??紤]到考生特征屬性的重要程度不同,所以需要對不同的屬性進行加權處理,調整后的相似度計算規(guī)則如公式(2)所示:
其中:aik表示用戶i的第k個屬性值,ajk表示用戶j的第k個屬性值,wk表示第k個屬性的重要程度,即權值。p表示用戶屬性的個數(shù)。
2.2.3 生成推薦結果
在使用大數(shù)據(jù)技術完成相似度計算后,通過相似度搜索,系統(tǒng)將選取序列中相似度較高的K個用戶作為目標用戶的近鄰用戶,并將近鄰用戶的志愿作為目標用戶的推薦集??紤]到每年院校的招生人數(shù)和高考試卷難度可能會發(fā)生波動,采用分數(shù)作為參考值并不是最優(yōu)方案,所以根據(jù)考生的分數(shù)對應的位次作為主要參考將更加準確。根據(jù)目標用戶所處的位次,采用近鄰搜索,選取距離最小的M個用戶作為候選用戶,并將篩選結果放入新的推薦集中。如果推薦集合的志愿條數(shù)小于目標數(shù)X,系統(tǒng)將回到之前的步驟,擴大候選用戶的搜索范圍,如可以選擇距離最小的2M的用戶,或者將M設置為一個常量宏,通過增大M的值來實現(xiàn)候選集的擴大,并最終實現(xiàn)規(guī)定數(shù)量的志愿推薦。
為提升算法的匹配度,還需要對推薦集作進一步的優(yōu)化。如采用線差法和位次法計算其錄取概率,并以此為基礎進行院校志愿層次劃分。從使用范圍來看,線差法更具廣泛性,所以本文將用線差法對錄取概率進行計算。
2.3.1 錄取率計算
為了計算高考志愿錄取率,首先需要計算均差Dave和最低均差Dlow,其計算規(guī)則分別如公式(3)和公式(4)所示:
其中:ai為過去第i年高校在目標考生所在生源地的平均錄取分,si為過去第i年高校在目標考生所在生源地的最低錄取分,bi為過去第i年高校在目標考生所在生源地的批次分數(shù)線。現(xiàn)年考生的批次線差值Dlow[8]的計算規(guī)則如公式(5)所示:
其中:sn為目標考生現(xiàn)年的高考分數(shù),bn為目標考生所在生源地現(xiàn)年的省批次分數(shù)線。綜合式(3)~(5),可以計算高校錄取目標考生的概率,其計算規(guī)則如公式(6)所示:
基于公式(6)分別對推薦集志愿進行計算,并按錄取概率進行分類,分類結果為:P≥0.8為保底志愿;0.5 ≤P<0.8為穩(wěn)妥志愿;P<0.5為沖擊志愿。
2.3.2 考生個性化需求提取和分析計算
考生原始志愿表中包含考生的興趣喜好信息,如何將這些意愿信息進行特征值提取,并與專業(yè)進行匹配,推薦理想院校和專業(yè)給目標用戶是本文研究的一個重點。如果考生沒有填寫原始志愿表,也可以采用MBTI 人格類型與職業(yè)匹配關系理論,挖掘職業(yè)與專業(yè)的對應關系,來間接獲取考生的專業(yè)喜好信息。
本研究利用Jaccard系數(shù),并結合考生的志愿特征計算相似度。Jaccard 系數(shù),又稱為Jaccard相似系數(shù),是兩個集合的并集與交集的比值,可以用來度量用戶的相似度,其計算規(guī)則如公式(7)所示:
目標考生的志愿偏好特征與原始推薦集中的院校專業(yè)組的相似度計算規(guī)則如公式(8)所示:
其中:院校特征為A=(a1,a2,a3,…,ai),專業(yè)組特征為B=(b1,b2,b3,…,bi),院校專業(yè)組特征為S=(s1,s2,s3,…,si), 即S包括A和B(A∈S,B∈S)。R為目標考生可以填報的志愿數(shù)量。例如,目標考生填報了中南大學的107專業(yè)組,那么該專業(yè)組的特征s=(綜合類,湖南省,長沙市,新一線城市,理學),包含的專業(yè)有電子信息工程、土木工程、機械設計制造及其自動化、環(huán)境科學與工程等專業(yè)。所以可以對考生填報的i個院校專業(yè)組進行特征挖掘,來獲取考生的原始志愿表單集合S。
分別對保底志愿、穩(wěn)妥志愿、沖擊志愿中的志愿組按相似度進行計算,再按相似度進行降序排列,便可以生成符合目標考生興趣愛好的理想志愿。
為了清晰地描述整個HHRA 算法的整體邏輯,本文以湖南省2022 年新高考某考生T為例來驗證與分析模型。該考生的成績?yōu)?85 分,選科情況為首選物理,再選化學和生物。
(1)獲取考生的基本屬性信息,即高考分數(shù)、選科情況、性別、生源地等基本信息,這些信息由考生自己輸入。
(2)考生按自身喜好填寫原始志愿表(見表3)。
表3 考生E原始志愿表
(3)使用改進的皮爾遜相關系數(shù)計算相似度,查找相似考生,并得到一個結果序列。系統(tǒng)將選取序列中相似度較高的K個用戶作為目標用戶的近鄰用戶,并將近鄰用戶的志愿作為目標用戶的推薦集。
(4)通過考生提供的分數(shù)、選科情況計算出各志愿錄取概率,并將其劃分為沖、穩(wěn)、保三個層次,繼而得到院校專業(yè)組原始目標集M。
(5)根據(jù)考生的原始志愿表提取其偏好特征,同時利用Jaccard 系數(shù)計算院校專業(yè)組原始目標集M與提取出的考生偏好的相似度。
(6)根據(jù)步驟(4)和(5)得到的內容,在三種院校層次中,按之前計算得到的考生偏好相似度進行降序排列,并得到最終志愿推薦結果,生成的志愿推薦見表4。
表4 考生K的志愿推薦結果
通過模擬考生數(shù)據(jù)的方式對推薦算法進行驗證。模擬數(shù)據(jù)分為7個分數(shù)段,每個分數(shù)段隨機產生60 名2022 年湖南省考生的分數(shù),驗證指定范圍各類別所有高校的平均錄取概率,實驗結果如圖2所示。
圖2 各分數(shù)段各類別平均錄取率
從圖2得知,高分段和中分段的保底志愿和穩(wěn)妥志愿推薦效果比較好,說明考生對院校的選擇更加明確,高分段考生人數(shù)少,每年位次比較穩(wěn)定;而低分段考生的錄取概率不高,這是因為低分考生人數(shù)較多,高校每年的最低投檔線浮動大,“信息過載”問題突出。
本文針對當前高考志愿填報存在的問題,結合網絡爬蟲、大數(shù)據(jù)處理和存儲技術,提出了一種HHRA 混合推薦算法。該算法包含改進的基于用戶的協(xié)同過濾推薦算法、推薦集優(yōu)化算法和各種相似度和概率計算算法。相比于其他推薦算法,HHRA 算法提高了算法的實時性和準確度,實驗測試表明,該算法能為考生推薦符合考生成績和自身興趣愛好的志愿列表,能提升高考志愿選擇的效率和準確度,并解決缺乏志愿填報專業(yè)知識帶來的一系列問題,具有較好的應用價值。雖然本算法在系統(tǒng)的應用中有一定的推薦效果,但是在不同分數(shù)段的推薦中,其效果還是存在差異,針對此現(xiàn)象,應考慮在不同分數(shù)段采用不同的推薦方法;同樣,基于用戶的協(xié)同過濾推薦算法的推薦精度還不是很理想,還需要通過訓練集的不斷測試來進行完善,這也是今后研究和努力的方向。