第42卷第2期计算机科学Vol. 42 2015年2月Computer Science Feb 2015 基于SVM的主题爬虫技术研究李璐1张国印2李正文2(军工保密资格审查认证中心实验室北京100089)1(哈尔滨工程大学计算机科学与技术学院哈尔滨150001)2摘要随着互联网的快速发展,网络信息呈现海量和多元化的趋势。如何为互联网用户快速、准确地提取其所需信息,已成为搜索引擎面临的首要问题。传统的通用搜索引擎虽然能够在较大的信息范围内获取目标,但在某些特定领域无法给用户提供专业而深入的信息。提出基于SVM分类的主题爬虫技术,其将基于文字内容和部分链接信息的主题相关度预测算法、SVM分类算法和HITS算法相结合,解决了特定信息检索的难题。实验结果表明,使用基于SVM分类算法的爬取策略,能够较好地区分主题相关网页和不相关网页,提高了主题相关网页的收获率和召回率,进而提高了搜索引擎的检索效率。关键词SVM,主题爬虫,爬取策略,HITS中图法分类号 文献标识码A 001 10. 11896/j. issn. 1002-137X. 2015. Z. 025 Research on Focused Crawling Technology ased on SVM 1 2 2 LI LuZHANG Guo-yinLI Zheng-wen(Defence Industry Secrecy Examination and Certification Center Laboratory, Beijing 100089, China) 1 (College of Computer Science and Technology, Harbin Engineering University电Harbin150001, China) 2 Abstract With the rapid development of Internet, network infoηnation comes to be massive and diversity. How to pro vide the information required by users rapidly and exactly is the first task of the search engine. Traditional general search engine can provide the information in the general area, but in the special area, it cannot provide the professional and in-depth information for users. In this paper, the focused crawler based on the SVM classification algorithm was proposed for a solution 10 the problem of information retrieval in the special area, which makes use of the topic relevance predict algorithm based on the content and partiallink information, the SVM classification algorithm and the HITS al gorithm. The experiment shows that the crawling strat巳gybas巳don the SVM classification aLgorithm can distinguish th巳topic related pages and topic unrelated Web pages better,improve the harvest rate and recall rate,and furthermore,the retrieval efficiency of search engines is improved. Keywords SVM, Focused crawler,Crawling strategy,HITS 2)维护方便;引言3)获取范围广[6J。随着互联网的迅速发展和日益普及,网络信息平台所能但也正是由于大部分搜索引擎更倾向于检索领域、范围提供的内容越发丰富多彩,用户在搜索所需信息时面临搜索过于广泛的信息,因此在某些特定领域的查询结果方面反而难度增加及信息筛选所需消耗的大量时间和精力[1J也随之而不够深入和专业化,体现在整个采集过程中主题性不够突出,来。搜索引擎的出现解决了海量信息检索的难题凶。搜索引爬取获得的页面分类过于混乱等方面[7]。擎通过爬虫(采集器)[3J进行资源的搜集。网络爬虫通过网络针对目前搜索引擎的不足,本文提出了→种基于SVM间连接进行网页文档的爬取和收集,即从预先给定的URL叭U的主题爬虫技术,可实现面向主题的信息搜索。采用基于主niform Resource Location)入手,利用HTTP协议爬取所需的题搜索算法设计爬虫,对主题相关的网页文档进行专项深入HTML文档,并分析这些HTML文档中所包含的超链接[4J, 搜集。通过爬取算法预测、分析所访问的网页文档与主题相再次抓取未访问的链接及其包含的资源。如此进行,直至没关度,并决定是否爬取这些网页文档中所包含的超链接。基有新的URlyJ。因此,目前常见的综合大型搜索引擎普遍具于SVM的主题爬虫可以有效减少无关页面文档的爬取,节有以下优点:约带宽的占用率,加强了检索的规范程度,从而能提高搜索引1)自动化高;擎的检索效率。到稿日期:2014-03-03 返修日期:2014-05-25李璐0985-),女,博士,工程师,主要研究方向为网络信息安全、信息检索,巴mail:lilu_1231@;张国印(1962-),男,博士,教授,CCF会员,主要研究方向为网络信息安全、信息检索等;李正文0985-),男,硕士,主要研究方向为信息检索。 118
其中.vec~lw,(u. v)表示父网页U中指向子网页U的接锚文本2 主题相关度预测算法的研究向量;veCTopi叫表示主题向量;score_ anchor(剖.v)表示子网页U主题相关度预测模块针对即将爬取网页的主题相关程度从父网页U指向子网页U的链接锚文本中获得的主题相关度进行预测,并按照所得相关程度进行URL队列的排序,主题得分;score _ context ( u.时表示子网页U从父网页U指向子网相关度越高,网页的优先级越高,由此可减少对主题相关度低页U的链接上下文信息、中获得的主题相关度得分;score_an›的网页进行的爬取工作。chor( v)表示网页U从其所有父网页锚文本中获得的主题相主题相关度预测算法中涉及到父网页、锚文本、链接附近关度得分;score _ context ( v)表示网页U从其所有父网页的链的信息与主题的相关度以及父网页中的兄弟URL与主题的接上下文信息中获得的主题相关度得分;B(v)表示指向网页相关度。U的网页集;即阳~Ð'(U,的表示指向网页U的链接锚文本向量1)子网页从父网页集合中获得主题相关度scoreρarento 的第h个分量;w(t.走)表示主题向量t的第h个分量γWcrmtext父网页U与主题相关时,它所指向的网页的主题相关率()表示指向网页U的链接上下文信息向量的第h个分量;相对较高山。根据此条件可以对网页U中子网页的主题相关即()表示父网页U的权重值。度进行预测,即父网页U的相关度得分将通过其前向链接直3)网页U从父网页U中兄弟链接获得主题的相关度接传递给子网页v,或通过其子网页间接将相关度得分传递score _sibling 0 给其子孙网页。但在主题相关度的传递过程中,祖先网页的网页U的主题相关度受其兄弟网页的主题相关度影响,主题相关度需不断衰减,因此通过网页的前向链接,网页主题即与指向网页U的同网页的其他链接URLC兄弟网页)中,如相关度达到向下传递。子网页U的相关度得分部分继承于父果兄弟网页与主题相关,则网页U与主题相关度就高。因此,网页,因此子网页从父网页集合中所继承的主题相关度计算受兄弟网页影响的网页U主题相关度公式如式(7)、式(8)所如式(1)、式(2)所示:习可:/、~w,(t) (1) score_ paren肌u)=uA)帚而T(7) _siblingC v) =(; .韦72sco时_parent()sco陀'_pa时nt(v)=uEB(时!B(时(2)(w(t) 若网页t已爬取w,(t)= 十(8) 1τVj>>"edi" (t) 否则其中,B(u)表示指向网页U的网页集合;F(u)表示网页U指其中.wp咄"(t)表示预测未爬取网页t的主题相关度得分;向的网页集合;w(u)表示网页U的主题相关度;score_ρarent w(t)表示已爬取网页t的主题相关度;w,(t)表示网页t的主(u,时表示网页U从网页U中继承的主题相关度得分;score_ 题相关度;u.,表示网页U的父网页U中URL集合川u.,I表示ρarent(时表示子网页从父网页集合中继承的主题相关度得U,集合的数量;8表示衰减因子o分。的未爬取网页U的预测主题相关度通过对score_paγent、由式(1)可知,父网页的主题相关度均分给其子网页p子score _anchor ,score _ context和score_sibling采取加权求和计网页从其所有父阿页中继承主题相关度。算,即综合考虑父网页、锚文本、链接附近的信息及兄弟链接2)在父网页集合中,指向网页节的链接URL的锚文本与与主题的相关度,公式如下:主题的相关度score_anchor.链接URL邻接区域的文字信息score_predict( v) =叫•score_parent(v) +1:的•score 与主题的相关度score_ context。由于score_anchor和score_c01山'xt内容信息与所指向的anchor+也3 score_contextC v) + W4 score_sibling( v) 子网页的主题相关,因此有助于子网页U与主题的相关度的42咱预测。指向子网页U的父网页可能同时存在多个,因此score叫-›EA问_anchor和scorecontext的计算需要综合考虑父网页中的链其中,叫为相关度分量的权重值;score_户redictCv)表示预测接锚文本和链接邻近区域的上下文信息。score_ anchor、score未爬取网页U的主题相关度。context的计算如式(3)一式(6)所示。卢血3 爬取策略研究tMM-score anchor( u v) 网络数据实时更新的动态特性,导致了网页内容与Web归二链接关系存在即时变化。因此,多次递归爬取过程是爬虫设E~否布(3) 计的首选策略。通过SVM分类器对已爬取的历史网页库信息进行筛选处理获取主题相关网页,根据HITS算法对相关score context ( u. v) 网页库中的Web链接信息计算出Web对应的权威度Cau自由ority)和中心度Chub).根据所获得的信息,预测待爬取网页土w() X w(t.的amtextA哇ηZ-M叫-m什m川-U一u--VAA--n--m一-w/t一d飞r 的-。2 U 与主题的相关度,从而进行再次爬取。吧A丁 首次爬取算法Zmm叫一ω旷一二1)种子的选取。在主题爬虫首次爬取时,采取人工选取(5) score anchor( v) !B(v) ! 种子的方式:将关键词输入通用搜索引擎中,并在搜索结果中~ w() sco陀_context()进行人工筛选,与主题相关的网页作为种子集合,为首次爬取score context( v) = >;f;.B(时(6)!B(v) ! 提供起始种子。 119
2)首次爬取算法的设计。首次爬取算法中,仅包含一个令A表示主题子图G的邻接矩阵,则其在忽略链接重要多线程共享的优先级队列。由于在首次爬取中可参考信息有度时,如式(的所示:限,因此采用基于文字内容信息和部分链接信息的主题相关A[u][’U] ~ 1, U ’U (9) 度预测算法,在爬取网页中抽取新的URL进行主题相关度飞V,U气内的预测评价,并将所抽取的URL按预测的主题相关度得分其中,U→u表示存在U到U的边;U南y表示U到U的边不存添加到优先级队列中。在。在考虑横向连接和内部链接重要度权重时,邻接矩阵A通过动态地维护己爬取网页集合所构成的Web子图信如式(10)所示:息,为预测待爬取网页的主题相关度提供参考。因此,在该门u→'Utransverse link Web子图信息中记录着已爬取网页之间的链接结构和主题A[uJ['UJ=斗c,u ’U intrinsic link ,O<c< 1 (10) 相关度等信息。lo, U啊y首次爬取算法如算法1所示。种子提取算法如算法2所示。算法1:算法2:Crawl firstCG,Seeds) get_seeds (seeds_Authority, seeds_Hub, c1assified_collection) Priority_ Queue( priority _ q\ (1)初始化Authority(u), Hub( u)为任意非o值,其中,uεc1assified队列collection, 1< u<n Collection (url-page pairs> collection / /url, page)\才C2 ) While distance>ε Hash_ tablevisited_ table/ /已访问url列表do Queue seeds urls / /种子urls插入优先级队列for each u E V while Queue is not empty and crawl_num<MAX_CRAWLING_ do PAGE AuthoritYi(U)= 2..: Hubi-l(V)-/ì竹,u)vEB(u) do Hub;Cu)= 2..: AuthoritYi-l (v) -/ (u,v) crawl_url seed url in Queue but not in the visited_ table vE F<u) visited end table crawl url PAGE fetch_page Ccrawl_urD C>compute the lengthCLa,Lh) of authority and hub Collection store (crawl url,PAGE ) C> normalize the vectorCAuthoritYi Cu ) , Hubi Cu )) of authority and hub Queue urls in PAGE but not in collection and Queque / /按优先distance_Auth口叫=,..1艺(Authorit只(k)-AuthoritYi-l(k))2 级插入V k=l craw\ num十十distance_Hub="j 2..: (Hub;Ck)-Hub-Ck))2 i1V k=l end distance=distance_AuthorityScore+distance_HubScore Return collection end 算法1中,priority _ queue为最大优先级队列。在pnoC3 ) seeds_Authority= rity_queue优先级队列所维护的集合中,每个元素均对应一个select max nj authority pages from classified_collectio咀优先级key。户riority_ queue优先级队列支持以下方法:seeds_Hub= select max n2 hub pages from classified_collection Queue_Insert(Set ,e,key) :将优先级为key的元素e插入其中,到集合Set中;(1, u ’U transverse link Queue_Maximurn(Set) :返回集合缸中优先级最高的元素;8(u,’U)= { ,0<c<1。lc, u ’U intrinsic link Queue_ Extract_ Max (Set) :返回集合Set中优先级最高seeds_Authority:表示在与主题相关阿页集合中,权威度的元素,并将其从集合Set中删除;较高的m个网页形成的种子。权威度高的种子集合有利于Queue_Increase_keyCSet,e,是ey)ρl每集合Set中元素e的更新权威度高的网页集合。优先级置为keyoseeds Hub:表示与主题相关网页集合中,中心度较高的prior町_queue优先级队列通过最大堆实现,其基本操作m个网页形成的种子。中心度高的种子集合有利于发现新的时间复杂度为以19(n))(n为元素个数),因此具有较高的的主题资源。效率。再次爬取算法中,包含线程共享的优先级队列。其中一3,2 再次爬取算法个是优先级队列Queue[l],队中元素为seeds_Authority种SVM分类器对爬取的网页集合进行过滤,提取与主题相子集合。另→个是优先级队列Queue[2],队中元素为seeds_关的网页,并加入训练集中,可不断提高SVM分类器的分类Hub种子集合。分别以Queue[l]、Queue[2]为优先级队列,准确度。同时,通过这些主题相关网页的集合,构造主题子图启动双线程。在优先级队列Queue[i]中,选取最高优先级的G( focused subgraph)。然后在主题子图G内,应用链接分析算法,寻找与主题相关的权威网页和中心网页集合。URL爬取,然后解析新爬取的网页,提取链接,插入优先级队在使用HITS算法时,应考虑链接重要度差别性的存在。列Queue[i]中。采用基于文字内容和部分链接的主题相关按链接所在的域分,可分为横向链接CTransverseLink)和内度预测算法,预测新提取的链接与主题相关度。部链接(IntrinsicLink) 0横向链接是不同域名间网页的链再次爬取算法如算法3所示。接,内部链接是相同域名内的链接。横向连接要比内部链接算法3:重要,因此可以只考虑横向链接,忽略内部链接或者给内部链Crawl_firstC G. Seeds_Authority, Seeds_Hub) 接赋予较低的权重。Priority _ Queue <p riority _ queue data structure) Queuel, 120
Queue2//优先级队列相关网页收获率最高,其次为HITS算法,而Breadth-First算Col1ection (url-page pairs) collectionl, col1ection2 / / url, 法最低。其中,Breadth-First算法基子宽度优先的思想,虽然page 对与当前爬取网页深度接近的网页即重要度较高的网页会被优Hash_tablevisited_table / /已访问url列表先获取,但没有考虑所爬取网页与主题相关的因素,因此,主Queuel urls in Seeds_ Authority with url’ s priority / / Seeds_ 题相关网页的收获率最低。HITS算法是基于链接分析的网Authority中url插入队列页爬取策略,通过权威度或中心度高的网页挖掘新的资源,但Queue2 urls in Seeds_ Hub with url’s priority / / Seeds_ Hub 没有考虑文字内容的影响因素,易导致发生主题漂移的问题。中url插入队列因此,主题相关网页的收获率会随着爬取网页数量的增加而Thread[iJ: / /i is 1 or 2 下降。本文所采用的SVM-topical算法,针对巴爬取的网页while Queue [i ] is not empty and crawl_ num [i] < MAX _ CRAWLING PAGE 集合使用SVM分类器进行筛选,去除与主题无关的网页,然do 后采用HITS算法寻找权威度或中心度高的网页,将其作为crawl_url url in Queue[i] but not in the visited_ table 种子,用于下次爬取。同时,加入文字内容的影响因素,即基visited table crawl url 于文字内容信息和部分链接信息的主题相关度预测算法,去PAGE fetch_page (crawl_urD 除与主题不相关的网页。因此相对前两种策略,主题相关网Collection[i] store (crawl_url,PAGE) 页的收获率有所提高。Queue urls in PAGE but not in col1ectionl and Queque[i] / / 召回率(TargetRecalD是衡量爬虫性能的另一个重要标按优先级插入准。召回率计算公式如下:crawl_n山n[i]十+IC(t) n们end RCt)=且已丰4上i二」ITI 4 实验结果与分析其中,R(t)表示主题爬虫在爬取t网页后的召回率;C(t)表示主题爬虫已爬取的t网页组成的集合;T为从网上随机搜集 环境配置的主题相关网页组成的集合。本文基于TSE和LibSVM进行实验。其中,TSE是支持SVM-topical、HITS、Breadth-First算法目标网页的召回相关网页爬取策略[IOJ,LibSVM可针对已爬取网页集合进行率如图2所示。主题分类[1日。实验所需的软/硬件环境如表1所列。018 表1实验平台软/硬件配置也16实验环境版本/配置 且霄阳也CPU lntel双核内存lG 睡硬盘80G L nux Redhat 4 LibSVM TSE 200 及xl4四日泪。领到o700 800 缸xl1000 Torncat 巳爬取的网页~数 图2SVM-topical、HIτ3、Breadth-First算法目标网页的召回率 数据分析本文通过宽度优先算法、HITS算法、基于SVM分类的图2的横轴记录爬取的网页数量,纵轴记录对应主题相主题爬虫算法的爬取策略进行收获率和召回率的比较。关网页的召回率。由实验数据可知,SVM-topical算法的主题收获率(Harvestrate)为衡量其性能的最重要指标,收获相关目标网页的召回率最高,其次为HITS算法,而Breadth率越高,与主题相关的网页所占的比例越大。其计算公式如First算法为最低。在网页爬行数量较少时,3种爬取策略的下g主题相关目标网页的召回率相差不大。由于SVM-topical算Web pages 法更有利于扩大爬取的范围、挖掘新的与主题相关的资源,避t 机'ate=!!'lated阳岛o1Jzc免了主题漂移山等问题,因此,随着所爬取网页数量的增加,dZLdweb p耶本文的SVM-topical算法的召回率逐渐高于其他两种算法。SVM-ωpical、HITS、Breadth-First算法的主题相关网页SVM-topical、HITS、Breadth-First算法爬取主题相关网收获率如图1所示。页数与时间关系如图3所示。民"。6000 umHE跚um跚跚跚跚誓:[:;二771:;可-’ ..-、蒋国。且m也3刊 100 200 :JJO 4田翩翩7回翩翩1阳已爬取的问页总数曲目曲而曲曲1曲图1SVM-topical、HITS、Breadth-First算法的主题相关网页收获率时间(.)图1的横轴记录爬取的网页数量,纵轴记录对应主题相图3SVM-topical、HITS、Breadth-First算法爬取主题相关网页数关网页的收获率。从实验数据可知,SVM-topical算法的主题与时间关系 121
图3的横轴记录爬取时间,纵轴记录爬取主题相关网页Companion on World Wide Web. 2012 [2J Kazai G. 1n Search of Quality in Crowdsourcing for Search En 的数量。由实验数据可知,在相同时间内,SVM-topical算法gine Evaluation[J]. Advances in information retrieval, Lectur巳抓取的主题相关目标网页数最高,其次为HITS算法,而Notes in Computer S口(11):165-176Breadth-First算法最低。在时间较短时,3种爬取策略爬取[3J许笑,张伟哲,张宏莉,等.广域网分布式Web~虫[J].软件学的主题相关目标网页数量相差不大。由于SVM-topical算法报.(5):1067-1082有利于主题相关网页的挖掘,因此,随着所爬取时间的增加,[4J 张宪超,徐雯,高亮,等.→种结合文本和链接分析的局部Web本文的SVM-topical算法爬取的网页数量逐渐高于其他两种社区识别技术[J].计算机研究与发展.(11):2352-2358算法。[5J de Groc C. Babouk: Focused Web Crawling for Corpus Compila一结束语本文提出了一种基于SVM分类算法的主题爬tion and Automatic Terminology Extraction[J]. Web 1ntelli›虫技术,通过两次爬取获取与主题相关的网页。其中,在第一gence and 1ntelligent Agent Technology (WHATλIEEEI 次爬取时,采用种子选取的方式,将与主题相关的关键词加入WICI ACM International . 30).497-498 到爬虫中,之后在获取的页面列表中提取与主题相关的一类[6J 张伟哲,张宏莉,许笑,等.分布式搜索引擎系统效能建模与评价集合作为种子。第二次爬取时,采用HITS算法对巳爬取的[J].软件学报.(2):253-265[7J 王上,于海,王缸旋.Deep Web垂直搜索引擎设计与实现[J].计网页集合进行计算处理获取种子。通过这种基于预测的主题算机研究与发展.:359-365 相关性算法,在考虑网页文本的同时,也借助网页之间的链接[8J 蒋华荣,郁雪.应用遗传算法优化子空间的SVM分类算法[J].关系,选取权威度或中心度高的页面作为种子。其中,权威度计算机科学.(11):255→高的网页与主题相关性高,而中心度高的网页有利于挖掘出[9J 黄仁,王良伟.基于主题相关概念和网页分块的主题爬虫研究主题相关网页。经实验表明,基于SVM分类算法的主题爬[J].计算机应用研究.(8):2377-2380虫技术可提高主题相关网页收获率和召回率,进而提高搜索[10J李晓明,闰鸿飞,王继民.搜索引擎2原理技术与系统[MJ.北京:引擎的检索效率。科学技术出版社.2004:29-33 [l1J Chang Chih-chur】巨.Lin Chih-jen. LIBSVM: A library for support 参考文献vector machines[J]. ACM Transactions on 1ntelligent Systems [IJ Boanjak al. TwitterEcho:a distributed focused and Technology (T1ST> .(3): 280-292 crawler to support open r臼earchwith twitter data[C]//WWW’ [12J李稚植,杨武,谢治军.PageRank算法研究综述[]].计算机科12 Companion Proceedings of the 21st 1nternational Conference 学.(210):185-188(上接第89页)mance for dbms applications on flash devices[ CJ // Proceedings of the 19th ACM 1nternational Conference on lnformation and [l1J Hsieh J-W. Kuo T-W. Chang L-P. Efficient identification of hot Knowledge Management(CIKM’10). 2010 data for f!ash memory storage systems[]]. ACM Transactions [19J Lin L, Li X. Jiang H. et al. Amp: An affinity-based metadata on (1):22-40 prefetching scheme in large-scale distributed storage systems [12J Huang al. The behavior analysis [CJ//Proceedings of the 2008 Eighth IEEE 1nternational Sym›。ff!ash-memory storage systems[ CJ // Proceedings of the 2008 posium on Cluster Computing and the Grid. 2008 11 th IEEE Symposium on Object Oriented Real-Time Distribu›[20J Madhyastha T D A. 1nput/output access patt盯nclassi›ted Comp飞: 529-534 fication using hidden markov mode1s[CJ // Proceedings of the [13J Jiang S. Zhang L, et al. S-ftl: An efficient address translation for Fifth Workshop on I/O in Parallel and Distributed Systems(lO flash memory by exploit ng spatial locality [CJ万1EEE27th PADS’97).1997 Symposium on Mass Storage Systems and Technologies. 2011 [21J Nath P B. Online maintenance of very large random [14J Kim J Kim J M. Noh S, et al. A space-efficient flash translation samples on flash storage口].The VLDB Journal. (1): layer for compactf!ash systems[J]. IEEE Transactions on Con›970-983 sumer Electrunics. 2002,48(2) : 366-375 [22J Park D. Du D. Hot data ident出cationfor f!ash-based storage [l5J Kim J M, Min S L, Choi J, et al. A low-overhead highperfor›systems using multiple bloom filters[CJ//ZOll IEEE 27th Sym›mance unified buffer management scheme that exploits sequen›posium on Mass Storage Systems and Technologies. 2011 tial and looping references[ C] // Proceedi吨sof the 4th Sympo [23J Park S. Park J. Kim S. et al. A pattern adaptive nand f!ash me›sium on Operating Systems Design and Implementation. 2000: mory storage structure[J]. IEEE Transactions on Computers. 119-134 (1):134-138 [16J Lee S. Shin Y-J .et al. Last: locality-aware sector transla [24J Repository U T. Oltp application i/o [OL]. http’;/traces. cs. tion for nand f!ash memory-based storage systems[]]. S1GOPS umass. edu Oper. Syst. Rev. .: 36-42 [25J Zhu Y. Jiang H. Race: A robust adaptive caching strategy for <17JLee S-W, Park D-J, Chung T-S. et a1. A log buffer -based flash buff巳rcache[J]. 1EEE Transactions on Computers. 2008. 57 translation layer using fully-associative sector translation[JJ. (1): 25-40 ACM Transactions on Embedded Computing Systems. [26J唐世庆,李云龙,因凤明,等.基于Hadoop的云计算与存储平台(3),1-27 研究与实现[JJ.四川兵工学报,(8):97-100[18J Li Y, Xu J. Choi B. et a1. Stablebuffer: optimizing write perfor 122