




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
移动环境下的内容推荐初探移动环境下的内容推荐初探1Agenda●
什么是推荐系统●
移动内容推荐的特点●
豌豆荚移动内容推荐关键技术●
总结Agenda●什么是推荐系统●移动内容推荐的特点2什么是推荐系统什么是推荐系统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应用场景排行榜推荐个性化推荐使用海量数据电影推荐多多是餐馆推荐多少是商品推荐多多是应用推荐多多是话题推荐多少是广告推荐少多是推荐技术应用场景应用场景排行榜推荐个性化推荐使用海量数据电影推荐多多是餐馆推7推荐用户(User)海量数据是推荐之本
推荐位置
●
推荐位所在页面内容
●
推荐位在页面中位置
推荐物品(Item)推荐物品
●
种类、主题、关键词
●
生命周期、投放规则
●
大小、颜色、价格
●
…...推荐用户
●
人口学属性(性别、年
龄等)
●
行为属性/兴趣特征(浏
览、搜索、缓存)
●
Social内容(社交关系
、小组发帖)
●
上下文(时间、地点等)●…...推荐用户(User)海量数据是推荐之本推荐物品推荐用户●….8
推荐算法
关键规则挖掘协同过滤
CF(User-based
CF,
Item-
based
CF)
矩阵分解
图挖掘
基于热度/知识/规则的推荐
基于内容的推荐
基于预测模型的推荐
混合推荐方法推荐算法
推荐用户
用户行为属性
Social内容
人口学属性
行为属性/兴趣
特征
用户全局画像
推荐场景一个用户在多个物品
有行为
用户-物品行为矩阵
不能过于稀疏用户对物品的兴趣规
律可观察
适用于解决冷启动
(cold
start)问题真实系统大都这么做 推荐算法推荐算法 推荐场景9推荐算法优点缺点示例基于知识的推荐算法(基于人工观察和经验,抽象出规则进行推荐)1.方法简单2.规则易解释、易运营3.所需数据少1.规则来源于人工知识,覆盖率差2.有效周期难以判断好友推荐基于内容的推荐算法1.可以解决冷启动问题2.方便整合各种用户/物品特征3.推荐结果易于理解1.受限于特征提取的准确性2.需要大量的支撑数据3.常局限于特征稀疏的情况GoogleNewsAmazon淘宝豌豆荚协同过滤的推荐算法1.原理简单有效,易于理解2.算法灵活,支持海量用户/物品3.无需考虑复杂特征,支持特征空间极其复杂的用户/物品的高效计算1.很明显的冷启动问题2.常受限于用户/物品行为矩阵稀疏的情况3.受限于用户/物品rating的正确性Netfix淘宝Amazon豆瓣豌豆荚常用推荐算法比较推荐算法优点缺点示例基于知识的推荐算法(1.方法简单1.规则10协同过滤-User-based
CF协同过滤-Item-based
CF协同过滤-User-basedCF协同过滤-Item-ba11移动推荐的特点移动推荐的特点12使用次数多时间碎片化使用次数多时间碎片化13内容消费占大头用户易定位(用户<->设备)内容消费占大头用户易定位(用户<->设备)14特点原因实时推荐非常重要移动设备/应用使用次数多推荐的准确率要求更高移动设备/应用使用时间碎片化内容推荐是关键移动设备/应用消费中内容是大头可利用用户信息更丰富移动设备可以用来准确定位用户移动推荐的新特点特点原因实时推荐非常重要移动设备/应用使用次数多推荐的准确率15豌豆荚移动内容推荐关键技术豌豆荚移动内容推荐关键技术16豌豆荚移动内容推荐框架豌豆荚移动内容推荐框架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移动环境下的内容推荐初探课件22豌豆荚知识图谱数据来源●
公开来源(Wikipedia,
Freebase,
IMDB、豆瓣电影)●
应用内内容/网页信息中解析出来的实体
和实体关系信息(应用,游戏,书,视频
,音乐等)●
豌豆荚用户贡献的User
profile信息和UGC内容●
用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱数据来源●公开来源(Wikipedia23豌豆荚知识图谱数据来源●
公开来源(Wikipedia,
Freebase,
IMDB、豆瓣电影)●
应用内内容/网页信息中解析出来的实体
和实体关系信息(应用,游戏,书,视频
,音乐等)●
豌豆荚用户贡献的User
profile信息和UGC内容●
用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱数据来源●公开来源(Wikipedia24豌豆荚知识图谱
用途
●
信息展示○全面展示内容相关的实体及相互关系●
用户意图理解○○重名区分查询意图识别●
内容推荐○○○○豌豆荚首页内容推荐
-
追新有趣豌豆荚详情页内容推荐
-
相关而非相似豌豆荚各频道列表页内容推荐
-
追热有趣…...豌豆荚知识图谱○全面展示内容相关的实体及相互关系●用25关键技术之Giraph-图挖掘平台关键技术之Giraph-图挖掘平台26Giraph
-
图挖掘平台Giraph
是Google
Pregel的开源实现,它基于Hadoop,通过在Hadoop上运行map-only的job来实现常见的图挖掘算法。Giraph
提供了一个简单的“面向节点”(Think
like
a
vertex)的编程模型。所有的图挖掘算法都可简化为在每一个Vertex上的两类操作:1)
在vertext上进行数值计算(computation);2)
将数值计算的结果通过边传递给相邻的全部/部分节点(communication)。上述编程模型极大简化了图挖掘算法的实现,使得每个算法都可以迭代地实现,这一切是建立在Giraph内嵌的bulksynchronous
parallel编程模型基础上。Giraph-图挖掘平台Giraph是GoogleP27Giraph
Timeline●
受Google
Pregel启发开发
(2010)●
被Yahoo!捐献给ASF
(2011)●
成为Top-level
Apache
Project
(2012)●
发布1.0版本
(2013)●
发布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一个简单的例子
-
计算最大节点值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();
}
}}一个简单的例子-计算最大节点值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●
用户内容消费社区的discovery●
Item/User-based
CF,支撑内容推荐●
作弊用户识别,
opinion
leader识别豌豆荚知识图谱+Giraph用途●用户性别、地域33总结总结34豌豆荚移动内容推荐框架豌豆荚知识图谱独有内容●●●应用内内容中解析出来的实体和实体关系信息(应用,游戏,书,视频,音乐等)豌豆荚用户贡献的User
profile信息和UGC内容用户-实体的关系(搜索、浏览、消费、评价等)豌豆荚知识图谱
+
Giraph●●●●用户属性prediction社区发现内容推荐spammer/opinion
leader发现豌豆荚移动内容推荐框架豌豆荚知识图谱独有内容●应用内内容中解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加强自身建设,增强个人的休养。2022年12月29日12:48下午12月-2212月-22扩展市场,开发未来,实现现在。29十二月202212:48:33下午12:48:3312月-22做专业的企业,做专业的事情,让自己专业起来。十二月2212:48下午12月-2212:48December29,2022时间是人类发展的空间。2022/12/2912:48:3312:48:3329December2022科学,你是国力的灵魂;同时又是社会发展的标志。12:48:33下午12:48下午12:48:3312月-22每天都是美好的一天,新的一天开启。12月-2212月-2212:4812:48:3312:48:33Dec-22人生不是自发的自我发展,而是一长串机缘。事件和决定,这些机缘、事件和决定在它们实现的当时是取决于我们的意志的。2022/12/2912:48:33Thursday,December29,2022感情上的亲密,发展友谊;钱财上的亲密,破坏友谊。12月-222022/12/2912:48:3312月-22谢谢大家!每一次的加油,每一次的努力都是为了下一次更好的自己。12月-37移动环境下的内容推荐初探移动环境下的内容推荐初探38Agenda●
什么是推荐系统●
移动内容推荐的特点●
豌豆荚移动内容推荐关键技术●
总结Agenda●什么是推荐系统●移动内容推荐的特点39什么是推荐系统什么是推荐系统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应用场景排行榜推荐个性化推荐使用海量数据电影推荐多多是餐馆推荐多少是商品推荐多多是应用推荐多多是话题推荐多少是广告推荐少多是推荐技术应用场景应用场景排行榜推荐个性化推荐使用海量数据电影推荐多多是餐馆推44推荐用户(User)海量数据是推荐之本
推荐位置
●
推荐位所在页面内容
●
推荐位在页面中位置
推荐物品(Item)推荐物品
●
种类、主题、关键词
●
生命周期、投放规则
●
大小、颜色、价格
●
…...推荐用户
●
人口学属性(性别、年
龄等)
●
行为属性/兴趣特征(浏
览、搜索、缓存)
●
Social内容(社交关系
、小组发帖)
●
上下文(时间、地点等)●…...推荐用户(User)海量数据是推荐之本推荐物品推荐用户●….45
推荐算法
关键规则挖掘协同过滤
CF(User-based
CF,
Item-
based
CF)
矩阵分解
图挖掘
基于热度/知识/规则的推荐
基于内容的推荐
基于预测模型的推荐
混合推荐方法推荐算法
推荐用户
用户行为属性
Social内容
人口学属性
行为属性/兴趣
特征
用户全局画像
推荐场景一个用户在多个物品
有行为
用户-物品行为矩阵
不能过于稀疏用户对物品的兴趣规
律可观察
适用于解决冷启动
(cold
start)问题真实系统大都这么做 推荐算法推荐算法 推荐场景46推荐算法优点缺点示例基于知识的推荐算法(基于人工观察和经验,抽象出规则进行推荐)1.方法简单2.规则易解释、易运营3.所需数据少1.规则来源于人工知识,覆盖率差2.有效周期难以判断好友推荐基于内容的推荐算法1.可以解决冷启动问题2.方便整合各种用户/物品特征3.推荐结果易于理解1.受限于特征提取的准确性2.需要大量的支撑数据3.常局限于特征稀疏的情况GoogleNewsAmazon淘宝豌豆荚协同过滤的推荐算法1.原理简单有效,易于理解2.算法灵活,支持海量用户/物品3.无需考虑复杂特征,支持特征空间极其复杂的用户/物品的高效计算1.很明显的冷启动问题2.常受限于用户/物品行为矩阵稀疏的情况3.受限于用户/物品rating的正确性Netfix淘宝Amazon豆瓣豌豆荚常用推荐算法比较推荐算法优点缺点示例基于知识的推荐算法(1.方法简单1.规则47协同过滤-User-based
CF协同过滤-Item-based
CF协同过滤-User-basedCF协同过滤-Item-ba48移动推荐的特点移动推荐的特点49使用次数多时间碎片化使用次数多时间碎片化50内容消费占大头用户易定位(用户<->设备)内容消费占大头用户易定位(用户<->设备)51特点原因实时推荐非常重要移动设备/应用使用次数多推荐的准确率要求更高移动设备/应用使用时间碎片化内容推荐是关键移动设备/应用消费中内容是大头可利用用户信息更丰富移动设备可以用来准确定位用户移动推荐的新特点特点原因实时推荐非常重要移动设备/应用使用次数多推荐的准确率52豌豆荚移动内容推荐关键技术豌豆荚移动内容推荐关键技术53豌豆荚移动内容推荐框架豌豆荚移动内容推荐框架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移动环境下的内容推荐初探课件59豌豆荚知识图谱数据来源●
公开来源(Wikipedia,
Freebase,
IMDB、豆瓣电影)●
应用内内容/网页信息中解析出来的实体
和实体关系信息(应用,游戏,书,视频
,音乐等)●
豌豆荚用户贡献的User
profile信息和UGC内容●
用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱数据来源●公开来源(Wikipedia60豌豆荚知识图谱数据来源●
公开来源(Wikipedia,
Freebase,
IMDB、豆瓣电影)●
应用内内容/网页信息中解析出来的实体
和实体关系信息(应用,游戏,书,视频
,音乐等)●
豌豆荚用户贡献的User
profile信息和UGC内容●
用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱数据来源●公开来源(Wikipedia61豌豆荚知识图谱
用途
●
信息展示○全面展示内容相关的实体及相互关系●
用户意图理解○○重名区分查询意图识别●
内容推荐○○○○豌豆荚首页内容推荐
-
追新有趣豌豆荚详情页内容推荐
-
相关而非相似豌豆荚各频道列表页内容推荐
-
追热有趣…...豌豆荚知识图谱○全面展示内容相关的实体及相互关系●用62关键技术之Giraph-图挖掘平台关键技术之Giraph-图挖掘平台63Giraph
-
图挖掘平台Giraph
是Google
Pregel的开源实现,它基于Hadoop,通过在Hadoop上运行map-only的job来实现常见的图挖掘算法。Giraph
提供了一个简单的“面向节点”(Think
like
a
vertex)的编程模型。所有的图挖掘算法都可简化为在每一个Vertex上的两类操作:1)
在vertext上进行数值计算(computation);2)
将数值计算的结果通过边传递给相邻的全部/部分节点(communication)。上述编程模型极大简化了图挖掘算法的实现,使得每个算法都可以迭代地实现,这一切是建立在Giraph内嵌的bulksynchronous
parallel编程模型基础上。Giraph-图挖掘平台Giraph是GoogleP64Giraph
Timeline●
受Google
Pregel启发开发
(2010)●
被Yahoo!捐献给ASF
(2011)●
成为Top-level
Apache
Project
(2012)●
发布1.0版本
(2013)●
发布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一个简单的例子
-
计算最大节点值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();
}
}}一个简单的例子-计算最大节点值publicclass68复杂点的例子
-
PageRankpublic
class
SimplePageRankVertex
extends
EdgeListVertex<
LongWritable,
DoubleWritable,
FloatWritable,
DoubleWritable>{
@override
public
void
comp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论