Windows给力!可以扔掉Linux虚拟机了!

Windows给力!可以扔掉Linux虚拟机了!
文章转自:小姐姐味道(微信公众号ID:xjjdog)
Linux在程序员中属于高逼格的存在,当然安装了图形界面的程序员要减分,毕竟你需要用鼠标了!程序员的桌面不能比谁的更酷更炫,要比谁的屏幕多,桌面颜色少!
Windows向来是没有这种光圈的,因为它的目标是白痴用户。当然它的cmd命令从始至终充满了科技的味道,一直都是黑白两色。
微软最近几年终于要照顾一下苦逼的开发者了。两个拿得出手的产品,一个是vscode,另外一个就是Windows Terminal
为什么终端这么重要呢?对于一个程序员来说,没有了命令行相当于少了半条手臂。这条手臂到底美不美,壮不壮,要看命令行终端好不好用。
以至于微软的员工,很长一段时间在公司都抱着一台Mac,这多打脸啊。
现在,终于不用这么纠结了。Windows和Linux终于合体了。在同一个系统下,你既可以玩游戏,又可以开开心心的写命令行了,而且有了海量的Linux工具支持。

安装Windows Terminal

在远程连接其他Linux的时候,我通常使用Xshell,就因为它长得比较漂亮耐看。
在Windows上,就可以安装Windows Terminal。有点类似于MacOS上的iTerm,可以说是Windows下最舒适的终端。
安装Windows Terminal需要从应用商店去获取,就是下面这个按钮。
Windows给力!可以扔掉Linux虚拟机了!
在搜索框里搜索Windows Terminal,即可找到这个软件。比较人性化的一点是,它不像Mac的应用商店一样,需要你先准备一个账号。WT不需要登录即可获取。
如果你的页面一直打转也不要紧,关闭重新打开几次就好了。由于众所周知的原因,国外网站就没有几个不转圈的。
Windows给力!可以扔掉Linux虚拟机了!

安装Ubuntu子系统

此时,我们仅仅安装了一个命令行终端而已,离我们扔掉Linux的目标还差上一小节。别担心,下面就介绍怎么在Windows上安装Ubuntu
方案一、通过虚拟机安装Linux,然后终端去访问?。这种方案太低级,是我过去一直用的方式,充满了坎坷。
方案二、划分一个分区安装Linux,然后重启的时候进行切换。开个玩笑,这种方式更加落后,属于古董级别玩家的产物。
我们只需要在系统上开启子系统功能,然后在应用商店安装Linux就可以了。
有多简单?简单到你操作的时间可能都没看我唠叨的时间花费多。
如下图,在控制面板,找到程序选项,点击  “启用或关闭Windows功能”。
Windows给力!可以扔掉Linux虚拟机了!
从弹出的对话框里,划到最下边,然后给“适用于Linux的Windows子系统“,打勾,完事!
Windows给力!可以扔掉Linux虚拟机了!
从应用商店安装Ubuntu系统,这个系统将会以软件的形式存在。我这里选择的是LTS版本,可以看到给它打分的人并不多,可能大多数都是像我一样没有微软账号的游客。
Windows给力!可以扔掉Linux虚拟机了!

事后配置

此时,神奇的事情发生了。在我们的Windows Terminal右上角,有一个向下的箭头,点击它,就可以看到刚刚安装的Ubuntu。
在Windows上离着Linux,只差一次点击而已。
Windows给力!可以扔掉Linux虚拟机了!
进入Linux系统之后,我们就可以像配置一个普通Linux一样配置这台机器。
首先把ubuntu的软件源给换掉。编辑/etc/apt/sources.list文件,把它的内容换成下面的源。
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
然后,安装最好用的oh-my-zsh。先用sudo apt install zsh安装shell终端,然后运行下面的命令。
sh -c $(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)
等待一小段时间,我们的终端颜值就更上一层楼了。
如果你想要你的终端更加漂亮,可以参考下面的主题页面。毕竟命令终端是你每天都要面对的,比你面对自己女朋友的时间还要长,长得丑是影响心情的。
https://terminalsplash.com/
Windows给力!可以扔掉Linux虚拟机了!
还有最后一个问题。我们Linux系统中的文件,在Windows中如何访问呢?
这个就有点魔幻了。在Linux下执行下面的命令。
cd /home
explorer.exe .
上面的命令,即可打开Linux目录对应的Windows目录,从文件管理器中我们就可以访问到。
为了操作方便,我把这个长长的目录,映射到了Z盘上。如图,下次在访问Linux的时候,直接访问Z盘就可以了。
Windows给力!可以扔掉Linux虚拟机了!

End

可以看到我们在介绍前面一些名词的时候,乱了阵脚。有时候说是Ubuntu,一会儿说是Linux,一会儿说是子系统。
这有两个原因。一个原因是我第一次用这个东西,比较激动,以至于语无伦次。另一个原因,就是我的系统现在已经变的四不像,WindowsLinux已经深度融合,不分你我,甚至网络也不分什么NAT桥接,直接是共享的。
再比如,我在Linux上,直接执行cmd.exe,竟然进入了Windows的命令行终端,以至于我现在的脑子都是蒙圈的。
想当年扔掉Windows、扔掉Linux,选择了MacBook,就是因为上面即有漂亮的图形终端,又有好用的命令行,现如今Windows也有了。
我还有什么理由坚持我的MackBook呢?可能是因为它比较贵,咖啡厅里拿出去比较有面子吧。

转自:https://mp.weixin.qq.com/s/NCmPkHsHo8uem_4KH8_glA

楼市不平静!一个炒房的时代要结束了!

水库八年,以上全错?

来源:中产先生(本文不代表金融纵横谈立场)

楼市不平静!一个炒房的时代要结束了!

这几天,楼市不平静。前有恒大债务问题被热炒,后又炒房大神欧神被永封,有人说一个炒房的时代要结束了。

– 1 –

欧成效其人

说起水库论坛,国内炒房者无人不知,它的创办者更是被炒房者封神。

看看有好事者参考《权游》给欧的加冕:

炒房者、水库帝国缔造者、人文经济学会理事(荣誉的)、中华奥派先民的灯塔、老破大永久的解放军、银行流动性恫吓者、破s机前不焚的右手、打破中产镣铐的思想征服者、急富青年的启明星大将、知识星球上的24小时守望者、功夫财经八大选帝侯、西港理想国唯一的真王、亿万屌丝的鞭笞者和带头大哥……

人们对欧成效的评价是两极的:

炒房者把欧奉为神明,把他的炒房技法和知识体系当成圣经,认为他的理论拓展了自己以往的认知。

刚需则把欧斥为贪婪的炒房者,投机套利的吸血虫,骗子,经济的癌细胞。

这两条鄙视链的斗争,一直持续到水库被永封。

怎么形容欧呢?

他当然不是神,当然也不是酒囊饭袋,更符合他的描述是一个离经叛道者。

欧很聪明,是个学霸,思想比大多人成熟的早,是一个极度的自由主义者,一个马基雅维利主义者和道教信徒。

马基雅维利是意大利政治家和历史学家,以主张为达目的可以不择手段而著称于世。

欧杂揉了经济上奥派的自由主义、政治上马基雅维利的实用主义以及道教崇尚规则不重道德,形成了自己的一套体系。

这也就是为什么他能够获得大批拥趸的另一个原因,除了炒房快速赚钱的效应,就是欧这一套“离经叛道”的知识体系让粉丝大开眼界。

在这套理论下,多张信用卡循环套取首付、做高评估价格、多张身份证、假离婚破除限购等钻政策漏洞的行为也就有了合理的正当性

如果有人质疑,水库粉丝就会群起而攻之,斥之为屌丝、傻X。

而这些粉丝中,不少人就是为了摆脱屌丝身份不惜全家开卡上杠杆炒房的普通人。

欧成了他们的救命稻草。

– 2- 

水库论坛时代

2002年,据说欧炒外汇失败,开始炒房,连续在天涯发、篱笆表看多楼市的帖子,他认为随着货币超发,币值会贬值,而房子是保值最好的资产,未来一定会大涨。

但是,当时正是楼市空头的天下,现在被人人喊打的谢国忠就是当时的“欧神”,那篇帖子跟帖自然都是嘲讽。

不过欧没有纠结这些,而是实地走访,混迹于中介、老破大、地下室……修炼内功心法,终于总结出一套炒房独家心法,逐渐成为南派炒房的领袖人物

其实你如果看早期欧的观点,真的会认为他是一个很敏锐的投资者,比如他投资体系有三个部分:

1、构建以房贷为中心的资产组合包。

2、尽全力比别人多负债,跑赢全社会大盘。

3、负债多少决定以后人生不同际遇的最重要变量。

核心一句话:用超乎想象的高杠杆大量买房,是普通人实现财富增值和阶层跨越的不二法门

这些理论现在看来稀松平常,要知道在当初是很罕见的。

2008年,四万亿下去,中国开启了楼市长牛的十年,欧终于也迎来了他的春天,除了资产暴涨之外,他还建了一个论坛开始“收徒”。

2012年,水库论坛成立。

不再借用第三方平台,欧的理论也能更完整的呈现,比如他的“体用术”

体和用大家都不熟知,但是“术”后来被人们广为流传,叹为观止。

在“术”这一块,欧将全职炒房化解为67个步骤。其中有三个重要环节:

一是利用多张信用卡循环套取完成原始积累、二是利用养流水和高评方法,循环获取低成本资金、三是利用多张身份证和假离婚等方式,破解限购障碍。

简化一下就是:信用卡套现、假流水骗贷、代持屯房

当然还有一些小伎俩:利用各种手段榨干本家、娘家亲戚和身边朋友,全家开卡,获取大量低价资金,重仓房产,几套在手,余生无忧。

这种看似不怎么道德的做法,也被人质疑过,但是都会被欧斥为:这就是你一辈子穷的原因

这么做当然是擦边球,但是因为打着屌丝也能翻身的旗号,广受拥趸追捧,到了一呼百应,闭眼买房的程度。

有的发财了叩拜如捣蒜,但更多人苦不堪言:

楼市不平静!一个炒房的时代要结束了!

楼市不平静!一个炒房的时代要结束了!

– 3 –

后水库论坛时代

2016年,史上最严调控开始,这也是水库论坛的一个转折点。

国家把房价拉了一波之后迅速冷冻,接着就是史上最长到今天也没有松绑的调控。

水库操盘的诸如沈阳、重庆、贵阳的炒房行动都被套了。

其实我一直不太了解水库论坛之前的盈利模式,难道是和开发商抽佣?这个就不得而知了。

总之,到了2017年,水库开始卖课了,入圈会员费3000一个。

再到最后,就有点看不懂了:

水库开始给网贷互金做宣传,据说欧还打算做一个P2P代持系统。

然后就是那个大家熟知的柬埔寨西港土地,欧在全国各地巡回演讲一年,鼓吹“卖掉深圳的房子去柬埔寨”,很多拥趸卖房套信用卡举全部身家买了西港,结果一地鸡毛,很多人解套还不知道何年何月,月供肯定是还不出了。

之后,水库论坛微信号开始被封禁,一个月、两个月,2020年9月25日,水库发了最后一篇文章,我没看到,据说是借着上海开放户口继续看多楼市,并且介绍一些假结婚获得上海户口的灰色操作,导致直接被全网封号。

从2012年10月成立到现在,还差5天就8年的水库论坛,一去不返。

– 4 –

结语

超长的调控即使疫情也没松绑,以恒大为代表的房企债务危机、以水库为主炒房群体被打压,是不是意味着,炒房的时代要结束了。

水库论坛在“房住不炒”的当下一再鼓吹炒房,也算是求锤得锤。

借欧的标志性语言,水库八年,以上全错

希望我们能有一个更好的发展模式和投资渠道。

就这样。

转自:https://mp.weixin.qq.com/s/VveIuSy1pHQ6-MDVbdCSQg

成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

hello,老铁们大家晚上好!

昨天那一篇文章首战即终战!为何我觉得解放军飞临台湾领空是高考前的二模考试?

很火爆,写得有些仓促都是我的一家之言,说得不是那么准确的地方还请大家批评指正。

但火爆背后,留言也有点尖锐,在现在这个敏感的时间点,留言被封都只是时间问题!

精选几个评论:

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

昨天的投票结果如上图,也能说明很多问题,反正我的态度是希望尽早完成台湾回归,越早越好!我不想再拖到我们下一代,下下一代。。。。

说完了昨天遗留的台湾问题的讨论,今天又出来一个重磅消息:李嘉诚的和记黄埔被严查了!

9月23日,一份《关于禁止和记黄埔地产(成都)有限公司融资、贷款和重大资产重组的函》的文件在网上流传。这份流传的函件显示是由成都市高新区财政金融局向辖区内金融机构发出。

一位接近成都高新区金融财政局人士证实,该局确实发过上述函件。

函件指称,和记黄埔地产(成都)有限公司存在捂地、捂盘不良行为,严重影响区域房地产市场平稳发展,经研究,禁止高新区内金融机构向和记黄埔地产(成都)有限公司及项目提供新增融资、贷款,禁止高新区内金融机构向和记黄埔地产(成都)有限公司进行重大资产重组提供帮助。

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

目前,和记黄埔(成都)项目只有位于成都高新区的南城都汇项目。2004年,长实集团以21.35亿元总价拿下,成交楼面价1030元/平米,这个占地面积达到1036亩的超级大盘计划分8期来建设,目前为止,南城都汇只推出过6期产品。

 

香港一学生的作文《李家的城》,其中写道:

李嘉诚,名副其实,香港就是李家的城。他是我们的上帝,万物都是他所创造。当然,香港传说中的三位一体就是他们:李嘉诚、李泽楷、李泽钜。他们的力量远超人类,为打工仔遮风避雨,使香港免受风球、暴雨的侵袭。他们付出了那么多,只是希望我们可以准时上班,不准时下班。这都是诚哥的伟大。”

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

随后,该作文引来众多香港网友的共鸣。tea-for-two也说:“写得好真实,其实就是不去商场消费,港岛居民就连在家,足不出户都要付钱给李家,灯总要开吧,电费总要给吧,李家的城啊。”

 

Sunny_GuYu说:“只是希望我们可以准时上班,不准时下班。”真tm绝。

 

“百乐门小艳红”说,一下就点出了香港的两大问题:寡头垄断以及不健康的加班文化。

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

可以这么说,在所有的欧美亚发达经济体中,香港底层老百姓是最苦的,没有之一,看看上面李嘉诚给他们准备的牢笼吧,有些底层百姓就是一辈子住在这里面,你还别嫌弃这个牢笼,这个每个月一个笼子也要2000港币以上!

资本是血腥的,是吃人的,但香港这种特殊的财阀垄断体制,出人意料让李嘉诚等四大家族变得更加嗜血,更加残暴!牢牢掌握了千万老百姓的生死,而且牢不可破。

归根究底,香港经济的逐渐衰败和地产财阀的兴盛密不可分!

李嘉诚们在香港嗜血的根本原因在于:

1 地产商联合起来控制政府,严格控制土地出让数量,比如市场每年需要新增10万套房屋,只出让1万套的土地。

2 利用土地升值赚到的钱,控制各种香港公用设施,水电煤气地铁便利店,你能想到的轻松赚大钱的生意都在他们手里。

3 严厉打击高科技产业,利用土地税和高地租,让本来有希望成为小硅谷的数码城变成房地产项目,没有高科技年轻人再也无法跳跃阶层,老老实实被李嘉诚们吃干抹净!

4 收买媒体学校等,让年轻人没有发声渠道。

李嘉诚来内地开发房地产也有20-30年了,给内地带来了香港独特的规则:

1 招拍挂制度,谁出价高土地归谁

2 公摊面积,2000年之前我们恐怕还不懂什么是公摊,现在有的公摊面积一套100平房子有20-30平米很吓人,欧美一般都是套内面积!

3 囤积居奇,尽量不开发少开发,等土地升值

李嘉诚最得心应手的就是炒地皮。众所周知,李嘉诚旗下的房地产项目开发速度都非常的慢,这与碧桂园如今这种拼命赶工的做法完全不同。而李嘉诚旗下的房地产项目之所以开发时间周期长,那是因为李嘉诚拿地时间非常早,而随着内地房地产市场的发展,地皮就会随之涨价,这部分土地溢价带来的收益也远远超过单纯的地产开发收益。

其中,李嘉诚在北京的一个房地产项目,1993年拿地,直到2018年才开发完成,整个项目耗时25年,但是房价却从2000元每平米涨到了超过40000元每平米。

在2006年,李嘉诚旗下的长实集团以22亿元的价格拍下上海“高尚领域”项目,而截止到如今还未完全完工,而这个“高尚领域”的项目就是近日传出来李嘉诚即将出售的位于上海的最后一个房地产项目,估值约200亿元。

而2008年,长实集团在重庆以20亿元拿下的土地,也在2018年以200亿元的价格出售。当然,像李嘉诚这种拖延开发的策略,也并不是没有受到过处罚。此前,李嘉诚在东莞的一个房地产项目,就因为囤地而被罚款8000万元。

 

靠囤地赚钱,这当然令大家愤怒的,即使是李嘉诚也不能例外。但屡试不爽的背后却说明在道德判定之后,市场却认为它并没有违规。很多人怀疑,李嘉诚为什么10年不开发还能继续持有该地块?因为我们都知道“地块2年不开发就会被收回”。

李嘉诚囤地赚钱能够成功说明规则出了问题。

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

那么问题到底出在哪?

 

“地块2年不开发就会被收回”和要求开发商接受公积金贷款买房有很多相似之处,规则是一回事,落地执行又是一回事,所以李嘉诚能够屡试不爽。

 

就拿“地块2年不开发就会被收回”这个规则来说吧,这里的“收回”也并不是不可破的,只要找到一些“不可抗力因素”就可以规避,这对开发商来说并不是什么难事。

再回来看看李嘉诚这些地,基坑还是挖了,进度虽然挺慢,但那是因为方案在调整,说我没开发不行。

 

开发商可以操作,但上面也并不是吃素的。他们想收回也是有很多办法的。开发商拿了一大块地,开发商大多采用分期开发,产权也是分成很多块的。某个产权地块两年不开发,照样能收回。

 

所以类似囤地这种事能够成功,是因为有默契存在的


为什么我认为李嘉诚囤积居奇的行为是吃人的行为?

1 正是因为很多优质地块囤积在李嘉诚们的手里,市场缺少房源自然房价越炒越高!

2 地产增值往往伴随着地方政府举债进行市政建设,道路桥梁地铁学校购物中心等开发花了巨资,有些城市一年花几千亿进行市政工程,这方面的花费李嘉诚没有掏出来一毛钱,却白白享受增值。

当然市政花的钱最后都是买房人买单,高房价对应高负债,钱从老百姓的口袋落入李嘉诚的口袋,然后李嘉诚带着几千亿前往英国投资避险。

这就是赤裸裸的现实啊!

3 李嘉诚囤积居奇的行为助长了国人炒房的风气,反过来房价越来越高,依附在房产上的蛀虫也越来越多。地租越来越高,实体经济越来越困难!

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

今年因为疫情,大概20%的电影院倒闭了,30%的小餐馆倒闭,其中很大原因就是因为房租太高,如果房租低还能再扛一段时间,高额房租同时也在不停劝退优秀的学生,还是回老家吧!

这20多年来,李嘉诚等香港资本在内地享受了太多超额的超国民待遇,有时候法律奈何不了他!他们遵循的原则和香港一样,房子是用来炒的,不是用来住的,地皮是用来囤的,不是用来开发的!

 

这和目前房住不炒的基本国策产生了巨大的分歧,所以我认为成都对李嘉诚下手可能代表着风向改变,意图敲山震虎!

 

李嘉诚代表着最大的香港资本,敲打李嘉诚就意味着对所有房地产商一视同仁,告诫他们不要再囤积居奇了!连李嘉诚都被干了,别的资本也就不太敢了!

 

震虎震的是什么老虎?

 

震的就是部分还不死心,不好好开发老是想囤土地不开发赚大钱的开发商,同时震的哪些到现在还是想着炒房的炒房客们!

 

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

我在微博说,敲打李嘉诚震融创恒大碧桂园,不一定对,很多朋友也提出了自己的观点

7月23日晚,李嘉诚的长实集团(01113.HK)发布公告,出售成都南城都汇项目50%股权,作价约78.47亿元。

买方为一家名为RZ3262019 Limited的公司,股东分别为禹洲集团控股有限公司和成都瑞卓置业有限公司,各占股50%。

也就是说,在这个交易中,长实集团子公司将所持有的成都南城都汇项目估价约为78.47亿元港币,卖给了由禹洲集团和成都瑞卓置业分别持有50%股权的受让方。通过出售该项目,长实集团未经审核利润为港币38.11亿元。

因此,此次被政府部门禁止和记黄埔融资贷款,受影响的是接手方禹洲集团和成都瑞卓置业。

不过,禹洲集团相关人士表示,这则处罚是针对原来股东,也只面向成都高新区内的金融机构,对公司收购的项目没有影响,他们正在争取项目尽快入市。

接手方在进入南城都汇项目之后,已经遇到诸多历史遗留问题。

现在接盘的是禹洲集团和成都瑞卓,他们准备在收购以后按照新项目来核定预售价格,拟提高售价,但是相关部门认为交易是股权转让不能认定为新项目,只能按照续建项目核定价格,只能按照续建项目核定价格,就是说不能超过上一批次备案价或者是预售价。

 

这几年刚毕业的大学生被高房价坑惨了,面对动辄5万7万10万的北京上海深圳房价,仅仅一万多的月薪怎么买房?怎么安心工作和搞科研?怎么让人安居乐业?

大快人心!成都果然对吃人的李嘉诚下手了!敲山震虎到底意欲何为?

安得广厦千万间,大庇天下寒士俱欢颜?

 

反正我一直觉得李嘉诚们的吃相太难看了,这次成都敲山震虎的行为不知道大家怎么看?欢迎在评论区留言!

 

转自:https://mp.weixin.qq.com/s/8gOLec7U4m8IkZFrrQt1pA

23 张图解,带你入门推荐系统

做广告业务1年多时间了,但是平时的工作主要和广告工程有关,核心的广告算法由 AI 部门支持,对我们而言可以说是「黑盒般」的存在,只需要对训练好的模型进行调用即可。

近期,我打算系统性地学习下广告中的搜索和推荐算法,当然更多是从工程的视角去弄清楚:算法的基本原理、以及面对线上海量数据时算法是如何解决性能问题的?整个过程,我会将有价值的技术点输出成系列文章。

这篇文章属于推荐系统的入门篇,本文暂不考虑线上环境的海量数据,目的是了解清楚推荐系统的基本构成,我会通过图解推荐算法以及程序demo的形式展开,内容包括:

23 张图解,带你入门推荐系统

01 走进推荐系统的世界

“啤酒与尿布” 的故事相信很多人都听过,年轻爸爸去超市购买尿布时,经常会买点啤酒犒劳自己。因此,沃尔玛将这两种商品进行了捆绑销售,最终获得了更好的销量。

23 张图解,带你入门推荐系统

“啤酒与尿布”的故事
这个故事背后的理论依据就是 “推荐算法”,因为尿布和啤酒经常出现在同一个购物车中,那么向购买尿布的年轻爸爸推荐啤酒确实有一定道理。

1. 推荐系统到底解决的是什么问题?

推荐系统从20世纪90年代就被提出来了,但是真正进入大众视野以及在各大互联网公司中流行起来,还是最近几年的事情。

随着移动互联网的发展,越来越多的信息开始在互联网上传播,产生了严重的信息过载。因此,如何从众多信息中找到用户感兴趣的信息,这个便是推荐系统的价值。精准推荐解决了用户痛点,提升了用户体验,最终便能留住用户。

推荐系统本质上就是一个信息过滤系统,通常分为:召回、排序、重排序这3个环节,每个环节逐层过滤,最终从海量的物料库中筛选出几十个用户可能感兴趣的物品推荐给用户。

23 张图解,带你入门推荐系统

推荐系统的分阶段过滤流程

2. 推荐系统的应用场景

哪里有海量信息,哪里就有推荐系统,我们每天最常用的APP都涉及到推荐功能:

  • 资讯类:今日头条、腾讯新闻等
  • 电商类:淘宝、京东、拼多多、亚马逊等
  • 娱乐类:抖音、快手、爱奇艺等
  • 生活服务类:美团、大众点评、携程等
  • 社交类:微信、陌陌、脉脉等

23 张图解,带你入门推荐系统

头条、京东、网易云音乐中的推荐功能

推荐系统的应用场景通常分为以下两类:

  • 基于用户维度的推荐:根据用户的历史行为和兴趣进行推荐,比如淘宝首页的猜你喜欢、抖音的首页推荐等。
  • 基于物品维度的推荐:根据用户当前浏览的标的物进行推荐,比如打开京东APP的商品详情页,会推荐和主商品相关的商品给你。

3. 搜索、推荐、广告三者的异同

搜索和推荐是AI算法最常见的两个应用场景,在技术上有相通的地方。这里提到广告,主要考虑很多没做过广告业务的同学不清楚为什么广告和搜索、推荐会有关系,所以做下解释。

  • 搜索:有明确的搜索意图,搜索出来的结果和用户的搜索词相关。
  • 推荐:不具有目的性,依赖用户的历史行为和画像数据进行个性化推荐。

  • 广告:借助搜索和推荐技术实现广告的精准投放,可以将广告理解成搜索推荐的一种应用场景,技术方案更复杂,涉及到智能预算控制、广告竞价等。

02 推荐系统的整体架构

23 张图解,带你入门推荐系统

推荐系统的整体架构

上面是推荐系统的整体架构图,自下而上分成了多层,各层的主要作用如下:
  • 数据源:推荐算法所依赖的各种数据源,包括物品数据、用户数据、行为日志、其他可利用的业务数据、甚至公司外部的数据。
  • 计算平台:负责对底层的各种异构数据进行清洗、加工,离线计算和实时计算。

  • 数据存储层:存储计算平台处理后的数据,根据需要可落地到不同的存储系统中,比如Redis中可以存储用户特征和用户画像数据,ES中可以用来索引物品数据,Faiss中可以存储用户或者物品的embedding向量等。

  • 召回层:包括各种推荐策略或者算法,比如经典的协同过滤,基于内容的召回,基于向量的召回,用于托底的热门推荐等。为了应对线上高并发的流量,召回结果通常会预计算好,建立好倒排索引后存入缓存中。

  • 融合过滤层:触发多路召回,由于召回层的每个召回源都会返回一个候选集,因此这一层需要进行融合和过滤。

  • 排序层:利用机器学习或者深度学习模型,以及更丰富的特征进行重排序,筛选出更小、更精准的推荐集合返回给上层业务。

从数据存储层到召回层、再到融合过滤层和排序层,候选集逐层减少,但是精准性要求越来越高,因此也带来了计算复杂度的逐层增加,这个便是推荐系统的最大挑战。
其实对于推荐引擎来说,最核心的部分主要是两块:特征和算法。

23 张图解,带你入门推荐系统

推荐引擎的核心功能和技术方案

特征计算由于数据量大,通常采用大数据的离线和实时处理技术,像Spark、Flink等,然后将计算结果保存在Redis或者其他存储系统中(比如HBase、MongoDB或者ES),供召回和排序模块使用。
召回算法的作用是:从海量数据中快速获取一批候选数据,要求是快和尽可能的准。这一层通常有丰富的策略和算法,用来确保多样性,为了更好的推荐效果,某些算法也会做成近实时的。
排序算法的作用是:对多路召回的候选集进行精细化排序。它会利用物品、用户以及它们之间的交叉特征,然后通过复杂的机器学习或者深度学习模型进行打分排序,这一层的特点是计算复杂但是结果更精准。

03 图解经典的协同过滤算法

了解了推荐系统的整体架构和技术方案后,下面带大家深入一下算法细节。这里选择图解的是推荐系统中的明星算法:协同过滤(Collaborative Filtering,CF)。
对于工程同学来说,可能觉得 AI 算法晦涩难懂,门槛太高,确实很多深度学习算法的确是这样,但是协同过滤却是一个简单同时效果很好的算法,只要你有初中数学的基础就能看懂。

1. 协同过滤是什么?

协同过滤算法的核心就是找相似,它基于用户的历史行为(浏览、收藏、评论等),去发现用户对物品的喜好,并对喜好进行度量和打分,最终筛选出推荐集合。它又包括两个分支:

  • 基于用户的协同过滤:User-CF,核心是找相似的人。比如下图中,用户 A 和用户 C 都购买过物品 a 和物品 b,那么可以认为 A 和 C 是相似的,因为他们共同喜欢的物品多。这样,就可以将用户 A 购买过的物品 d 推荐给用户 C

23 张图解,带你入门推荐系统

基于用户的协同过滤示例

  • 基于物品的协同过滤:Item-CF,核心是找相似的物品。比如下图中,物品 a 和物品 b 同时被用户 A,B,C 购买了,那么物品 a 和 物品 b 被认为是相似的,因为它们的共现次数很高。这样,如果用户 D 购买了物品 a,则可以将和物品 a 最相似的物品 b 推荐给用户 D。

23 张图解,带你入门推荐系统
基于物品的协同过滤示例
2. 如何找相似?

前面讲到,协同过滤的核心就是找相似,User-CF是找用户之间的相似,Item-CF是找物品之间的相似,那到底如何衡量两个用户或者物品之间的相似性呢?

我们都知道,对于坐标中的两个点,如果它们之间的夹角越小,这两个点越相似,这就是初中学过的余弦距离,它的计算公式如下:

23 张图解,带你入门推荐系统

举个例子,A坐标是(0,3,1),B坐标是(4,3,0),那么这两个点的余弦距离是0.569,余弦距离越接近1,表示它们越相似。

23 张图解,带你入门推荐系统

除了余弦距离,衡量相似性的方法还有很多种,比如:欧式距离、皮尔逊相关系数、Jaccard 相似系数等等,这里不做展开,只是计算公式上的差异而已。
3. Item-CF的算法流程

清楚了相似性的定义后,下面以Item-CF为例,详细说下这个算法到底是如何选出推荐物品的?

第一步:整理物品的共现矩阵

假设有 A、B、C、D、E 5个用户,其中用户 A 喜欢物品 a、b、c,用户 B 喜欢物品 a、b等等。

23 张图解,带你入门推荐系统

所谓共现,即:两个物品被同一个用户喜欢了。比如物品 a 和 b,由于他们同时被用户 A、B、C 喜欢,所以 a 和 b 的共现次数是3,采用这种统计方法就可以快速构建出共现矩阵。

 

第二步:计算物品的相似度矩阵

对于 Item-CF 算法来说,一般不采用前面提到的余弦距离来衡量物品的相似度,而是采用下面的公式

23 张图解,带你入门推荐系统

其中,N(u) 表示喜欢物品 u 的用户数,N(v) 表示喜欢物品 v 的用户数,两者的交集表示同时喜欢物品 u 和物品 v 的用户数。很显然,如果两个物品同时被很多人喜欢,那么这两个物品越相似。

基于第1步计算出来的共现矩阵以及每个物品的喜欢人数,便可以构造出物品的相似度矩阵:

23 张图解,带你入门推荐系统

第三步:推荐物品
最后一步,便可以基于相似度矩阵推荐物品了,公式如下:

23 张图解,带你入门推荐系统

其中,Puj 表示用户 u 对物品 j 的感兴趣程度,值越大,越值得被推荐。N(u) 表示用户 u 感兴趣的物品集合,S(j,N) 表示和物品 j 最相似的前 N 个物品,Wij 表示物品 i 和物品 j 的相似度,Rui 表示用户 u 对物品 i 的兴趣度。

上面的公式有点抽象,直接看例子更容易理解,假设我要给用户 E 推荐物品,前面我们已经知道用户 E 喜欢物品 b 和物品 c,喜欢程度假设分别为 0.6 和 0.4。那么,利用上面的公式计算出来的推荐结果如下:

23 张图解,带你入门推荐系统

因为物品 b 和物品 c 已经被用户 E 喜欢过了,所以不再重复推荐。最终对比用户 E 对物品 a 和物品 d 的感兴趣程度,因为 0.682 > 0.3,因此选择推荐物品 a。

04 从0到1搭建一个推荐系统

有了上面的理论基础后,我们就可以用 Python 快速实现出一个推荐系统。

1. 选择数据集

这里采用的是推荐领域非常经典的 MovieLens 数据集,它是一个关于电影评分的数据集,官网上提供了多个不同大小的版本,下面以 ml-1m 数据集(大约100万条用户评分记录)为例。

下载解压后,文件夹中包含:ratings.dat、movies.dat、users.dat 3个文件,共6040个用户,3900部电影,1000209条评分记录。各个文件的格式都是一样的,每行表示一条记录,字段之间采用 :: 进行分割。

以ratings.dat为例,每一行包括4个属性:UserID, MovieID, Rating, Timestamp。通过脚本可以统计出不同评分的人数分布:

23 张图解,带你入门推荐系统

2. 读取原始数据

程序主要使用数据集中的 ratings.dat 这个文件,通过解析该文件,抽取出 user_id、movie_id、rating 3个字段,最终构造出算法依赖的数据,并保存在变量 dataset 中,它的格式为:dict[user_id][movie_id] = rate

23 张图解,带你入门推荐系统

3. 构造物品的相似度矩阵

基于第 2 步的 dataset,可以进一步统计出每部电影的评分次数以及电影的共生矩阵,然后再生成相似度矩阵。

23 张图解,带你入门推荐系统

4. 基于相似度矩阵推荐物品

最后,可以基于相似度矩阵进行推荐了,输入一个用户id,先针对该用户评分过的电影,依次选出 top 10 最相似的电影,然后加权求和后计算出每个候选电影的最终评分,最后再选择得分前 5 的电影进行推荐

23 张图解,带你入门推荐系统

5. 调用推荐系统

下面选择 UserId=1 这个用户,看下程序的执行结果。由于推荐程序输出的是 movieId 列表,为了更直观的了解推荐结果,这里转换成电影的标题进行输出。

23 张图解,带你入门推荐系统

最终推荐的前5个电影为:

23 张图解,带你入门推荐系统

05 线上推荐系统的挑战

通过上面的介绍,大家对推荐系统的基本构成应该有了一个初步认识,但是真正运用到线上真实环境时,还会遇到很多算法和工程上的挑战,绝对不是几十行 Python 代码可以搞定的。

1、上面的示例使用了标准化的数据集,而线上环境的数据是非标准化的,因此涉及到海量数据的收集、清洗和加工,最终构造出模型可使用的数据集。

2、复杂且繁琐的特征工程,都说算法模型的上限由数据和特征决定。对于线上环境,需要从业务角度选择出可用的特征,然后对数据进行清洗、标准化、归一化、离散化,并通过实验效果进一步验证特征的有效性。

3、算法复杂度如何降低?比如上面介绍的Item-CF算法,时间和空间复杂度都是O(N×N),而线上环境的数据都是千万甚至上亿级别的,如果不做算法优化,可能几天都跑不出数据,或者内存中根本放不下如此大的矩阵数据。

4、实时性如何满足?因为用户的兴趣随着他们最新的行为在实时变化的,如果模型只是基于历史数据进行推荐,可能结果不够精准。因此,如何满足实时性要求,以及对于新加入的物品或者用户该如何推荐,都是要解决的问题。

5、算法效果和性能的权衡。从算法角度追求多样性和准确性,从工程角度追求性能,这两者之间必须找到一个平衡点。

6、推荐系统的稳定性和效果追踪。需要有一套完善的数据监控和应用监控体系,同时有 ABTest 平台进行灰度实验,进行效果对比。

写在最后

这篇文章是推荐系统的入门篇,目的是让大家对推荐系统先有一个整体的认识,后续我会再连载出一些文章,详细地介绍面对具体业务和线上海量数据时,推荐系统应该如何设计?

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

一、掌握撇画书写技巧

 

撇的写法特别多。按方向分有,平撇、斜撇(斜撇又分短撇与长撇)、竖撇等;按用笔来分,有回锋撇、兰叶撇、弯头撇等。

撇画在一个字中很有装饰性,如能写得自然舒展,会增加字的美感。

本文先介绍:短撇,平撇,斜撇,大长撇、竖撇

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

1、短撇

 

笔尖朝向10点钟方向下笔,轻入笔+顿笔,再向左下角运笔,由粗到细,逐渐变细出峰,整体呈现轻微的弧度,斜度是45度左右浮动。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

2、平撇

 

笔尖朝向10点钟方向下笔,轻入笔+顿笔,再向接近水平的左边运笔,由粗到细,逐渐变细出峰。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

3、斜撇

 

运笔技巧和短撇一样的动作,只是将长度加长。但是不可以弯的太大或者太直,不可以一样的粗细,需要有由粗到细的变化,或者整体粗细均匀末端时出峰变细。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

4、大长撇

 

书写方式与长撇接近,长度要略大。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

5、竖撇

 

笔尖朝向 10 点钟方向下笔,轻入笔+顿笔,再向垂直方向运笔,底部往左弯出锋。

提示:撇画长度也没有明确界定,同上。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

二、掌握撇类笔画

 

所谓撇类笔画是指带撇画特征的笔画,比如撇折的撇,撇点(大撇折)的撇,竖折撇的撇,横折折撇的撇,都是撇类笔画。

书写要领:撇类笔画需要与同类型撇画写法一致,方向一致。

 

三、掌握撇画规律

 

同类型撇画方向平行,多撇画出现在一个字中可平行,可延长线相交,可发散型,且具备长短之分参差变化。

多撇在一起可间隔接近,可递增放大。

撇捺成交叉状态,撇画弧度会变大。

竖撇分两种情况,如果在左边出峰角度缓和,如果在字中间出撇角度要急且往水平方向。

 

1、平行关系

 

叠加撇画,通常采用平行关系处理撇画,这时我们的运笔习惯就能很好的体现出来,不管如何撇,弧度和方向基本一致。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

2、发散关系

 

从表面看形态,仿佛撇画是从一个地方出发,向不同方向发散出去,并且存在每个撇画之间间隔均等或者渐变间隔的格局。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

3、聚拢关系

 

聚拢关系,每个撇画往一个方向去,一般不能将这些撇画直接写到一起去,应该是延长线在一个地方相交,这些撇画多数是不同类型的撇画在一起的状态。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

四、例字分析

 

1、彩

 

书写要领:

彩字的横画左边可以长可以延伸,右边需要缩短进行避让。三撇要注意平行关系。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

2、人

 

书写要领:

人字的结构,注意撇画的整体角度与捺画的角度可以接近,可以撇画角度45度左右,捺画角度小于45度,但是要注意落脚点接近平衡。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

 

3、天

 

书写要领:

天字的第二横只需要比第一横长一点点就可以了,两个横画带大坎肩,撇画要用竖撇,撇捺的角度和人的处理接近。

只要灵活掌握这3点,写好所有带撇的字,让你的字越来越漂亮

转自:https://mp.weixin.qq.com/s/AyqHuLij6J3Lm5_t9b4UNg