移動環(huán)境下的內(nèi)容推薦初探課件_第1頁
移動環(huán)境下的內(nèi)容推薦初探課件_第2頁
移動環(huán)境下的內(nèi)容推薦初探課件_第3頁
移動環(huán)境下的內(nèi)容推薦初探課件_第4頁
移動環(huán)境下的內(nèi)容推薦初探課件_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

移動環(huán)境下的內(nèi)容推薦初探移動環(huán)境下的內(nèi)容推薦初探1Agenda●

什么是推薦系統(tǒng)●

移動內(nèi)容推薦的特點●

豌豆莢移動內(nèi)容推薦關鍵技術●

總結(jié)Agenda●什么是推薦系統(tǒng)●移動內(nèi)容推薦的特點2什么是推薦系統(tǒng)什么是推薦系統(tǒng)3Recommender

systems

orrecommendation

systems

(sometimesreplacing

"system"

with

a

synonym

suchas

platform

or

engine)

are

a

subclass

ofinformation

filtering

system

that

seek

topredict

the

'rating'

or

'preference'

thatuser

would

give

to

an

item.-

from

wikipediaRecommendersystemsorrecommen4Recommender

systems/engines

are

asubclass

of

information

retrievalsystems/engines

in

passive

mode.Search

systems/engines

are

a

subclassof

information

retrieval

systems/enginesin

active

mode.Recommendersystems/enginesar5常用的推薦功能●

有哪些值得看的電影?●

去哪兒下館子腐敗?●

淘點啥寶貝?●

裝什么有意思的應用?●

大家都在討論什么話題?●

Netflix

Prize

$1

Million

Challenge?常用的推薦功能●有哪些值得看的電影?●裝什么有意6應用場景排行榜推薦個性化推薦使用海量數(shù)據(jù)電影推薦多多是餐館推薦多少是商品推薦多多是應用推薦多多是話題推薦多少是廣告推薦少多是推薦技術應用場景應用場景排行榜推薦個性化推薦使用海量數(shù)據(jù)電影推薦多多是餐館推7推薦用戶(User)海量數(shù)據(jù)是推薦之本

推薦位置

推薦位所在頁面內(nèi)容

推薦位在頁面中位置

推薦物品(Item)推薦物品

種類、主題、關鍵詞

生命周期、投放規(guī)則

大小、顏色、價格

…...推薦用戶

人口學屬性(性別、年

齡等)

行為屬性/興趣特征(瀏

覽、搜索、緩存)

Social內(nèi)容(社交關系

、小組發(fā)帖)

上下文(時間、地點等)●…...推薦用戶(User)海量數(shù)據(jù)是推薦之本推薦物品推薦用戶●….8

推薦算法

關鍵規(guī)則挖掘協(xié)同過濾

CF(User-based

CF,

Item-

based

CF)

矩陣分解

圖挖掘

基于熱度/知識/規(guī)則的推薦

基于內(nèi)容的推薦

基于預測模型的推薦

混合推薦方法推薦算法

推薦用戶

用戶行為屬性

Social內(nèi)容

人口學屬性

行為屬性/興趣

特征

用戶全局畫像

推薦場景一個用戶在多個物品

有行為

用戶-物品行為矩陣

不能過于稀疏用戶對物品的興趣規(guī)

律可觀察

適用于解決冷啟動

(cold

start)問題真實系統(tǒng)大都這么做 推薦算法推薦算法 推薦場景9推薦算法優(yōu)點缺點示例基于知識的推薦算法(基于人工觀察和經(jīng)驗,抽象出規(guī)則進行推薦)1.方法簡單2.規(guī)則易解釋、易運營3.所需數(shù)據(jù)少1.規(guī)則來源于人工知識,覆蓋率差2.有效周期難以判斷好友推薦基于內(nèi)容的推薦算法1.可以解決冷啟動問題2.方便整合各種用戶/物品特征3.推薦結(jié)果易于理解1.受限于特征提取的準確性2.需要大量的支撐數(shù)據(jù)3.常局限于特征稀疏的情況GoogleNewsAmazon淘寶豌豆莢協(xié)同過濾的推薦算法1.原理簡單有效,易于理解2.算法靈活,支持海量用戶/物品3.無需考慮復雜特征,支持特征空間極其復雜的用戶/物品的高效計算1.很明顯的冷啟動問題2.常受限于用戶/物品行為矩陣稀疏的情況3.受限于用戶/物品rating的正確性Netfix淘寶Amazon豆瓣豌豆莢常用推薦算法比較推薦算法優(yōu)點缺點示例基于知識的推薦算法(1.方法簡單1.規(guī)則10協(xié)同過濾-User-based

CF協(xié)同過濾-Item-based

CF協(xié)同過濾-User-basedCF協(xié)同過濾-Item-ba11移動推薦的特點移動推薦的特點12使用次數(shù)多時間碎片化使用次數(shù)多時間碎片化13內(nèi)容消費占大頭用戶易定位(用戶<->設備)內(nèi)容消費占大頭用戶易定位(用戶<->設備)14特點原因?qū)崟r推薦非常重要移動設備/應用使用次數(shù)多推薦的準確率要求更高移動設備/應用使用時間碎片化內(nèi)容推薦是關鍵移動設備/應用消費中內(nèi)容是大頭可利用用戶信息更豐富移動設備可以用來準確定位用戶移動推薦的新特點特點原因?qū)崟r推薦非常重要移動設備/應用使用次數(shù)多推薦的準確率15豌豆莢移動內(nèi)容推薦關鍵技術豌豆莢移動內(nèi)容推薦關鍵技術16豌豆莢移動內(nèi)容推薦框架豌豆莢移動內(nèi)容推薦框架17關鍵技術之知識圖譜關鍵技術之知識圖譜18知識圖譜

-

Knowledge

Graph

Knowledge

Graph

understands

real-world

entities

and

their

relationships

to

one

another:

things,

not

strings,

helps

the

machine

to

understand

the

world

a

bit

more

like

people

do.Knowledge

Graph

consists

of

nodes

with

edgesbetween

them.

Each

node

corresponds

to

an

entity

inreal

work,

each

edge

describe

the

relationship

betweenthe

begin

and

end

nodes.知識圖譜-KnowledgeGraphKnowledg19Google

Knowledge

GraphData

Sources●

Public

Sources(Wikipedia,

Freebase,CIA

World

Factbook)●

Knowledge

Mining

from

Webpages(Lists,

Tables,

etc.)●

Knowledge

Mining

from

user

queries(xxattributes

of

yy

entity)GoogleKnowledgeGraphDataSou20Google

Knowledge

Graph

Usages

Find

the

right

thing

Recognize

the

entities

in

queries

and

associates

them

with

the

relevant

information,

and

disambiguate

entities

using

context

information.

Get

the

best

summary

Use

the

users

search

behavior

to

determine

the

most

needed

aspects

for

each

entity.

Go

deeper

and

broader○Help

users

to

get

some

unexpected

discoveries.GoogleKnowledgeGraph○Helpus21移動環(huán)境下的內(nèi)容推薦初探課件22豌豆莢知識圖譜數(shù)據(jù)來源●

公開來源(Wikipedia,

Freebase,

IMDB、豆瓣電影)●

應用內(nèi)內(nèi)容/網(wǎng)頁信息中解析出來的實體

和實體關系信息(應用,游戲,書,視頻

,音樂等)●

豌豆莢用戶貢獻的User

profile信息和UGC內(nèi)容●

用戶-實體的關系(搜索、瀏覽、消費、豌豆莢知識圖譜數(shù)據(jù)來源●公開來源(Wikipedia23豌豆莢知識圖譜數(shù)據(jù)來源●

公開來源(Wikipedia,

Freebase,

IMDB、豆瓣電影)●

應用內(nèi)內(nèi)容/網(wǎng)頁信息中解析出來的實體

和實體關系信息(應用,游戲,書,視頻

,音樂等)●

豌豆莢用戶貢獻的User

profile信息和UGC內(nèi)容●

用戶-實體的關系(搜索、瀏覽、消費、豌豆莢知識圖譜數(shù)據(jù)來源●公開來源(Wikipedia24豌豆莢知識圖譜

用途

信息展示○全面展示內(nèi)容相關的實體及相互關系●

用戶意圖理解○○重名區(qū)分查詢意圖識別●

內(nèi)容推薦○○○○豌豆莢首頁內(nèi)容推薦

-

追新有趣豌豆莢詳情頁內(nèi)容推薦

-

相關而非相似豌豆莢各頻道列表頁內(nèi)容推薦

-

追熱有趣…...豌豆莢知識圖譜○全面展示內(nèi)容相關的實體及相互關系●用25關鍵技術之Giraph-圖挖掘平臺關鍵技術之Giraph-圖挖掘平臺26Giraph

-

圖挖掘平臺Giraph

是Google

Pregel的開源實現(xiàn),它基于Hadoop,通過在Hadoop上運行map-only的job來實現(xiàn)常見的圖挖掘算法。Giraph

提供了一個簡單的“面向節(jié)點”(Think

like

a

vertex)的編程模型。所有的圖挖掘算法都可簡化為在每一個Vertex上的兩類操作:1)

在vertext上進行數(shù)值計算(computation);2)

將數(shù)值計算的結(jié)果通過邊傳遞給相鄰的全部/部分節(jié)點(communication)。上述編程模型極大簡化了圖挖掘算法的實現(xiàn),使得每個算法都可以迭代地實現(xiàn),這一切是建立在Giraph內(nèi)嵌的bulksynchronous

parallel編程模型基礎上。Giraph-圖挖掘平臺Giraph是GoogleP27Giraph

Timeline●

受Google

Pregel啟發(fā)開發(fā)

(2010)●

被Yahoo!捐獻給ASF

(2011)●

成為Top-level

Apache

Project

(2012)●

發(fā)布1.0版本

(2013)●

發(fā)布1.1版本

(2014)Giraph典型應用●

Ranking

Popularity,

Importance,

etc.●

Label

Propagation

Location,

School,

Interest,

gender,

etc.●

Community

Groups,

ClustersGiraphTimelineGiraph典型應用28

Map-only

Map-Reduce

Think

like

a

key-value

pairpublic

class

Mapper<

KEYIN

VALUEIN

KEYOUT

VALUEOUT>{

void

map(KEYIN

key,

VALUEIN

value,

Context

context)

throws

IOException,

InterruptedException;}

Giraph

Think

like

a

vertexpublic

class

Vertext<

I

extends

WritableComparable,

V

extends

Writable,

E

extends

Writable,

M

extends

Writable>{

void

compute(

Iterator<M>

msgIterator);} Map-onlyMap-Reduce Giraph29

Giraph

API(當前Vertex上

可用)I

getVertextId()V

getVertextValue()void

setVertextValue(V

vertextValue)Iterator<I>

iterator()E

getEdgeValue(I

targetVertextId)boolean

hasEdge(I

targetVertextId)boolean

addEdge(I

targetVertextId,

EedgeValue)E

removeEdge(I

targetVertextId)void

voteToHalt()boolean

isHalted()Giraph

API(Vertex間傳遞消息可用)

void

sendMsg(I

targetVertexid,

M

msg)

void

sendMsgToAllEdges(M

msg)

void

addVertextRequest(BasicVertex(I,

V,

E,

M>

vertex)

void

removeVertextRequest(I

vertexId)

void

addEdgeRequest(I

sourceVertexId,

Edge<I,

E>

edge)

void

removeEdgeRequest(I

sourceVertextId,

I

destVertextId) GiraphAPI(當前Vertex上GiraphAP30一個簡單的例子

-

計算最大節(jié)點值public

class

MaxValueVertex

extends

EdgeListVertex<IntWritable,

IntWritable,

IntWritable,

IntWritable>{@overridepublic

void

compute(Iterator<IntWritable>

msgIterator){boolean

changed

=

false;while(msgIterator.hasNext()){IntWritable

msgValue

=

msgIterator.next();if(msgValue.get()

>

getVertexValue().get())}setVertexValue(msgValue);changed

=

true;

}}if(getSuperStep()

==

0

||

changed)

{sendMsgToAllEdges(getVertexValue());}

else

{voteToHalt();

}

}}一個簡單的例子-計算最大節(jié)點值publicclass31復雜點的例子

-

PageRankpublic

class

SimplePageRankVertex

extends

EdgeListVertex<

LongWritable,

DoubleWritable,

FloatWritable,

DoubleWritable>{

@override

public

void

compute(Iterator<DoubleWritable>

msgIterator){

if(getSuperStep()

>=

1)

{

double

sum

=

0;

while(msgIterator.hasNext())

{

sum

+=

msgIterator.next().get();

}

setVertexValue(new

DoubleWritable((0.15f

/getNumVertices())

+

0.85f

*

sum);

}

if(getSuperStep()

<

300)

{

long

edges

=

getNumOutEdges();

sendMsgToAllEdges(newDoubleWritable(getVertexValue.get()

/

edges));

}

else

{

voteToHalt();

}

}}Mahout

(Hadoop)

854行復雜點的例子-PageRankpublicclass32豌豆莢知識圖譜

+

Giraph用途●

用戶性別、地域、教育水平的prediction●

用戶內(nèi)容消費社區(qū)的discovery●

Item/User-based

CF,支撐內(nèi)容推薦●

作弊用戶識別,

opinion

leader識別豌豆莢知識圖譜+Giraph用途●用戶性別、地域33總結(jié)總結(jié)34豌豆莢移動內(nèi)容推薦框架豌豆莢知識圖譜獨有內(nèi)容●●●應用內(nèi)內(nèi)容中解析出來的實體和實體關系信息(應用,游戲,書,視頻,音樂等)豌豆莢用戶貢獻的User

profile信息和UGC內(nèi)容用戶-實體的關系(搜索、瀏覽、消費、評價等)豌豆莢知識圖譜

+

Giraph●●●●用戶屬性prediction社區(qū)發(fā)現(xiàn)內(nèi)容推薦spammer/opinion

leader發(fā)現(xiàn)豌豆莢移動內(nèi)容推薦框架豌豆莢知識圖譜獨有內(nèi)容●應用內(nèi)內(nèi)容中解35謝謝!謝謝!36每一次的加油,每一次的努力都是為了下一次更好的自己。12月-2212月-22Thursday,December29,2022天生我材必有用,千金散盡還復來。12:48:3312:48:3312:4812/29/202212:48:33PM安全象只弓,不拉它就松,要想保安全,常把弓弦繃。12月-2212:48:3312:48Dec-2229-Dec-22得道多助失道寡助,掌控人心方位上。12:48:3312:48:3312:48Thursday,December29,2022安全在于心細,事故出在麻痹。12月-2212月-2212:48:3312:48:33December29,2022加強自身建設,增強個人的休養(yǎng)。2022年12月29日12:48下午12月-2212月-22擴展市場,開發(fā)未來,實現(xiàn)現(xiàn)在。29十二月202212:48:33下午12:48:3312月-22做專業(yè)的企業(yè),做專業(yè)的事情,讓自己專業(yè)起來。十二月2212:48下午12月-2212:48December29,2022時間是人類發(fā)展的空間。2022/12/2912:48:3312:48:3329December2022科學,你是國力的靈魂;同時又是社會發(fā)展的標志。12:48:33下午12:48下午12:48:3312月-22每天都是美好的一天,新的一天開啟。12月-2212月-2212:4812:48:3312:48:33Dec-22人生不是自發(fā)的自我發(fā)展,而是一長串機緣。事件和決定,這些機緣、事件和決定在它們實現(xiàn)的當時是取決于我們的意志的。2022/12/2912:48:33Thursday,December29,2022感情上的親密,發(fā)展友誼;錢財上的親密,破壞友誼。12月-222022/12/2912:48:3312月-22謝謝大家!每一次的加油,每一次的努力都是為了下一次更好的自己。12月-37移動環(huán)境下的內(nèi)容推薦初探移動環(huán)境下的內(nèi)容推薦初探38Agenda●

什么是推薦系統(tǒng)●

移動內(nèi)容推薦的特點●

豌豆莢移動內(nèi)容推薦關鍵技術●

總結(jié)Agenda●什么是推薦系統(tǒng)●移動內(nèi)容推薦的特點39什么是推薦系統(tǒng)什么是推薦系統(tǒng)40Recommender

systems

orrecommendation

systems

(sometimesreplacing

"system"

with

a

synonym

suchas

platform

or

engine)

are

a

subclass

ofinformation

filtering

system

that

seek

topredict

the

'rating'

or

'preference'

thatuser

would

give

to

an

item.-

from

wikipediaRecommendersystemsorrecommen41Recommender

systems/engines

are

asubclass

of

information

retrievalsystems/engines

in

passive

mode.Search

systems/engines

are

a

subclassof

information

retrieval

systems/enginesin

active

mode.Recommendersystems/enginesar42常用的推薦功能●

有哪些值得看的電影?●

去哪兒下館子腐???●

淘點啥寶貝?●

裝什么有意思的應用?●

大家都在討論什么話題?●

Netflix

Prize

$1

Million

Challenge?常用的推薦功能●有哪些值得看的電影?●裝什么有意43應用場景排行榜推薦個性化推薦使用海量數(shù)據(jù)電影推薦多多是餐館推薦多少是商品推薦多多是應用推薦多多是話題推薦多少是廣告推薦少多是推薦技術應用場景應用場景排行榜推薦個性化推薦使用海量數(shù)據(jù)電影推薦多多是餐館推44推薦用戶(User)海量數(shù)據(jù)是推薦之本

推薦位置

推薦位所在頁面內(nèi)容

推薦位在頁面中位置

推薦物品(Item)推薦物品

種類、主題、關鍵詞

生命周期、投放規(guī)則

大小、顏色、價格

…...推薦用戶

人口學屬性(性別、年

齡等)

行為屬性/興趣特征(瀏

覽、搜索、緩存)

Social內(nèi)容(社交關系

、小組發(fā)帖)

上下文(時間、地點等)●…...推薦用戶(User)海量數(shù)據(jù)是推薦之本推薦物品推薦用戶●….45

推薦算法

關鍵規(guī)則挖掘協(xié)同過濾

CF(User-based

CF,

Item-

based

CF)

矩陣分解

圖挖掘

基于熱度/知識/規(guī)則的推薦

基于內(nèi)容的推薦

基于預測模型的推薦

混合推薦方法推薦算法

推薦用戶

用戶行為屬性

Social內(nèi)容

人口學屬性

行為屬性/興趣

特征

用戶全局畫像

推薦場景一個用戶在多個物品

有行為

用戶-物品行為矩陣

不能過于稀疏用戶對物品的興趣規(guī)

律可觀察

適用于解決冷啟動

(cold

start)問題真實系統(tǒng)大都這么做 推薦算法推薦算法 推薦場景46推薦算法優(yōu)點缺點示例基于知識的推薦算法(基于人工觀察和經(jīng)驗,抽象出規(guī)則進行推薦)1.方法簡單2.規(guī)則易解釋、易運營3.所需數(shù)據(jù)少1.規(guī)則來源于人工知識,覆蓋率差2.有效周期難以判斷好友推薦基于內(nèi)容的推薦算法1.可以解決冷啟動問題2.方便整合各種用戶/物品特征3.推薦結(jié)果易于理解1.受限于特征提取的準確性2.需要大量的支撐數(shù)據(jù)3.常局限于特征稀疏的情況GoogleNewsAmazon淘寶豌豆莢協(xié)同過濾的推薦算法1.原理簡單有效,易于理解2.算法靈活,支持海量用戶/物品3.無需考慮復雜特征,支持特征空間極其復雜的用戶/物品的高效計算1.很明顯的冷啟動問題2.常受限于用戶/物品行為矩陣稀疏的情況3.受限于用戶/物品rating的正確性Netfix淘寶Amazon豆瓣豌豆莢常用推薦算法比較推薦算法優(yōu)點缺點示例基于知識的推薦算法(1.方法簡單1.規(guī)則47協(xié)同過濾-User-based

CF協(xié)同過濾-Item-based

CF協(xié)同過濾-User-basedCF協(xié)同過濾-Item-ba48移動推薦的特點移動推薦的特點49使用次數(shù)多時間碎片化使用次數(shù)多時間碎片化50內(nèi)容消費占大頭用戶易定位(用戶<->設備)內(nèi)容消費占大頭用戶易定位(用戶<->設備)51特點原因?qū)崟r推薦非常重要移動設備/應用使用次數(shù)多推薦的準確率要求更高移動設備/應用使用時間碎片化內(nèi)容推薦是關鍵移動設備/應用消費中內(nèi)容是大頭可利用用戶信息更豐富移動設備可以用來準確定位用戶移動推薦的新特點特點原因?qū)崟r推薦非常重要移動設備/應用使用次數(shù)多推薦的準確率52豌豆莢移動內(nèi)容推薦關鍵技術豌豆莢移動內(nèi)容推薦關鍵技術53豌豆莢移動內(nèi)容推薦框架豌豆莢移動內(nèi)容推薦框架54關鍵技術之知識圖譜關鍵技術之知識圖譜55知識圖譜

-

Knowledge

Graph

Knowledge

Graph

understands

real-world

entities

and

their

relationships

to

one

another:

things,

not

strings,

helps

the

machine

to

understand

the

world

a

bit

more

like

people

do.Knowledge

Graph

consists

of

nodes

with

edgesbetween

them.

Each

node

corresponds

to

an

entity

inreal

work,

each

edge

describe

the

relationship

betweenthe

begin

and

end

nodes.知識圖譜-KnowledgeGraphKnowledg56Google

Knowledge

GraphData

Sources●

Public

Sources(Wikipedia,

Freebase,CIA

World

Factbook)●

Knowledge

Mining

from

Webpages(Lists,

Tables,

etc.)●

Knowledge

Mining

from

user

queries(xxattributes

of

yy

entity)GoogleKnowledgeGraphDataSou57Google

Knowledge

Graph

Usages

Find

the

right

thing

Recognize

the

entities

in

queries

and

associates

them

with

the

relevant

information,

and

disambiguate

entities

using

context

information.

Get

the

best

summary

Use

the

users

search

behavior

to

determine

the

most

needed

aspects

for

each

entity.

Go

deeper

and

broader○Help

users

to

get

some

unexpected

discoveries.GoogleKnowledgeGraph○Helpus58移動環(huán)境下的內(nèi)容推薦初探課件59豌豆莢知識圖譜數(shù)據(jù)來源●

公開來源(Wikipedia,

Freebase,

IMDB、豆瓣電影)●

應用內(nèi)內(nèi)容/網(wǎng)頁信息中解析出來的實體

和實體關系信息(應用,游戲,書,視頻

,音樂等)●

豌豆莢用戶貢獻的User

profile信息和UGC內(nèi)容●

用戶-實體的關系(搜索、瀏覽、消費、豌豆莢知識圖譜數(shù)據(jù)來源●公開來源(Wikipedia60豌豆莢知識圖譜數(shù)據(jù)來源●

公開來源(Wikipedia,

Freebase,

IMDB、豆瓣電影)●

應用內(nèi)內(nèi)容/網(wǎng)頁信息中解析出來的實體

和實體關系信息(應用,游戲,書,視頻

,音樂等)●

豌豆莢用戶貢獻的User

profile信息和UGC內(nèi)容●

用戶-實體的關系(搜索、瀏覽、消費、豌豆莢知識圖譜數(shù)據(jù)來源●公開來源(Wikipedia61豌豆莢知識圖譜

用途

信息展示○全面展示內(nèi)容相關的實體及相互關系●

用戶意圖理解○○重名區(qū)分查詢意圖識別●

內(nèi)容推薦○○○○豌豆莢首頁內(nèi)容推薦

-

追新有趣豌豆莢詳情頁內(nèi)容推薦

-

相關而非相似豌豆莢各頻道列表頁內(nèi)容推薦

-

追熱有趣…...豌豆莢知識圖譜○全面展示內(nèi)容相關的實體及相互關系●用62關鍵技術之Giraph-圖挖掘平臺關鍵技術之Giraph-圖挖掘平臺63Giraph

-

圖挖掘平臺Giraph

是Google

Pregel的開源實現(xiàn),它基于Hadoop,通過在Hadoop上運行map-only的job來實現(xiàn)常見的圖挖掘算法。Giraph

提供了一個簡單的“面向節(jié)點”(Think

like

a

vertex)的編程模型。所有的圖挖掘算法都可簡化為在每一個Vertex上的兩類操作:1)

在vertext上進行數(shù)值計算(computation);2)

將數(shù)值計算的結(jié)果通過邊傳遞給相鄰的全部/部分節(jié)點(communication)。上述編程模型極大簡化了圖挖掘算法的實現(xiàn),使得每個算法都可以迭代地實現(xiàn),這一切是建立在Giraph內(nèi)嵌的bulksynchronous

parallel編程模型基礎上。Giraph-圖挖掘平臺Giraph是GoogleP64Giraph

Timeline●

受Google

Pregel啟發(fā)開發(fā)

(2010)●

被Yahoo!捐獻給ASF

(2011)●

成為Top-level

Apache

Project

(2012)●

發(fā)布1.0版本

(2013)●

發(fā)布1.1版本

(2014)Giraph典型應用●

Ranking

Popularity,

Importance,

etc.●

Label

Propagation

Location,

School,

Interest,

gender,

etc.●

Community

Groups,

ClustersGiraphTimelineGiraph典型應用65

Map-only

Map-Reduce

Think

like

a

key-value

pairpublic

class

Mapper<

KEYIN

VALUEIN

KEYOUT

VALUEOUT>{

void

map(KEYIN

key,

VALUEIN

value,

Context

context)

throws

IOException,

InterruptedException;}

Giraph

Think

like

a

vertexpublic

class

Vertext<

I

extends

WritableComparable,

V

extends

Writable,

E

extends

Writable,

M

extends

Writable>{

void

compute(

Iterator<M>

msgIterator);} Map-onlyMap-Reduce Giraph66

Giraph

API(當前Vertex上

可用)I

getVertextId()V

getVertextValue()void

setVertextValue(V

vertextValue)Iterator<I>

iterator()E

getEdgeValue(I

targetVertextId)boolean

hasEdge(I

targetVertextId)boolean

addEdge(I

targetVertextId,

EedgeValue)E

removeEdge(I

targetVertextId)void

voteToHalt()boolean

isHalted()Giraph

API(Vertex間傳遞消息可用)

void

sendMsg(I

targetVertexid,

M

msg)

void

sendMsgToAllEdges(M

msg)

void

addVertextRequest(BasicVertex(I,

V,

E,

M>

vertex)

void

removeVertextRequest(I

vertexId)

void

addEdgeRequest(I

sourceVertexId,

Edge<I,

E>

edge)

void

removeEdgeRequest(I

sourceVertextId,

I

destVertextId) GiraphAPI(當前Vertex上GiraphAP67一個簡單的例子

-

計算最大節(jié)點值public

class

MaxValueVertex

extends

EdgeListVertex<IntWritable,

IntWritable,

IntWritable,

IntWritable>{@overridepublic

void

compute(Iterator<IntWritable>

msgIterator){boolean

changed

=

false;while(msgIterator.hasNext()){IntWritable

msgValue

=

msgIterator.next();if(msgValue.get()

>

getVertexValue().get())}setVertexValue(msgValue);changed

=

true;

}}if(getSuperStep()

==

0

||

changed)

{sendMsgToAllEdges(getVertexValue());}

else

{voteToHalt();

}

}}一個簡單的例子-計算最大節(jié)點值publicclass68復雜點的例子

-

PageRankpublic

class

SimplePageRankVertex

extends

EdgeListVertex<

LongWritable,

DoubleWritable,

FloatWritable,

DoubleWritable>{

@override

public

void

comp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論