【正確利用ChatGPT輔助課程論文實(shí)例】知識(shí)圖譜構(gòu)建實(shí)踐反思 課程論文分享
對(duì)小組所構(gòu)建的知識(shí)圖譜的反思
——我對(duì)知識(shí)圖譜的偏見
姓名:王*翔??學(xué)號(hào):2020****
摘要:本文基于重*大學(xué)“知識(shí)建模與智能體設(shè)計(jì)”課程及實(shí)踐經(jīng)歷,總結(jié)了在“‘?dāng)?shù)字孿生’相關(guān)論文信息知識(shí)圖譜”構(gòu)建過程中的問題與不足,并從“多余的圖結(jié)構(gòu)”“‘涌現(xiàn)性’的缺失”“圖譜構(gòu)建中的‘強(qiáng)迫癥’行為”三個(gè)方面提出疑問并進(jìn)行分析,提出了自己的新思路以及對(duì)應(yīng)的解決方案,最后得出以下結(jié)論:1.常用圖結(jié)構(gòu)庫(kù)均提供大量圖算法,使用圖表示知識(shí)圖譜并非多此一舉;2.知識(shí)推理這一細(xì)分領(lǐng)域使得知識(shí)圖譜能夠具備涌現(xiàn)性,此外引入引用計(jì)數(shù)、垃圾回收等機(jī)制,可以使得知識(shí)價(jià)值決定知識(shí)圖譜的演化方向;3.引入用戶反饋機(jī)制可以進(jìn)行知識(shí)去噪,此外學(xué)界也有方案進(jìn)行知識(shí)去噪。
引言
筆者在本次知識(shí)圖譜構(gòu)建中,擔(dān)任組長(zhǎng)一職,具體工作上,對(duì)已有算法(如各NLP工具的調(diào)用、圖構(gòu)建腳本、問答機(jī)器人)進(jìn)行了重構(gòu),并且基于httpx、flask分別編寫了多線程的百度百科爬蟲、問答機(jī)器人WebUI等等。在小組合作協(xié)調(diào)方面,利用Git工具,實(shí)時(shí)向小組成員分發(fā)并更新程序,并以壓縮文件的方式,向各成員的分發(fā)數(shù)據(jù)爬取工作,在數(shù)據(jù)獲取與實(shí)體填充上節(jié)約了時(shí)間。最終形成了從數(shù)據(jù)獲取、本體學(xué)習(xí)、實(shí)體填充、圖構(gòu)建、簡(jiǎn)單的搜索意圖挖掘的工作流,除了沒有進(jìn)行圖譜的維護(hù)更新以外,實(shí)現(xiàn)了其基礎(chǔ)的功能與目的[1]。
然而,由于部分技術(shù)的缺失,小組并沒有進(jìn)行實(shí)體對(duì)齊操作,也沒有充分利用從百度百科中獲取的同義關(guān)系,導(dǎo)致圖譜中可能存在如BIM、建筑信息模型分別占用兩個(gè)ID的狀況;此外,在本體學(xué)習(xí)中,小組滿足于從知網(wǎng)和百度百科上獲取的高度結(jié)構(gòu)化數(shù)據(jù),沒有對(duì)從文本中提取出的三元組進(jìn)行有效利用(也沒有能力)。這都是本項(xiàng)目中較為巨大的缺憾。
最后,隨著筆者在整個(gè)實(shí)踐中對(duì)知識(shí)圖譜認(rèn)識(shí)的逐漸加深,對(duì)于知識(shí)圖譜的各種偏見也涌現(xiàn)而出。為了明辨這些偏見,筆者也查閱了一些文獻(xiàn),以下從“多余的圖結(jié)構(gòu)”、“‘涌現(xiàn)性’的缺失”、“圖譜構(gòu)建中的強(qiáng)迫癥行為”三個(gè)方面出發(fā),簡(jiǎn)單談?wù)勎业挠^點(diǎn)。
1.??多余的圖結(jié)構(gòu)
在小組的實(shí)踐中,所有的實(shí)體、關(guān)系、屬性均以字典的形式存儲(chǔ)在json文件中:當(dāng)需要查詢某個(gè)關(guān)鍵詞時(shí),直接使用文本編輯器的查找功能也能夠?qū)崿F(xiàn)簡(jiǎn)單的查詢,并且由于結(jié)構(gòu)化的數(shù)據(jù)十分容易處理,利用Python從中查找目標(biāo)也是一件十分容易的事情。據(jù)此,圖數(shù)據(jù)結(jié)構(gòu)在增刪改查方面相較json沒有任何優(yōu)勢(shì)。故筆者在構(gòu)建知識(shí)圖譜的過程中認(rèn)為,將所有實(shí)體、關(guān)系、屬性構(gòu)建成圖,除了視覺上的直觀沒有任何意義,僅將查詢到的結(jié)果構(gòu)建成圖展示給用戶才是更經(jīng)濟(jì)的選擇。
巧合的是,不久后便看到一個(gè)講解PageRank算法的視頻,其中提到Neo4j本身實(shí)現(xiàn)了很多圖算法(圖?1),包括路徑規(guī)劃、度中心性計(jì)算、社群檢測(cè)、關(guān)系預(yù)測(cè)、相似度計(jì)算、圖嵌入等等[2]。于是,這才意識(shí)到,Neo4j并非簡(jiǎn)單的“增刪改查”工具。

圖?1
正是受到py2neo庫(kù)的誤導(dǎo)(此庫(kù)的說明文檔沒有任何有關(guān)圖算法的內(nèi)容[3]),筆者才對(duì)Neo4j的算法功能并不知悉。之后通過與ChatGPT的交流(圖?2),了解到還有Networkx,igraph,Pygraphviz等Python庫(kù)可以用于網(wǎng)絡(luò)的構(gòu)建與處理。其它與Neo4j類似的產(chǎn)品就不再列舉。

圖?2
這里,需要注意Neo4j Embedding中node2vec[4]、GraphSAGE算法:Embedding是指將一個(gè)數(shù)據(jù)集中的高維數(shù)據(jù)轉(zhuǎn)換為一個(gè)低維向量的表示的過程。這種表示可以使得數(shù)據(jù)的同質(zhì)性與結(jié)構(gòu)性更好地體現(xiàn)在低維空間中,使得我們能夠更容易地對(duì)數(shù)據(jù)進(jìn)行分析和處理。
而這個(gè)概念,對(duì)于下文有關(guān)涌現(xiàn)性的說明比較重要。
2.??“涌現(xiàn)性”的缺失
由于筆者此前對(duì)復(fù)雜網(wǎng)絡(luò)一知半解,故錯(cuò)誤地認(rèn)為知識(shí)圖譜是復(fù)雜網(wǎng)絡(luò)的一種。也由此,產(chǎn)生了在構(gòu)建知識(shí)圖譜過程中最大的疑問:為什么我的知識(shí)圖譜沒有體現(xiàn)出涌現(xiàn)性?(我所做的似乎只是從數(shù)據(jù)中提取出知識(shí),然后將知識(shí)儲(chǔ)存起來,所有的知識(shí)都經(jīng)由我手,沒有任何讓人意外的新知識(shí)出現(xiàn)。)
于是,我再次向ChatGPT提出問題(圖?3):

圖?3
ChatGPT認(rèn)為,復(fù)雜網(wǎng)絡(luò)中的關(guān)系是復(fù)雜的,會(huì)發(fā)生演化,所以具有涌現(xiàn)性;而知識(shí)圖譜中的節(jié)點(diǎn)與關(guān)系雖然多,但都是人工指定的、結(jié)構(gòu)化的,基本不會(huì)變化,所以不具有涌現(xiàn)性。
然而,相較復(fù)雜網(wǎng)絡(luò),知識(shí)圖譜每個(gè)節(jié)點(diǎn)自身也具有屬性,這也許能夠彌補(bǔ)其復(fù)雜度不足的問題;并且,結(jié)構(gòu)化的數(shù)據(jù)也能夠進(jìn)行“增刪改查”,在時(shí)間序列上,并非一成不變,而是會(huì)漸漸豐富;這兩點(diǎn)原因興許會(huì)使得知識(shí)圖譜出現(xiàn)涌現(xiàn)性。
通過文獻(xiàn)檢索,發(fā)現(xiàn):在知識(shí)圖譜與深度學(xué)習(xí)結(jié)合方面,大量研究圍繞Knowledge Graph Embedding Model(KGEM)進(jìn)行。而Embedding,即是前文提到的將知識(shí)圖譜向量化的技術(shù),這種技術(shù)能夠?qū)⒅R(shí)在較低維度空間中表示,這是將深度學(xué)習(xí)技術(shù)引入知識(shí)圖譜構(gòu)建中的理論基礎(chǔ)。
2014年,Z. Wang等人[5]利用TransH模型改進(jìn)TransE模型,較理想地實(shí)現(xiàn)了實(shí)體間關(guān)系的預(yù)測(cè),并具備相當(dāng)?shù)臄U(kuò)展能力,拉開了各種KGEMs的序幕;2021年,M. Ali等人[6]開發(fā)了名為PyKEEN的Python庫(kù),用于簡(jiǎn)化KGEM的構(gòu)建,并在GitHub上有了1.1k的stars(截止2022年12月14日);2022年,A. Zeb等人[7]提出complex graph convolutional network (ComplexGCN)用于優(yōu)化常規(guī)圖神經(jīng)網(wǎng)絡(luò)存在的distortion問題,更好地實(shí)現(xiàn)了實(shí)體間關(guān)系的預(yù)測(cè);Z. Li等人[8]則提出Complex Evolutional Network (CEN)模型,在時(shí)間序列上預(yù)測(cè)知識(shí)圖譜的演化方向,并且通過在線學(xué)習(xí),實(shí)現(xiàn)了實(shí)時(shí)的對(duì)知識(shí)圖譜演化模式的提取。
Complex GCN與CEN模型的實(shí)現(xiàn),都說明從知識(shí)圖譜的一部分或者某一時(shí)刻的知識(shí)圖譜出發(fā),推斷知識(shí)圖譜中沒有被發(fā)現(xiàn)的關(guān)系以及圖譜的演化模式,是可行的。這意味著,利用這些模型,可以實(shí)現(xiàn)知識(shí)圖譜的自我優(yōu)化。
而事實(shí)上,上述“自我優(yōu)化”屬于知識(shí)圖譜領(lǐng)域中知識(shí)推理的“知識(shí)圖譜補(bǔ)全”,包括連接預(yù)測(cè)、實(shí)體預(yù)測(cè)、關(guān)系預(yù)測(cè)、屬性預(yù)測(cè)等任務(wù)。而上述所列舉的思路均是基于神經(jīng)網(wǎng)絡(luò)的知識(shí)推理,此外,還有基于規(guī)則、基于分布式表示以及混合推理[9],各自優(yōu)缺點(diǎn)現(xiàn)狀見下表(表1)。

表?1
與之不同的,筆者還有一個(gè)構(gòu)想:譬如,對(duì)于一個(gè)關(guān)于工程建設(shè)領(lǐng)域的知識(shí)圖譜,現(xiàn)查詢混凝土結(jié)構(gòu)計(jì)算方面的知識(shí),必然需要引用設(shè)計(jì)規(guī)范;對(duì)引用進(jìn)行計(jì)數(shù),則能夠反映設(shè)計(jì)規(guī)范的重要性;若將計(jì)算得到結(jié)果緩存下來,當(dāng)用戶輸入相同的約束條件時(shí),可以直接返回已有結(jié)果,節(jié)省計(jì)算資源;久而久之,緩存的結(jié)果逐漸豐富,混凝土結(jié)構(gòu)的知識(shí)就不再重要,此時(shí)可以考慮刪除無人查詢的知識(shí),實(shí)現(xiàn)知識(shí)圖譜的進(jìn)化。通過引入垃圾回收機(jī)制、計(jì)數(shù)機(jī)制與緩存機(jī)制,使得知識(shí)圖譜出現(xiàn)了與復(fù)雜網(wǎng)絡(luò)相似的變化性,整個(gè)知識(shí)圖譜的演化方向也由其中所包含的知識(shí)的價(jià)值決定,至此,涌現(xiàn)性出現(xiàn)了。
3.??圖譜構(gòu)建中的“強(qiáng)迫癥”行為
前文提到,“受到技術(shù)水平限制,團(tuán)隊(duì)未能對(duì)三元組進(jìn)行充分利用”。這其一是由于團(tuán)隊(duì)當(dāng)時(shí)始終沒有能夠有效處理三元組的思路,其二是因?yàn)樽源罅空撐恼刑崛〉娜M大多意義不明或如同雞肋。面對(duì)三元組客觀存在的低價(jià)值密度特征,筆者認(rèn)為人工篩選后才存入的做法是一種“強(qiáng)迫癥”行為。
存入無用的信息僅會(huì)拖慢查詢速度、降低結(jié)果質(zhì)量,若利用上一部分提到的緩存機(jī)制、垃圾回收機(jī)制、計(jì)數(shù)機(jī)制,再加上用戶反饋機(jī)制,在沒有錯(cuò)誤信息的前提下,就可以在使用階段實(shí)現(xiàn)知識(shí)圖譜的逐漸完善。這種自我完善,專業(yè)的術(shù)語為“知識(shí)圖譜去噪(Knowledge Cleaning)”。
再者,掌握到存在Embedding這項(xiàng)能夠?qū)?shí)體向量化的技術(shù),可以設(shè)想將評(píng)分后的三元組向量化以作為訓(xùn)練集,利用深度學(xué)習(xí)為三元組評(píng)分,從而實(shí)現(xiàn)有價(jià)值信息的自動(dòng)提取。
上述兩種方案是很自然能夠想到的,此外,對(duì)“知識(shí)圖譜去噪”進(jìn)行檢索,發(fā)現(xiàn),Jiang等人[10]利用馬爾可夫邏輯網(wǎng)(Markov Logic Network,MLN)與neighborhood-based grounding實(shí)現(xiàn)了為候選事實(shí)去噪;Heiko Paulheim等人[11]則利用統(tǒng)計(jì)分布(Statistical Distributions)實(shí)現(xiàn)了為連接數(shù)據(jù)(Linked Data)添加遺漏連接并找出可能的錯(cuò)誤連接。
結(jié)論
本文從“多余的圖結(jié)構(gòu)”、“‘涌現(xiàn)性’的缺失”、“圖譜構(gòu)建中的‘強(qiáng)迫癥’行為”三個(gè)方面論述了在本次知識(shí)圖譜構(gòu)建中產(chǎn)生的想法以及通過文獻(xiàn)檢索等方法后的處理結(jié)果。
對(duì)于“多余的圖結(jié)構(gòu)”,實(shí)則是受到py2neo的誤導(dǎo),忽視了neo4j等圖構(gòu)建庫(kù)擁有的諸如圖算法的其它功能。
對(duì)于“‘涌現(xiàn)性’的缺失”,進(jìn)一步發(fā)現(xiàn)在知識(shí)推理中,存在“知識(shí)圖譜補(bǔ)全”這一細(xì)分領(lǐng)域。當(dāng)前學(xué)界對(duì)于知識(shí)圖譜的補(bǔ)全存在諸多方案,同時(shí),認(rèn)為通過引入引用計(jì)數(shù)、垃圾回收等機(jī)制,也能夠豐富知識(shí)圖譜的功能、實(shí)現(xiàn)演化。
對(duì)于“圖譜構(gòu)建中的強(qiáng)迫癥行為”,筆者也提出利用用戶反饋等機(jī)制逐步完善知識(shí)圖譜的方案。進(jìn)一步檢索文獻(xiàn)觸及到“知識(shí)圖譜去噪”這一領(lǐng)域,發(fā)現(xiàn)了很多自動(dòng)預(yù)測(cè)連接、識(shí)別錯(cuò)誤連接的方法。
綜合上文以及筆者的切身體會(huì),本次課程存在以下問題:
1.?????沒有原創(chuàng)的代碼。實(shí)踐課程中給出的所有代碼,筆者都在GitHub中找到了項(xiàng)目地址。尤其對(duì)于三元組抽取的代碼,存在Python版本落后的問題,并且提供的利用jieba進(jìn)行三元組提取的算法存在bug,筆者已提交修改,但倉(cāng)庫(kù)所有者始終沒有回應(yīng)。其他代碼如問答機(jī)器人,過于丑陋,讓人忍不住重構(gòu)。
2.?????沒有包管理工具。盡管本專業(yè)對(duì)于計(jì)算機(jī)的要求并不十分嚴(yán)格,但在教學(xué)過程中,由于包管理工具、命令行工具不統(tǒng)一等問題多次出現(xiàn)教學(xué)滯塞,對(duì)于小組成員合作也造成了較大影響。建議使用Anaconda或MiniConda進(jìn)行包管理與Python版本控制。
3.?????沒有實(shí)用的案例。盡管課程中展示了諸如《百年孤獨(dú)》人物關(guān)系、疾病醫(yī)療忌口、政策發(fā)布時(shí)間機(jī)構(gòu)等知識(shí)圖譜,但憑良心認(rèn)為這些案例十分雞肋,導(dǎo)致學(xué)生看衰知識(shí)圖譜前景,不禁發(fā)出“我學(xué)這個(gè)難道只是為了給用戶推廣告”的疑問。
4.?????教學(xué)內(nèi)容存在斷層。在三元組提取與知識(shí)圖譜構(gòu)建之間存在內(nèi)容缺失,學(xué)生沒有了解到處理已有三元組(知識(shí)圖譜去噪)的技術(shù)。
此外,限于篇幅,缺乏知識(shí)推理內(nèi)容、沒有智能體設(shè)計(jì)內(nèi)容的問題就不再詳談。
參考文獻(xiàn)
[1]????李濤,?王次臣, and?李華康,?知識(shí)圖譜的發(fā)展與構(gòu)建.?南京理工大學(xué)學(xué)報(bào), 2017.?41(01): p. 22-34.
[2]????Neo4j Docs. [cited 2022 12-18]; Available from: https://neo4j.com/docs/graph-data-science/current/algorithms/.
[3]????py2neo docs. [cited 2022 12-18]; Available from: https://py2neo.org/v5/index.html.
[4]????Grover, A., and J. Leskovec. node2vec: Scalable feature learning for networks. in Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016.
[5]????Wang, Z., et al. Knowledge graph embedding by translating on hyperplanes. in Proceedings of the AAAI conference on artificial intelligence. 2014.
[6]????Ali, M., et al., PyKEEN 1.0: A Python Library for Training and Evaluating Knowledge Graph Embeddings. J. Mach. Learn. Res., 2021.?22(82): p. 1-6.
[7]????Zeb, A., et al., Complex graph convolutional network for link prediction in knowledge graphs. Expert Systems with Applications, 2022.?200.
[8]????Li, Z., et al. Complex Evolutional Pattern Learning for Temporal Knowledge Graph Reasoning. in 60th Annual Meeting of the Association for Computational Linguistics, ACL 2022, May 22, 2022 - May 27, 2022. 2022. Dublin, Ireland: Association for Computational Linguistics (ACL).
[9]????官賽萍, et al.,?面向知識(shí)圖譜的知識(shí)推理研究進(jìn)展.?軟件學(xué)報(bào), 2018.?29(10): p. 2966-2994.
[10]??Jiang, S., D. Lowd, and D. Dou. Learning to refine an automatically extracted knowledge base using markov logic. in 2012 IEEE 12th International Conference on Data Mining. 2012. IEEE.
[11]??Paulheim, H. and C. Bizer, Improving the quality of linked data using statistical distributions. International Journal on Semantic Web and Information Systems (IJSWIS), 2014.?10(2): p. 63-86.