Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
然語言處理中,Transformers是一個(gè)非常重要的方法。它的主要想法是,計(jì)算詞匯與詞匯之間的相似分?jǐn)?shù)(similarity score),以協(xié)助機(jī)器對(duì)句子的理解。
這篇文章將介紹兩個(gè)升級(jí)版的Transformers,它們可以極大地減小對(duì)計(jì)算力和內(nèi)存的消耗,因而,可以處理更長(zhǎng)的句子、段落。
開始之前,先了解一下Transformers的基本想法。
這里用一個(gè)最典型的例子:I arrived at the bank after crossing the xxx(譯:在穿過xxx之后,我到達(dá)了bank)。bank這里可以有兩個(gè)意思,岸邊或銀行。
很明顯,在理解這個(gè)句子的時(shí)候,xxx非常重要。如果xxx是河流,那么很可能bank意味著岸邊。如果xxx是街道,bank很可能是銀行。
在Transformer之前,機(jī)器一般會(huì)逐個(gè)輸入詞匯(從左到右、從右到左)到神經(jīng)網(wǎng)絡(luò)。這意味著,機(jī)器在讀這句話的過程中,需要不斷地嘗試?yán)斫鈈ank的意思,直到讀到xxx的內(nèi)容。
在Transformer中,機(jī)器會(huì)同時(shí)把整句話中的每個(gè)詞匯輸入到神經(jīng)網(wǎng)絡(luò)中, 使用自注意力機(jī)制(self-attention mechanism )來計(jì)算詞匯與詞匯的關(guān)系,在此基礎(chǔ)上,理解句子的內(nèi)容。
相似分?jǐn)?shù)(similarity score)用于量化詞匯與詞匯的關(guān)系,關(guān)系越強(qiáng),分?jǐn)?shù)越高。比如上述例子中,bank和xxx的關(guān)系會(huì)非常強(qiáng),這個(gè)分?jǐn)?shù),也會(huì)協(xié)助機(jī)器對(duì)句子的理解。
然而,這么做有什么缺點(diǎn)呢?
這種方法,對(duì)計(jì)算力和內(nèi)存的需求隨詞匯數(shù)量長(zhǎng)度成二次增長(zhǎng)。直觀上來講,自注意力機(jī)制需要計(jì)算每一對(duì)詞匯對(duì)應(yīng)的相似分?jǐn)?shù)。如果有10個(gè)詞匯,就會(huì)有100個(gè)分?jǐn)?shù)。
為了介紹升級(jí)版Transformers,我們還可以把相似分?jǐn)?shù)(上圖左)看作是一個(gè)有向圖(上圖右)。節(jié)點(diǎn)是每個(gè)單詞,中間的連線對(duì)應(yīng)著相似分?jǐn)?shù)。
自注意力機(jī)制可以看作是一個(gè)完全圖,即每一對(duì)詞之間都有連線。
升級(jí)版的目標(biāo):使計(jì)算力和內(nèi)存的需求隨詞匯數(shù)量成線性增長(zhǎng),以處理大型段落。
主要想法:將完全圖變?yōu)橄∈鑸D(只有少量詞之間有連線),連線的數(shù)量(即需要計(jì)算的相似分?jǐn)?shù))隨句子長(zhǎng)度線性增長(zhǎng)。
為了實(shí)現(xiàn)這一想法,我們將引入全局-局部注意力機(jī)制(global-local attention mechanism)。
這里引入一個(gè)概念——語言符號(hào)(token),指的是輸入神經(jīng)網(wǎng)絡(luò)的獨(dú)立語言片段。一個(gè)單詞是語言符號(hào),完整的句子、段落也都是語言符號(hào)。
在全局-局部注意力機(jī)制中,語言符號(hào)將會(huì)被分成兩個(gè)部分:
這樣全局符號(hào)和長(zhǎng)符號(hào)的設(shè)置,讓我們可以完成線性增長(zhǎng)的目標(biāo)。
我們來看一個(gè)例子。考慮兩個(gè)段落(如下圖),第一個(gè)段落有兩個(gè)句子,第二個(gè)段落有一個(gè)句子。藍(lán)色標(biāo)記段落,黃色是句子,灰色是詞匯,它們都屬于語言符號(hào),會(huì)被獨(dú)立輸入到神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,它們之間也可以建立連接,計(jì)算相似分?jǐn)?shù)。
這里,每個(gè)段落都是全局符號(hào),它會(huì)和段落中每一個(gè)語言符號(hào)(句子、單詞)連接。每個(gè)句子也是全局符號(hào),會(huì)和句子中的所有語言符號(hào)相連。單詞是長(zhǎng)符號(hào),只能和全局符號(hào)以及相鄰的語言符號(hào)相連。
按照這樣的設(shè)定,在最終的相似分?jǐn)?shù)表格中,很多語言符號(hào)之間是不需要計(jì)算相似分?jǐn)?shù)的(如下圖白色的位置),因而可以極大減小計(jì)算力與內(nèi)存的需求。
上述Extended Transformer Construction方法,需要清楚地知道段落的結(jié)構(gòu),比如,有幾個(gè)段落、句子。 在段落結(jié)構(gòu)未知的情況下,怎么做呢?用BigBird。
BigBird模型,有三個(gè)主要的部分:
全局符號(hào)負(fù)責(zé)掌控整個(gè)信息流,與相鄰符號(hào)的連接用于近距離詞義的分析。隨機(jī)連接是這個(gè)方法的核心,可以極大地減小所需連接的數(shù)量,這一點(diǎn)是可以被數(shù)學(xué)證明的。
BigBird,不需要語句結(jié)構(gòu),同時(shí)極大地提高可處理句子的長(zhǎng)度。
如果只想記住一句話——想低損耗處理大規(guī)模數(shù)據(jù),試試看添加一些隨機(jī)性。
參考文獻(xiàn):
Avinava Dubey, "Constructing Transformers For Longer Sequences with Sparse Attention Methods", https://ai.googleblog.com/2021/03/constructing-transformers-for-longer.html, accessed on Mar. 27, 2021.
Jakob Uszkoreit, "Transformer: A Novel Neural Network Architecture for Language Understanding", https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html, accessed on Mar. 27, 2021.
愿生活充滿干貨。一個(gè)認(rèn)真科普的90后女博士,每周分享通信、計(jì)算機(jī)、網(wǎng)絡(luò)及經(jīng)濟(jì)學(xué)最新最有趣的干貨。喜歡的話,記得點(diǎn)贊、收藏和關(guān)注喲。歡迎留言及評(píng)論。
Web領(lǐng)域的一些基本概念。
Web(World Wide Web)叫全球廣域網(wǎng),俗稱萬維網(wǎng)(www)。
W3C(World Wide Web Consortium)叫萬維網(wǎng)聯(lián)盟,是國(guó)際最著名的標(biāo)準(zhǔn)化組織,制定了web標(biāo)準(zhǔn)。
一個(gè)網(wǎng)頁包含了html元素 Css JavaScript,Html元素決定了網(wǎng)頁結(jié)構(gòu),Css進(jìn)行了修飾美化,JavaScript控制了交互行為和動(dòng)態(tài)效果。
web標(biāo)準(zhǔn)包含了下面三個(gè)方面:
Html不是一種編程語言,而是描述性的標(biāo)記語言,主要作用是定義內(nèi)容的結(jié)構(gòu)。
2014年10月萬維網(wǎng)聯(lián)盟(W3C)完成了HTML5標(biāo)準(zhǔn)制定,是目前最新的HTM版本。
HTML5的出世,標(biāo)志著web進(jìn)入一個(gè)富客戶端(具有很強(qiáng)的交互性和體驗(yàn)的客戶端程序)時(shí)代,像APP網(wǎng)頁,小程序都是HTML5的應(yīng)用場(chǎng)景。
Html5新特性:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"> <!--字符集-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="關(guān)鍵詞" />
<meta name="Description" content="頁面描述" />
<title>頁面標(biāo)題</title>
</head>
<body>
</body>
</html>
viewport用戶網(wǎng)頁的可視區(qū)域,一個(gè)針對(duì)移動(dòng)網(wǎng)頁優(yōu)化的頁面 viewport meta 標(biāo)簽如下:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
head區(qū)域元素:
meta title style link script base。
body區(qū)域元素:
塊級(jí)元素:每個(gè)元素都是獨(dú)占一行
行內(nèi)元素:元素在同一行水平排列
inline-block:元素可以排列在同一行顯示,并且可以設(shè)置一些塊元素屬性
通過Css:display:inline-block 改變?cè)亍?/span>
很多元素都自帶了默認(rèn)樣式,不同瀏覽器下默認(rèn)樣式表現(xiàn)不一致,為了統(tǒng)一或者滿足一些需求我們需求將所有默認(rèn)樣式清空,這種處理方式又稱為 Css Reset,比如:
*{
margin: 0;
padding: 0;
}
另外一種方案使用normalize.css,它將不同瀏覽器下的默認(rèn)樣式進(jìn)行了統(tǒng)一,
https://github.com/necolas/normalize.css
html中的單位是像素px
絕對(duì)單位
相對(duì)單位
屬性:字體、行高、顏色、大小、背景、邊框、滾動(dòng)、換行、修飾屬性(粗體、斜體、下劃線)
p{
font-size: 20px; /*字體大小*/
line-height: 30px; /*行高*/
font-family: PingFang SC; /*字體類型:顯示PingFang SC,沒有就顯示默認(rèn)*/
font-style: italic ; /*italic表示斜體,normal表示不傾斜*/
font-weight: bold; /*粗體或?qū)懀?00|500|600)*/
font-variant: small-caps; /*小寫變大寫*/
}
行高(line-height)
一般約定行高、字號(hào)都是偶數(shù),這樣保證它們的差一定偶數(shù)除2得到整數(shù),如下圖所示:
line-height
文本垂直居中
對(duì)于單行文本可以設(shè)置行高=盒子高度。
對(duì)于多行元素的垂直對(duì)齊,我們可以使用vertical-align: middle屬性,不過vertical-align 僅適用inline、inline-block 和 table-cell 元素。
vertical-align
vertical-align: baseline;
vertical-align: sub;
vertical-align: super;
vertical-align: text-top;
vertical-align: text-bottom;
vertical-align: middle;
vertical-align: top;
vertical-align: bottom;
/* 指定長(zhǎng)度值 */
vertical-align: 10em;
vertical-align: 4px;
/* 使用百分比 */
vertical-align: 20%;
/* 全局值 */
vertical-align: inherit;
vertical-align: initial;
vertical-align: revert;
vertical-align: unset;
內(nèi)容溢出處理
filter:gray()
理解優(yōu)先級(jí)很重要,有助于我們排查一些問題。瀏覽器將優(yōu)先級(jí)分為兩部分:HTML的行內(nèi)樣式和選擇器的樣式。
行內(nèi)樣式
行內(nèi)樣式是直接作用在元素,它的優(yōu)先級(jí)高于選擇器樣式,使用!important可以提高樣式表的優(yōu)先級(jí)。
<div style="font-size:16px">
</div>
選擇器樣式
<style type="text/css">
p{
font-size: 16px;
}
</style>
<link rel="stylesheet" href="style/app.css">
優(yōu)先級(jí)規(guī)則如下:
優(yōu)先級(jí)
我們通過下圖這種標(biāo)記方式,就可以判斷出選擇器的優(yōu)先級(jí)。
優(yōu)先級(jí)
兩條經(jīng)驗(yàn)法則
由多個(gè)基礎(chǔ)選擇器組合成的復(fù)雜選擇器。
多個(gè)基礎(chǔ)選擇器連起來(中間沒有空格)組成一個(gè)復(fù)合選擇器(如:ul.nav)。復(fù)合選擇器選中的元素將匹配其全部基礎(chǔ)選擇器,.box.nav 可以選中 class="box nav" ,但是不能選中 class="box"。
用于選中某種特定狀態(tài)的元素,優(yōu)先級(jí)(0,1,0)。
:nth-child(an+b)
更多參考:https://developer.mozilla.org/zh-CN/docs/Web/CSS
偽元素選擇器可以向HTML標(biāo)記中未定義的地方插入內(nèi)容,優(yōu)先級(jí)(0,0,1)。
屬性選擇器用于根據(jù)HTML屬性進(jìn)行匹配元素,優(yōu)先級(jí)(0,1,0)。
本文要點(diǎn)回顧,歡迎留言交流。
WEB標(biāo)準(zhǔn)是網(wǎng)頁制作的標(biāo)準(zhǔn),它不是一個(gè)標(biāo)準(zhǔn),它是根據(jù)網(wǎng)頁的不同組成部分生成的一系列標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)大部分由W3C起草發(fā)布,也有部分標(biāo)準(zhǔn)由ECMA起草發(fā)布
(1)W3C( World Wide Web Consortium )萬維網(wǎng)聯(lián)盟,創(chuàng)建于1994年是Web技術(shù)領(lǐng)域最具權(quán)威和影響力的國(guó)際中立性技術(shù)標(biāo)準(zhǔn)機(jī)構(gòu);是專門負(fù)責(zé)網(wǎng)絡(luò)標(biāo)準(zhǔn)制定的非贏利組織。制定了結(jié)構(gòu)標(biāo)準(zhǔn)和樣式標(biāo)準(zhǔn); (2)ECMA:歐洲電腦網(wǎng)商聯(lián)合會(huì)(廠商協(xié)會(huì)),制定了行為標(biāo)準(zhǔn);
HTML 指的是超文本標(biāo)記語言 (Hyper Text Markup Language) www萬維網(wǎng)的描述性語言。 XHTML指可擴(kuò)展超文本標(biāo)記語言(標(biāo)識(shí)語言)(EXtensible HyperText Markup Language)是一種置標(biāo)語言,表現(xiàn)方式與超文本標(biāo)記語言(HTML)類似,不過語法上更加嚴(yán)格。 HTML5指的是HTML的第五次重大修改(第5個(gè)版本)
規(guī)劃網(wǎng)站的所有內(nèi)容和代碼
整合資源
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
有三種:Strict(嚴(yán)格型)、
Trasitional(過渡型)、
Frameset(框架型)
(1)標(biāo)簽
txt 寫在尖角號(hào)<>里的第一個(gè)單詞,叫做標(biāo)記,也叫做標(biāo)簽,也稱作元素;
(2)屬性
標(biāo)記和屬性用空格隔開,屬性和屬性值用等號(hào)連接,屬性值必須放在雙引號(hào)內(nèi) 一個(gè)標(biāo)記可以有多個(gè)屬性,屬性和屬性之間用空格隔開,屬性不分先后順序
(1)常規(guī)標(biāo)記(雙標(biāo)記): <標(biāo)記名稱 屬性1名="屬性1值" 屬性2名="屬性2值" ………… >
(2)空標(biāo)記(單標(biāo)記):<標(biāo)記名 屬性1名="屬性1值" />
文本標(biāo)題共有6個(gè)(h1-h6)
<h1>一級(jí)標(biāo)題</h1>(唯一性,放網(wǎng)站LOGO)
<h2>二級(jí)標(biāo)題</h2>
...
<h6>六級(jí)標(biāo)題</h6>
文本傾斜:
<i></i>
<em></em>
文本加粗:
<b></b>
<strong></strong>
<u></u>
<br>
<hr>
<sup></sup>
<sub></sub>
<p></p>
<span></span>
<ul>
<li>列表項(xiàng)內(nèi)容</li>
<li>列表項(xiàng)內(nèi)容</li>
<li>列表項(xiàng)內(nèi)容</li>
........
</ul>
? (2)有序列表
<ol>
<li>列表項(xiàng)內(nèi)容</li>
<li>列表項(xiàng)內(nèi)容</li>
<li>列表項(xiàng)內(nèi)容</li>
........
</ol>
type:規(guī)定列表中的列表項(xiàng)目的項(xiàng)目符號(hào)的類型 語法:<ol type=“ a"></ol> 1 數(shù)字順序的有序列表(默認(rèn)值)(1, 2, 3, 4)。 a 字母順序的有序列表,小寫(a, b, c, d)。 A 字母順序的有序列表,大寫(A,B,C,D) i 羅馬數(shù)字,小寫(i, ii, iii, iv)。 I 羅馬數(shù)字,大寫(i, ii, iii, iv)。 start 屬性規(guī)定有序列表的開始點(diǎn)。(start的屬性值必須是數(shù)字) 語法:<ol start="5"></ol>
? (3)自定義列表
<dl>
dt></dt>
<dd></dd>
</dl>
<a></a>
屬性:
href='url'
target="_blank / _self";
title='文本提示'
拓展:
rel='nofollow';
<img>
屬性:
src='url';
alt=' 標(biāo)簽 實(shí)例 帶有指定替代文本的圖像'
title='文本提示'
width=''
height=''
border=''
alt:
1、alt屬性是考慮到不支持圖像顯示或者圖像顯示被關(guān)閉的瀏覽器的用戶,
以及視覺障礙的用戶和使用屏幕閱讀器的用戶。當(dāng)圖片不顯示的時(shí)候,圖片的替換文字。
2、alt屬性值的長(zhǎng)度必須少于100個(gè)英文字符
3、alt屬性是img標(biāo)簽的必須屬性,如果沒有特別意義的圖片,可以寫alt=""
4、alt屬性是搜索引擎判斷圖片與文字是否相關(guān)的重要依據(jù), alt屬性添加到img主要的目的才是為了SEO
title:
1、title屬性并不是必須的。
2、title屬性規(guī)定元素的額外信息,有視覺效果, 當(dāng)鼠標(biāo)放到文字或是圖片上時(shí)有文字顯示。
3、title屬性并不作為搜索引擎抓取圖片的參考, 更多傾向于用戶體驗(yàn)的考慮。
(同級(jí))
1)當(dāng)當(dāng)前文件與目標(biāo)文件在同一目錄下, 直接書寫目標(biāo)文件的文件名+擴(kuò)展名;
(上級(jí)找下級(jí))
2)當(dāng)當(dāng)前文件與目標(biāo)文件所處的文件夾在同一目錄下,寫法如下:
文件夾名/目標(biāo)文件全稱+擴(kuò)展名;
(下級(jí)找上級(jí))
3)當(dāng)當(dāng)前文件所處的文件夾和目標(biāo)文件在同一目錄下,寫法如下:
../目標(biāo)文件文件名+擴(kuò)展名;
<!-- 注釋 -->
<table>
<tr>
<td></td>
<td></td>
</tr>
</table>
<!--
table 為表格
tr 行
td 列(每一個(gè)單元格)
-->
1)width="表格的寬度"
2)height="表格的高度"
3)border="表格的邊框"
4)bordercolor="邊框色"
5)cellspacing="單元格與單元格之間的間距"
6)cellpadding=“單元格與內(nèi)容之間的距離"
7)align="表格水平對(duì)齊方式"
取值:left、right、center、
valign=“垂直對(duì)齊” top\bottom\middle
8)合并單元格屬性:(td)
合并列: colspan=“所要合并的單元格的列數(shù)"
合并行: rowspan=“所要合并單元格的行數(shù)”
<thead></thead>
<tbody></tbody>
<tfoot></tfoot>
<colgroup span="value"></colgroup>
<!--span屬性為把幾列分為一組-->
<th></th>
<caption></caption>
1、單元格間距:border-spacing:value; 說明:?jiǎn)卧耖g距(該屬性必須給table添加) 表示單元格邊框之間的距離, 不可取負(fù)值 2、合并相鄰單元格邊框:border-collapse:separate/collapse; 說明:合并相鄰單元格邊框 (該屬性必須給table添加) separate(邊框分開)默認(rèn)值; collapse(邊框合并) 3、無內(nèi)容時(shí)單元格的設(shè)置:empty-cells:show/hide; 說明:定義當(dāng)單元格無內(nèi)容時(shí),是否顯示該單元格的邊框區(qū)域;show:顯示 ;hide:隱藏; 4、顯示單元格行和列的算法(加快運(yùn)行的速度): table-layout:auto/fixed;
本文轉(zhuǎn)自知乎號(hào):千鋒HTML5學(xué)院
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。