华为19秋招算法笔试

我的想法也不够成熟,如有谬误,欢迎在评论指正,谢谢~! 第一题 数轴X上有两个点的序列A={A1,A2,…,Am}和B={B1,B2,…,Bn},A_i和B_i均为正整数,A、B已经从小到大排序,A、B一定不为空,给定一个距离R,列出同时满足如下条件的所有(Ai, Bj)数对: 1. A_i <= B_j 2. A_i 和B_j的距离小于等于R,但如果A_i找不到R范围内的B_j,则列出距离它最近的一个B_j当然这种情况要满足条件1,如果找不到,就抛弃A_i 输入描述: 按照人易读的格式输入一行数据,输入A和B已经排好序,A和B的大小不超过50, 正整数范围不超过65535 输出描述: (A_i, B_j)数对序列,排列顺序满足序列中前面A_x <= A_y,前面的B_x <= B_y,因为输入的A和B已经排好序,所以实际输出结果不用特意排序,排序 去看看~

基于Prolog的人参专家诊断系统

目 录 1. 系统简介 1 1.1 系统概述 1 1.2 目的与意义 1 1.3 功能需求 1 1.4 系统结构图 2 2. 功能介绍 2 2.1 底层逻辑介绍 2 2.2 数据库 3 2.3 知识库 5 2.4 模型库 7 2.5 用户管理 8 3. 开发平台及开发工具介绍 10 3.1 开发平台介绍 10 3.2 开发工具介绍 14 系统简介 1.1 系统概述 该系统为人参专家诊断系统,主要对象是从事人参种植工作的农民。主要功能是实现以人参病植、虫害等信息维护为主要功能的数据库,基于Prolog的规则库,以及Prolog推断病植信息和虫害信息的模型库。我们利用药用植物病虫害数据库(pets.com.cn)中提供的数据及专家知识,为从事人参种植工作的农民提供服务。该系统目前已经成功线上部署运行:https://expert.goesbest.cn(用户名和密码均为admin) 1.2 目 去看看~

Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba(KDD 2018)

Abstract 本文的贡献是在传统的word2vec基础上,为了减轻数据系数和冷启动问题,将辅助信息和合并到图embedding框架中。为了将辅助信息合并到图embedding中,本文提出了两种方法,离线的实验结果表明包含了辅助信息的方法要由于不包含辅助信息的方法。在淘宝的A/B测试中也验证的模型的有效性和可行性。 Introduction 本文抽取的关键问题是:淘宝上有10亿用户和20亿件商品,如何帮助用户快速找到所需有趣的商品。尽管当前在学术界和工业界各种推荐方法已经取得了成功。淘宝面临的三大技术挑战:大规模、数据稀疏、冷启动问题。为了解决这些问题,淘宝设计了一个两阶段的推荐框架,召回和排序。在召回阶段,为用户生成一组候选的商品集合;在排序阶段,训练一个深度神经网络模型, 根据用户的偏好对候选商品集合排序。每个阶段有不同独特的问题,每个阶段的目标也不同,这也导致了不同的技术解决方案。 去看看~

面试时候需要做的准备(持续更新~)

快速排序 class Solution { public: const int N = 1e6+10; void quickS(int l, int r, vector &v) { if(l >= r) return; int mid = v[l], i = l – 1, j = r + 1; while(i < j) { do i++; while(v[i] < mid); do j--; while(v[j] > mid); if(i < j) std::swap(v[i], v[j]); } quickS(l, j, v); quickS(j+1, r, v); } vector sortArray(vector& nums) { quickS(0, nums.size() - 1, nums); return nums; } }; KL散度 KL散度不能作为距离,因为不满足距离的对 去看看~

复旦暑期学校有感

学术视野的差距 前两天去了一趟复旦,能感受到好学校和坏学校的在学术视野上面有很大的差距。发现问题比解决问题重要得多,在能力方面的差距可以弥补,但是在学术视野方面如果能够有有格局 视野的导师给你指点是最好不过的,但是TOP 1%的导师都在好学校,更重要的是这波人相互关系还不错…,所以深处偏远地区的我,还是要多多搜集大牛公开的演讲和ppt,买一些大牛的书,借此希望自己的研究能够紧跟时代的步伐,了解到大牛是如何思考和考虑问题的。现在还是先搬砖,了解到大牛的思考逻辑 这样才是解决之道。 一语点醒梦中人 在暑期学校的过程中,老师讲的知识有不少我都自己读在线的pdf了解过,但是理解的不够深刻。这次暑期学习的意义就在于老师只通过只言片语就把我脑中的“知识孤岛”联系在了一起,让我惊叹老师的水平高超。比如在EM算法中,我只是知道要先写Q函数,然后梯度计算求出\theta^{(0)},然后再带入Q函数中。但是 去看看~

六月份的思考和总结

每次开始之前,我总是要问问我自己,这周你学会了什么? 这周我主要在完成作业,搭建了Hadoop全家桶完成Hbase读写,利用Mahout做数据分析。除此之外,刷题也刷了20多道题,现在我对尾递归等细节方面有了更加深刻的理解。 我发现我现在有一个比较严重的问题,那就是“想的太多,做的太少”。脑袋里面的Idea有很多,但是懒得去编程实现,为什么懒得去实现呢? 首先:我觉得把一天的时间花费在Debug上实在是一个很奢侈的事情, 其次:我觉得如果忙活了一天效果反而不好这样太打击人了。 我知道作为一名合格的算法工程师,一定要多思考,多试验。多总结,但是我还是不能克服自己的懒惰呀… 这里一定要多多留意。 最后,不得不羡慕一个师兄呀。现在去头条实习了,着实很让我羡慕,我不知道我这一年的努力会为我的日后带来哪些回报 希望一分耕耘一分收获吧。

CoNet: Collaborative Cross Networks for Cross-Domain Recommendation(CIKM 2018)

模型复现: import torch from torch import nn import numpy as np import pandas as pd from torch import nn from torch.nn import functional as F class CoNet(nn.Module): def __init__(self, n_users, n_source_item, n_target_item, n_factors=80): super().__init__() self.user_factors = nn.Embedding(n_users + 1, n_factors, sparse=True) self.source_item_factors = nn.Embedding(n_source_item + 1, n_factors, sparse= 去看看~

Pytorch 分类loss总结

在分类问题中,Pytorch提供了多种函数,那么哪种函数是使用softmax;哪些函数不用使用softmax就可以直接套loss;又有哪些函数使用logsoftmax?这里面有一些细节需要我来研究,我找到了pytorch在github上面的这部分代码,以此文记录一下我的学习历程。 分类问题有两种思路: 第一种需要对标签进行处理 NLLLoss(_WeightedLoss) 输入 这个函数的作用适合于样本数量不均衡的情况下,其中_WeightedLoss的维度是(样本个数,类别个数),数值代表了给每个类别分配的权重。这个函数接收到输入后,会给出每个类别的对数概率(因而比较适合样本不均匀的条件)。(也就是说如果你使用NLLoss的话,你可以在forward部分直接在最后一个隐层设定为(类别维度),然后套上一个LogSoftmax层就好了。) 预测 对于predict阶段代码中也给出了方法,可以 去看看~

Interpreting User Inaction in Recommender System(Recsys 2018)

Abstract 用户与推荐系统的交互有三个方面:浏览,产生点击行为,不作为.在这项工作中,我们在推荐系统中布置了一项调查,根据人类心理上决策理论,中用户和推荐系统的角度解释用户不作为的意义.本文进一步推断用户不作为的原因,并使用离线数据集进行验证,实验表明这种模型能够为推荐系统在用户行为预测等方面为推荐系统提供益处.这篇文章有一些意思,将实证研究和推荐系统结合推断人们不点击推荐系统推荐商品的原因.问卷调查对于周围偏向文科的同学来说不是一个新鲜事,但是”文理结合”这对于我来说还是有一些新鲜感的. Introduction 想想一下实际的业务场景:你的一个朋友向你寻求餐馆推荐.你告诉她附近有一家寿司店, 但是她下周没有去那里.我们需要考虑的是,经过这个事情,对寿司店的偏好是什么?为什么没有选择去你推荐的寿司店呢? * 如果她在一周后再次向你寻求参观推荐,你会再次向她推 去看看~

Explainable Cross-Domain Recommendations through Relational Learning(AAAI 2018)

Abstract 这篇文章是我见到的发表在AAAI上的一篇短论文,本文提出了一种可以生成关于跨领域问题的可解释推荐规则.本文的贡献是:使用关系生成规则,这些规则能够解释为什么把商品推荐给特定用户. 2. 使用用户在不同领域的商品偏好, 不同领域的商品偏好能够为用户提供全新的建议. 为了说明我们的方法确实可行和适用,本文在音乐和电影领域进行了实验. Introduction 本文在开头的部分引出了推荐系统的几大关键问题:推荐准确性,冷启动问题,商品新属性,推荐新颖性与多样性,同时解决一个问题会导致另一个问题,这是一种权衡.在作者看来,这些问题之所以没有得到良好解决的原因是因为当前主流推荐算法似乎被放入了一个黑盒中,算法产生推荐结构后,很难解释为什么会对一组数据输入给出这个推荐结果.如果我们能够理解推荐背后的原因,我们相信我们将能够找到更有效地处理此类问题的方法.如果我们能够理解推荐背后的原因 去看看~

《深度学习在美团推荐平台排序中的运用》知识点整理

深度学习在美团推荐平台排序中的运用这篇文章写得非常好,但是对于小白的我来说有一些知识点不是那么容易啃,所以在此特意做一个整理,防止自己以后会忘记…本文是对《深度学习在美团推荐平台排序中的运用》的二次加工,里面有我自己对这篇文章的理解,无意侵权,如有违反,我愿意尽快删除。 美团推荐系统面临的挑战 首先美团点出了美团O2O生活服务平台目前在推荐系统中面临的挑战,主要有以下两点: 1. 业务形态多样性:除了推荐商户外,我们还根据不同的场景,进行实时判断,从而推出不同形态的业务,如团单、酒店、景点、霸王餐等。 2. 用户消费场景多样性:用户可以选择在家消费:外卖,到店消费:团单、闪惠,或者差旅消费:预定酒店等。 (在读到这里之前,需要先想想“如果我面临这个问题,我是怎么解决的?我有没有什么更好的解决办法?”) 针对上述问题,美团定制了一套完善的推荐系统框架,包括基于机器学习的多选品召回与排序策略, 去看看~

A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems(2015)

Abstract 在这项工作中,本文提出了一个基于内容的推荐系统,以解决推荐质量和系统可扩展性.根据用户的浏览历史记录和搜索查询,文章提出了一些能够完美刻画用户的特征表示.本文使用深度学习方法将用户和项目映射到潜在空间,在该潜在空间中用户与其首选项目之间的相似性最大化.引入基于多视图的深度学习模型来学习跨领域和用户特征的项目特征. 该用户的特征表示能够使得模型在没有产生购买交易的情况下,通过它们足够的搜索和历史行为来为用户产生推荐.将不同领域的数据组合成一个单个模型有助于提高所有领域数据下的推荐质量,以及具有更丰富的用户潜在向量表示. Introduction 本文在开始部分指出了协同过滤算法不足之处:在提供高质量推荐之前需要相当多的历史记录.这个问题被称为冷启动问题.因此,传统的CF方法通常无法为新用户提供高质量的推荐.另一方面,基于内容的推荐方法从每个用户和/或项目中提取特征,并使用这 去看看~

Learning to Rank using Gradient Descent

Abstract 本文提出了 RankNet, 引出pairwise排序方法梯度下降法来学习排序. 我们使用神经网络来实现这个 idea本文使用 toy data来测试结果.这是第一篇关于 AUC 优化 pairwise 方法的论文, 虽然已经过去了几年,但是对于初学者的我来说仍然具有很大的意义. Introduction 我们使用神经网络来学习排序函数, 一个常见的例子是搜索引擎排名.对于此问题,数据由一组查询关键字组成,对于每个查询关键字,都包含一组返回的文档.在训练阶段,一些查询关键词/文档对对被标记为相关性(“优秀匹配”,“良好匹配”等).因此所有的数据集中的数据都会参与排名,只有满足召回条件的文档才会参加排名.本文的贡献在于1.不需要向 point wise 那样需要回归预测相关性,而是直接进行排序. 2. 提出 pair wise 的概率代价函数,这种方法不是特定于基础学习算法 去看看~