Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记

文章标题:Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection
文章链接:https://arxiv.org/abs/2005.00625
代码链接:https://github.com/safe-graph/DGFraud
译者水平有限,如有不当之处,请阅读原文

一、介绍

在互联网[4]上有各种各样的欺诈活动,例如欺诈者伪装成普通用户发布虚假评论[5],进行下载欺诈[1]。通过将实体建模为节点,将实体之间的相应交互建模为边[10],我们可以设计一种基于图的算法来检测可疑模式,从而发现骗子。随着图神经网络(GNN)[2,7,13]的发展,它在学习节点的深度表示方面非常强大,最近,之前的努力也提出了许多基于GNN的欺诈检测框架[8,9,14 ,17]。

其中,[8,15]针对在线审查系统中的意见欺诈,[9,14,17]针对金融欺诈,[16]针对在线论坛中的网络犯罪。他们在同质图[8,15]或异质图[8,9,14,16,17]上建立问题模型。基本模型FdGars[15]和GAS[8]采用GCN [7],SemiGNN和Player2Vec[16]采用GAT[13]。一些研究[8,9,17]设计了新的聚合器来聚合邻域信息。基于GNN的欺诈检测器以迭代的方式学习节点表示,并以端到端半监督的方式预测节点的可疑程度。

然而,现有的方法在设计关于欺诈检测任务的GNN模型时都忽略了不一致性问题。不一致性问题与GNN模型的聚合过程有关。聚合机制基于邻居共享类似特征和标签[3]的假设。当假设成立时,我们可以聚合邻域信息来学习节点嵌入。然而,如图1(左)所示,欺诈检测问题的不一致性来自三个方面:

(1)上下文不一致。聪明的欺诈者可以将自己与常规实体连接起来作为伪装[6,12]。与此同时,诈骗犯的数量远低于普通实体。通过GNN直接聚合邻居,只能帮助欺诈性实体聚合来自常规实体的信息,从而防止自身被欺诈性检测器发现。例如,在图1(左)中,欺诈者v1连接到关系II下的3个良性实体。

(2)功能不一致。以意见欺诈(例如,垃圾评论)检测问题[8]为例,假设同一用户发布了两篇评论,但针对不同类别的产品,这两篇评论具有优势,因为它们共享同一用户。但是,由于它们与不同的产品相关联,所以它们的评论内容(特性)彼此相差甚远。直接聚合使得GNN难以区分评论的独特语义特征,最终影响其检测垃圾评论的能力。例如,在图1(左)中,我们可以发现节点v1的特性与节点v4、v6和v7不一致。

(3)关系不一致。由于实体与多种类型的关系相连接,简单地平等对待所有关系将导致关系不一致问题。例如,两个评论可以由同一用户或同一产品连接,它们分别是普通用户关系和普通产品关系。假设一个评论是可疑的,那么如果它们是由普通用户关系连接的,那么另一个评论应该有更大的可疑性,因为欺诈性用户倾向于发布许多欺诈性评论。例如,在图1(左)中,我们发现在关系II下,欺诈者v1与其他两个欺诈者相连。然而,在关系III下,欺诈者只与一个欺诈者有关,而与三个良性实体有关。

图1左:一个在欺诈数据集上构造有两个关系的图的玩具示例,v2−v7是v1的邻居。上下文不一致:欺诈者v1可以连接到许多良性邻居(关系II中的v4, v6, v7)来伪装自己。特征不一致:对于与v1关系相同的v2和3,其特征可能存在较大差异。关系不一致:对于v1,关系I比关系II连接更多相似的邻居。正确示例:为了缓解不一致问题,我们介绍了三种技术。首先,我们提出将上下文嵌入与特征向量相结合。然后,我们计算邻居的一致性分数来过滤节点并生成抽样概率。最后,我们利用关系嵌入的注意机制对样本邻居进行聚合。

为了解决以上问题,我们设计了一种新的GNN框架GraphConsis来解决欺诈检测问题,如图1(右)所示。GraphConsis建立在异构图上。GraphConsis不同于现有的gnn聚合过程。我们设计了三种技术来同时处理三个不一致的问题,而不是直接聚合邻近的嵌入。首先,为了处理邻居的上下文不一致,GraphConsis为每个节点分配一个可训练的上下文嵌入,如图1(右)中的灰色块旁节点所示。其次,为了聚合一致的邻居嵌入,我们设计了一个度量节点间嵌入一致性的新指标。通过将嵌入一致性评分纳入到聚合过程中,我们忽略一致性评分较低的邻居(如图1(右)中节点v4被丢弃)并生成抽样概率。最后,我们学习与邻居相关的关系注意权重,以缓解关系不一致问题。

本文的贡献如下:

  • 据我们所知,我们是第一个解决GNN模型不一致问题的工作。
  • 我们实证分析了GNN模型应用于欺诈检测任务的三个不一致性问题。
  • 我们提出了GraphConsisto解决三个不一致问题,它结合了上下文嵌入、邻域信息度量和关系注意。

二、准备

我们使用节点表示来检测图中的欺诈实体。因此,我们需要首先引入节点表示学习。异构图G={V,X,{Er}∣r=1R}G=\left\{V, \mathbf{X},\left.\left\{E_{r}\right\}\right|_{r=1} ^{R}\right\}G={V,X,{Er}r=1R},其中VVV表示节点,XXX是节点的特征矩阵,ErE_rEr表示边w.r.t,关系r.我们共计有RRR种不同的关系。为了将节点表示为向量,我们需要学习一个函数f:V→Rdf: V\rightarrow \mathbb{R}^df:VRd把节点映射到ddd维空间,其中d<<∣V∣d<<|V|d<<V.函数fff既要保留图的结构信息,又要保留节点的原始特征信息。通过学习节点嵌入,我们可以训练一个分类器C:Rd→{0,1}C:\mathbb{R}^d\rightarrow\{0,1\}C:Rd{0,1}检测给定节点是否为欺诈者,其中1为欺诈者,0为良性实体。本文采用GNN框架,通过邻居聚合来学习节点表示。GNN框架可以同时训练映射函数fff和分类器CCC。我们只需要将图和节点的标签输入到GNN模型中。GNN模型的一般框架是:
hv(l)=hv(l−1)⊕AGG(l)({hv′(l−1):v′∈Nv}),(1)\mathbf{h}_{v}^{(l)}=\mathbf{h}_{v}^{(l-1)} \oplus \mathrm{AGG}^{(l)}\left(\left\{\mathbf{h}_{v^{\prime}}^{(l-1)}: v^{\prime} \in \mathcal{N}_{v}\right\}\right),\tag{1} hv(l)=hv(l1)AGG(l)({hv(l1):vNv}),(1)
其中hv(l)\mathbf{h}_{v}^{(l)}hv(l)vvv在第lll层的隐藏的嵌入,Nv\mathcal{N}_{v}Nv节点vvv的邻居,AGG表示将邻域信息映射为向量的聚合函数。这里,我们使用⊕\oplus来表示邻居信息和中心节点信息的组合,它可以直接相加或串联传递给神经网络。对于AGG函数,我们首先给相邻节点分配一个抽样概率。然后我们对Q个节点进行抽样,并将它们进行向量平均(注:此处也可以使用其他池化技术)。概率的计算将在后面的公式(4)中介绍。注意GNN的框架是$ L$层结构,其中1<l<L1<l<L1<l<L.在第lll层,它聚合第l−1l-1l1层的信息。

三、模型

3.1上下文嵌入

聚合器根据公式(2)将相邻节点的信息进行合并。当k=1时,隐藏的嵌入hv(0)h_v^{(0)}hv(0)相当于节点特征。为了解决文本环境不一致的问题,我们引入了对于节点vvv可训练上下文的嵌入cvc_vcv,而不仅仅是使用它的特征向量xvx_vxv.第一层聚合器变为:
hv(1)={xv∥cv}⊕AGG(1)({xv′∥cv′:v′∈Nv}),(2)\mathbf{h}_{v}^{(1)}=\left\{\mathbf{x}_{v} \| \mathbf{c}_{v}\right\} \oplus \mathrm{AGG}^{(1)}\left(\left\{\mathbf{x}_{v^{\prime}} \| \mathbf{c}_{v^{\prime}}: v^{\prime} \in \mathcal{N}_{v}\right\}\right),\tag{2} hv(1)={xvcv}AGG(1)({xvcv:vNv}),(2)
其中∣∣||∣∣表示连接操作。通过训练上下文嵌入来表示节点的局部结构,有助于识别欺诈。如果我们使用加法⊕\oplus,那么hv∈R2dh_v\in \mathbb{R}^{2d}hvR2d.

3.2邻居采样

由于存在特征不一致的问题,我们应该对相关的邻居进行抽样,而不是给它们分配相同的概率。因此,我们计算嵌入之间的一致性得分:
s(l)(u,v)=exp⁡(−∥hu(l)−hv(l)∥22),(3)s^{(l)}(u, v)=\exp \left(-\left\|\mathbf{h}_{u}^{(l)}-\mathbf{h}_{v}^{(l)}\right\|_{2}^{2}\right),\tag{3} s(l)(u,v)=exp(

hu(l)hv(l)

22),(3)
其中,s(l)(⋅,⋅)s^{(l)}(\cdot,\cdot)s(l)(,)表示第lll层两个节点的一致性评分,∥⋅∥2\left\| \cdot \right\|_22是向量的第二范数(注:其他度量也可以,比如第一范数)。我们首先使用一个阈值ϵ\epsilonϵ来过滤远离一致性的邻居。
p(l)(u;v)=s(l)(u,v)/∑u∈N~vs(l)(u,v).(4)p^{(l)}(u ; v)=s^{(l)}(u, v) / \sum_{u \in \tilde{\mathcal{N}}_{v}} s^{(l)}(u, v).\tag{4} p(l)(u;v)=s(l)(u,v)/uN~vs(l)(u,v).(4)
注意,概率是在每一层为AGG(l)AGG^{(l)}AGG(l)计算的。

3.3关系注意

在图中有RRR种不同关系。为了解决关系不一致问题,还应该在聚合过程中包含关系信息。因此,对于每个关系rrr,我们训练一个关系向量trt_rtr,其中r={1,2,⋯,R}r=\{1,2,\cdots , R\}r={1,2,,R},来表示应该合并的关系信息。由于关系信息需要和相邻节点一起聚合到中心节点vvv,我们采用自注意机制[13]为Q个抽样邻居节点赋权:
αq(l)=exp⁡(σ({hq(l)∥trq}a⊤))/∑q=1Qexp⁡(σ({hq(l)∥trq}a⊤)),(5)\alpha_{q}^{(l)}=\exp \left(\sigma\left(\left\{\mathbf{h}_{q}^{(l)} \| \mathbf{t}_{r_{q}}\right\} \mathbf{a}^{\top}\right)\right) / \sum_{q=1}^{Q} \exp \left(\sigma\left(\left\{\mathbf{h}_{q}^{(l)} \| \mathbf{t}_{r_{q}}\right\} \mathbf{a}^{\top}\right)\right),\tag{5} αq(l)=exp(σ({hq(l)trq}a))/q=1Qexp(σ({hq(l)trq}a)),(5)
其中rqr_qrq是节点vvv在第qqq次采样的关系,σ\sigmaσ是激活函数,a∈R4da\in \mathbb{R}^{4d}aR4d表示所有注意层共享的注意权重。最终AGG(l)AGG^{(l)}AGG(l)表示为:
AGG(l)({hq(l−1)}∣q=1Q)=∑q=1Qαq(l)hq(l),(6)\mathrm{AGG}^{(l)}\left(\left.\left\{\mathbf{h}_{q}^{(l-1)}\right\}\right|_{q=1} ^{Q}\right)=\sum_{q=1}^{Q} \alpha_{q}^{(l)} \mathbf{h}_{q}^{(l)},\tag{6} AGG(l)({hq(l1)}

q=1Q)=q=1Qαq(l)hq(l),(6)
其中hq(l)h^{(l)}_qhq(l)是根据公式(4)采样的第qqq个节点的嵌入。

四、实验

4.1实验设置

4.1.1 数据集和图构建

我们利用YelpChi垃圾邮件评论数据集[11],以及其他三个基准数据集[2,7]来研究欺诈检测任务中的图不一致问题。YelpChi的垃圾评论数据集包括Yelp过滤(垃圾)和推荐(合法)的酒店和餐厅评论。在本文中,我们在YelpChi数据集上进行了一个垃圾邮件评论分类任务,这是一个二元分类问题。我们删除评论超过800条的产品,以限制计算图的大小。预处理数据集有29431个用户,182个产品和45954个评论(%14.5垃圾邮件)。

在前人研究[11]的基础上,我们将垃圾评论作为图中的节点,设计了三个关系,分别表示为R−U−RR-U-RRURR−S−RR-S-RRSRR−T−RR - T - RRTR.连接同R−U−RR-U-RRUR一用户发布的评论;R−S−RR-S-RRSR连接同一产品下的相同评级的评论;连接同一产R−T−RR - T - RRTR品下同一月份发布的两篇评论。我们将每个评论的100维Word2Vec嵌入作为其特性,就像之前的工作[8]一样。

4.1.2 基线

为了展示 GraphConsis 在缓解不一致问题方面的能力,我们将其性能与 nonGNN 分类器、vanilla GNN 和基于 GNN 的欺诈检测器进行了比较。

  • 逻辑回归: 一个non-GNN分类器,只根据评论特征进行预测。
  • FdGars (GCN)[15]: 一种基于GCN[7]的垃圾邮件评论检测算法。
  • Player2Vec[16]: 一种先进的欺诈检测模型,使用GCN对每个关系中的信息进行编码,并使用GAT聚合来自不同关系的邻居。

4.1.3实验设置

我们使用 Adam 优化器基于交叉熵损失来训练我们的模型。 对于超参数,我们选择2层结构,第一层和第二层的样本数分别设置为10和5。 第一层和第二层隐藏层的嵌入维数分别为200和100。 我们使用 F1-score 来衡量整体分类性能,使用 AUC 来衡量识别垃圾评论的性能。

4.2不一致的问题

我们首先使用 Yelpchi 数据集来演示将 GNN 应用于欺诈检测任务时的不一致问题。 表 1 显示了基于 YelpChi 构建的图与 [2,7] 使用的节点分类基准数据集的统计数据。 Yelp-ALL 由三个单关系图组成。

与三个广泛使用的基准节点分类数据集相比,我们发现在 YelpChi 上构建的多关系图具有更高的密度(平均节点度数大于 100)。 它表明现实世界的欺诈图通常包含复杂的关系和邻居,从而导致不一致问题。 在我们比较图特征和分析三个不一致问题之前,类似于[3],我们设计了两个特征分数。 一是上下文特征得分:
γr(c)=∑(u,v)∈Er(1−I(u∼v))/∣Er∣,(7)\gamma_{r}^{(c)}=\sum_{(u, v) \in E_{r}}(1-\mathbb{I}(u \sim v)) /\left|E_{r}\right|,\tag{7} γr(c)=(u,v)Er(1I(uv))/Er,(7)
其中I(⋅)∈{0,1}\mathbb{I}(\cdot)\in\{0,1\}I(){0,1}表示节点uuu和节点vvv是否具有相同的标签。我们总结了所有的特征 w.r.t. 所有边并通过边的总数∣Er∣|E_r|Er进行归一化。上下文特征衡量特定关系 r 下相邻节点之间的标签相似度。 另一个是特征的特征得分:
γr(f)=∑(u,v)∈Erexp⁡(−∥xu−xv∥22)/∣Er∣⋅d,(8)\gamma_{r}^{(f)}=\sum_{(u, v) \in E_{r}} \exp \left(-\left\|\mathbf{x}_{u}-\mathbf{x}_{v}\right\|_{2}^{2}\right) /\left|E_{r}\right| \cdot d,\tag{8} γr(f)=(u,v)Erexp(xuxv22)/Erd,(8)
其中,我们使用RBF核函数(注:其他内核函数也可以)作为两个连接节点之间的相似性度量。整体特征特征分数由总边数∣E∣|E|E和特征维度ddd的乘积归一化。 通过特征维度归一化相似度是为了公平比较不同图的特征特征,这些图可能具有不同的特征维度。

上下文不一致。 我们根据公式(7)计算上下文特征γr(c)\gamma_r^{(c)}γr(c),它衡量上下文的一致性。对于图R−T−RR-T-RRTRR−S−RR-S-RRSR和Yelp-All,少于 10% 的相邻节点具有相似的标签。 这表明欺诈者可能会在某些关系下将自己隐藏在常规实体中。

功能不一致。 我们根据公式(8)计算特征的特征γr(f)\gamma_r^{(f)}γr(f).由R−U−RR-U-RRUR关系(同一用户发表的评论)构建的图比其他两种关系具有更高的特征特征。因此,我们不仅要根据相邻节点之间的关系,还要根据特征的相似度对相邻节点进行采样。

关系不一致。 对于由三种不同关系构成的图,其相邻节点也具有不同的特征/标签不一致评分。因此,在聚合过程中,我们需要以不同的注意权重来处理不同的关系。

4.3效果评估

表 2 显示了垃圾邮件评论检测任务的实验结果。 我们可以看到 GraphConsis 在这两个指标上在 80% 和 60% 的训练数据下都优于其他模型,这表明我们可以缓解不一致问题。 与其他基于 GNN 的模型相比,LR 在 AUC 上表现稳定且更好。 这表明节点特征是有用的,但 GNN 中的聚合器在识别欺诈者方面破坏了分类器。这一观察结果也证明了不一致问题是至关重要的,在将 GNN 应用于欺诈检测任务时应予以考虑。 与同样学习关系注意力的 Player2Vec 相比,GraphConsis 表现更好。 这表明仅使用关系注意不能缓解特征不一致。 应该过滤邻居,然后根据我们设计的方法进行采样。 FdGars 直接聚合邻居的信息,GraphSAGE 以相等的概率对邻居进行采样。 它们的性能都比 GraphConsis 差,这表明我们的邻居采样技术是有用的。

五、结论与未来工作

在本文中,我们研究了将 GNN 应用于欺诈检测问题的三个不一致问题。 为了解决这些问题,我们分别设计了三个模块并提出了 GraphConsis。 实验结果证明了 GraphConsis 的有效性。 未来的工作包括为每个关系设计一个自适应采样阈值,以最大化 GNN 的感受野。 调查其他欺诈数据集下的不一致问题是未来研究的另一个途径。

参考文献

[1]Y. Dou, W. Li, Z. Liu, Z. Dong, J. Luo, and P. S. Yu. 2019. Uncovering download fraud activities in mobile app markets. InASONAM.
[2]W. Hamilton, Z. Ying, and J. Leskovec. 2017. Inductive representation learning on large graphs. InNeurIPS.
[3]Y. Hou, J. Zhang, J. Cheng, K. Ma, R. T. B. Ma, H. Chen, and M. Yang. 2020. Measuring and Improving the Use of Graph Information in Graph Neural Networks. InICLR.
[4]M. Jiang, P. Cui, and C. Faloutsos. 2016. Suspicious behavior detection: Current trends and future directions.IEEE Intelligent Systems(2016).
[5]P. Kaghazgaran, M. Alfifi, and J. Caverlee. 2019. Wide-Ranging Review Manipulation Attacks: Model, Empirical Study, and Countermeasures. InCIKM.
[6]P. Kaghazgaran, J. Caverlee, and A. Squicciarini. 2018. Combating crowdsourced review manipulators: A neighborhood-based approach. InWSDM.
[7]T.N. Kipf and M. Welling. 2017. Semi-supervised classification with graph convolutional networks. InICLR.
[8]A. Li, Z. Qin, R. Liu, Y. Yang, and D. Li. 2019. Spam Review Detection with Graph Convolutional Networks. InCIKM.
[9]Z. Liu, C. Chen, X. Yang, J. Zhou, X. Li, and L. Song. 2018. Heterogeneous Graph Neural Networks for Malicious Account Detection. InCIKM. [10]H. Peng, J. Li, Q. Gong, Y. Song, Y. Ning, K. Lai, and P. S. Yu. 2019. Fine-grained Event Categorization with Heterogeneous Graph Convolutional Networks. In IJCAI.
[11]S. Rayana and L. Akoglu. 2015. Collective Opinion Spam Detection: Bridging Review Networks and Metadata. InKDD.
[12]L. Sun, Y. Dou, C. Yang, J. Wang, P. S. Yu, and B. Li. 2018. Adversarial Attack and Defense on Graph Data: A Survey.arXiv preprint arXiv:1812.10528(2018).
[13]P. Veličković, G. Cucurull, A. Casanova, A. Romero, P. Lio, and Y. Bengio. 2017. Graph attention networks. InICLR.
[14]D. Wang, J. Lin, P. Cui, Q. Jia, Z. Wang, Y. Fang, Q. Yu, J. Zhou, S. Yang, and Y. Qi. 2019. A Semi-supervised Graph Attentive Network for Fraud Detection. In ICDM.
[15]J. Wang, R. Wen, C. Wu, Y. Huang, and J. Xion. 2019. FdGars: Fraudster Detection via Graph Convolutional Networks in Online App Review System. InWWW Workshops.
[16]Y. Zhang, Y. Fan, Y. Ye, L. Zhao, and C. Shi. 2019. Key Player Identification in Underground Forums over Attributed Heterogeneous Information Network Embedding Framework. InCIKM.
[17]Q. Zhong, Y. Liu, X. Ao, B. Hu, J. Feng, J. Tang, and Q. He. 2020. Financial Defaulter Detection on Online Credit Payment via Multi-View Attributed Heterogeneous Information Network. InWWW.

Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记相关推荐

  1. COMBINING LABEL PROPAGATION AND SIMPLE MODELS OUT-PERFORMS GRAPH NEURAL NETWORKS(CorrectSmooth)阅读笔记

    文章目录 链接 一.摘要 二.引言 三."修正和平滑"模型 四.转导式节点分类实验 四.总结 总结 红色部分为个人的一些解读,不足之处请多多指点! 链接 论文题目:结合标签传播和简 ...

  2. 详解停车位检测论文:Attentional Graph Neural Network for Parking-slot Detection

    本文介绍一篇注意力图神经网络用于停车位检测论文,论文已收录于 RA-L2021.在之前的基于卷积神经网络的停车位检测方法中,很少考虑停车位标记点之间的关联信息,从而导致需要复杂的后处理.在本文中,作者 ...

  3. Mutual Graph Learning for Camouflaged Object Detection阅读笔记

    CVPR 2021 Qiang Zhai, Xin Li, Fan Yang, Chenglizhao Chen, Hong Cheng, Deng-Ping Fan https://arxiv.or ...

  4. A Convolutional Neural Network for Modelling Sentences阅读笔记

    钱钱钱钱钱钱钱钱 转载于:https://www.cnblogs.com/forPrometheus-jun/p/10683221.html

  5. 论文解读《Evaluating the visualization of what a Deep Neural Network has learned》–阅读笔记

    本文属于原创,转载请注明出处 *本论文解读的初衷: 1.由于某些原因,最近有关注到神经网络可解释性与可视化方向的发展. 2.本人习惯阅读优秀的博文后直接点赞收藏,而这篇却没有搜到相关解读,不知道是不是 ...

  6. 2021_AAAI_Knowledge-aware Coupled Graph Neural Network for Social Recommendation

    [论文阅读笔记]2021_AAAI_Knowledge-aware Coupled Graph Neural Network for Social Recommendation 论文下载地址: htt ...

  7. 图神经网络综述 Survey on Graph Neural Network

    图神经网络综述 Survey on Graph Neural Network 摘要:近几年来,将深度学习应用到处理和图结构数据相关的任务中越来越受到人们的关注.图神经网络的出现使其在上述任务中取得了重 ...

  8. 图神经网络方法总结(Graph Neural Network)

    图神经网络方法(Graph Neural Network) 概要 近年来图神经网络受到大家越来越多的关注,在文本分类(Text classification),序列标注(Sequence labeli ...

  9. 论文笔记:Person Re-identification with Deep Similarity-Guided Graph Neural Network

    Person Re-identification with Deep Similarity-Guided Graph Neural Network 2018-07-27 17:41:45 Paper: ...

最新文章

  1. C/C++指向指针的指针
  2. 入门十大Python机器学习算法(附代码)
  3. C++ 二进制文件读操作
  4. 亡命逃窜(nyoj523广搜)
  5. LeetCode(344)——反转字符串(JavaScript)
  6. 开课吧:继承是什么?继承的基础有什么?
  7. TextMate里添加Theme
  8. 马尔科夫链(Markov Chain),机器学习和人工智能的基石
  9. css3径向渐变详解-遁地龙卷风
  10. PHP住院收费系统管理,住院收费管理系统
  11. 读博士或者拿到博士学位以后经历和感受是怎样的?
  12. 一位 70 后程序员的 24 个职场感悟
  13. 组图:1912年斯德哥尔摩奥运会
  14. 企业网络流量分析监控软件
  15. 中科大计算机科学夏令营,2019中科大计算机夏令营机试
  16. 35岁互联网人只会被清退,是我听过最大的谎言
  17. mysql查询2开头的_MySQL-2.查询
  18. 国外大学php课程,美国大学课程视频
  19. 在线播放器代码大全(avi/mpg/rm/wmv/)
  20. 罗马数字转换阿拉伯数字(Java版,考虑较为全面)

热门文章

  1. 前端页面制作滚动字幕
  2. 4计算机硬件由,计算机硬件系统由(4)大部分组成,其中存储器是硬件系统中的记忆设备,(5)。A.运算器、控制器、存储器、...
  3. 华为公司的管理者培养路径图
  4. python学习笔记---中文词云
  5. 揭秘互联网人的终极绝招!学会这招受益终生
  6. java类嵌套_java-嵌套类
  7. selenium wedriver镜像地址
  8. java随机星星怎么闪_实现星星闪动的java代码
  9. 有声阅读狂欢下更需要冷静,荔枝、蜻蜓、喜马拉雅们需要上车
  10. jquery金额数字转大写